はじめに
Vimが本当に便利だ!と言われて触り始めたのですが、覚えることがとても多く何度も挫折しそうになりました。今でこそかなり使いこなせるようになりましたが、現在に至るまでにはとても長い道のりが、、、
Vimコマンドに慣れるコツ
1. とにかく使ってみる
2. 1つ1つ使えるコマンドを増やしていく
この2つがコツだと思いますが、特に2番がキツイです。どのサイトを見てもコマンドが大量に並んでいて「こんなに覚えるのかあああ」となってしまいます。このページでは、レベル別にコマンドを小出しにすることで、ちょっとずつ慣れていき、気がついたらかなり使いこなせるようになったという状況を作り出したいと思います。
レベル0(大前提)
vimには4つのモードがある(カッコ内はそのモードへ行くためのコマンド)
- ノーマルモード(esc)
- 入力モード(i)
- 選択モード(v)
- コマンドモード(:)
レベル1(これを知らないとそもそも何もできない)
h
左へ移動j
下へ移動k
上へ移動l
右へ移動x
(カーソル下の文字を)削除i
(カーソル左に)挿入:w
保存:q
終了:wq
保存して終了:q!
保存せずに終了
レベル2(ここまで知ってやっと普通に作業ができる)
v
選択(選択モード)y
(カーソル上の文字を)コピー (選択モード時)p
(右or下に)ペーストu
直前の作業の取り消し
レベル3(移動スピードを上げる その1)
w
1単語左へ移動b
1単語右へ移動gg
先頭行へ移動G
最終行へ移動^
行頭へ移動$
行末へ移動
レベル4(挿入スピードを上げる)
i
(カーソル左に)挿入 ←レベル1でやった基本a
(カーソル右に)挿入o
(下の行に)挿入 ←小文字の「オー」O
(上の行に)挿入 ←大文字の「オー」I
(行頭に)挿入A
(行末に)挿入
レベル5(移動スピードを上げる その2)
e
単語末へ移動E
直前の単語末へ移動%
対応する括弧へ移動
レベル6(削除スピードを上げる)
x
(カーソル下の文字を)削除 ←レベル1でやった基本X
(カーソル左の文字を)削除dd
(1行)削除ndd
(n行)削除dw
(カーソル位置から単語末尾までを)削除d$
(カーソル位置から行末までを)削除d%
(カッコを中身ごと)削除
レベル7(コピー&ペースト)
yl
1文字コピーnyl
n文字コピーyw
1単語コピーnyw
n単語コピーyy
1行コピーnyy
n行コピーy$
行末までコピーy%
対応する括弧までコピーP
(左or上に)ペースト
ペーストに関して
1. コピーが文字単位だったら右or左にペーストされて、行単位だったら上or下にペーストされる
2. xまたはdで削除した後にpコマンドを打つと削除した分がペーストされる(つまり削除=カット)
レベル8(選択モード)
v
(カーソル上の文字を)選択→その後上下左右で選択範囲を広げられるV
(1行)選択ctrl + v
(縦に)選択
レベル9(変更=削除+挿入)
r
(カーソル下の)文字の置き換え(「r+置換したい文字」で使用する)s
(カーソル下の文字を)削除+挿入モードにns
(n文字)削除+挿入モードにciw
(選択中の文字を)削除+挿入モードにcw
(カーソルから単語末まで)削除+挿入モードに c$
(カーソルから行末まで)削除+挿入モードに c%
(カッコを中身ごと)削除+挿入モードに
レベル10(移動スピードを上げる その2)
w
次の単語の先頭へ移動(行中を早く進みたい時に使用)b
前の単語の先頭へ移動e
次の単語末へ移動ctrl + f
次のページへ移動(ファイル内を早く進みたい時に使用)ctrl + b
前のページへ移動nG
n行目へ移動%
対になる()or{}or[]へ移動
とりあえずこれくらいにします。僕自身もまだまだ勉強途中なので、新しいコマンドを覚えたら追加します。「ここ間違ってるよ!」とか「こんなコマンドあるよ!」とかあったらコメントください!
ちなみに、普段はrubyMineのキーバインドをvimにして開発をしているので変な部分もあると思います。ご了承ください。