どうも、vim使いのyamachaaanです。
僕が普段コーディングをする際によく使うvimコマンドをまとめてみました。
編集, 保存, 終了
コマンド | 動作 |
---|---|
:e [file] | fileを開く |
:w | 保存 |
:q | 終了 |
:q! | 保存せず終了 |
編集,保存,終了に関しては、基本的に:w
と:q!
がメインです。
「もう今日の作業はおしまい!」って時は:wq!
を使います。
移動系
コマンド | 動作 |
---|---|
h, j, k, l | 左, 下, 上, 右 |
w | 1単語分進む |
W | 1単語分進む(記号では区切られないので, 次のスペースや, 改行文字まで飛ぶ) |
b | 1単語分戻る |
B | 1単語分戻る(記号では区切られないので, 前のスペースや, 改行文字まで飛ぶ) |
gg | ファイルの先頭に移動 |
G | ファイルの最後に移動 |
[数値]gg, [数値]G, :[数値] | [数値]行に移動 |
H, M, L | 画面に表示されている行について, 最初の行(H), 真ん中の行(M), 最後の行(L)に移動 |
0 | 行の先頭に移動 |
$ | 行の最後に移動 |
% | 対応する括弧に移動 |
Ctrl-u | 半画面分戻る |
Ctrl-d | 半画面分進む |
Ctrl-b | 1画面分戻る |
Ctrl-f | 1画面分進む |
移動系コマンドは、w
とb
を多用します。
あとはgg
とG
,[数値]gg
もよく使うコマンドです。
phpなんかで括弧の数を確認する時には%
が便利です。もう%
連打です。
実行してみて、SyntaxErrorが出ようものなら、%
連打。これで安心。
僕の中でCtrl-u
あたりの使用頻度はあまり高くないですが、23インチ縦配置とかすると必須コマンドになると思います。
モード変更
コマンド | 動作 |
---|---|
esc | ノーマルモードに戻る |
i | カーソル位置からインサートモードに入る |
a | カーソルの直後からインサートモードに入る |
I | 行頭からインサートモードに入る |
A | 行末からインサートモードに入る |
V | 行単位の選択をするビジュアルモードに入る |
Ctrl-v | 矩形選択をするビジュアルモードに入る |
: | コマンドラインモードに入る(続けてコマンドを打ち, Enterで実行) |
モード変更のコマンドはvimを使う上で必須です。
覚えようとして覚えるのではなく、esc
,i
,V
,:
あたりを無心で使えるようになったあとで
「もっと楽をしたい!」
と思えば自然と覚えると思います。
削除, コピー
コマンド | 動作 |
---|---|
x | カーソル上の文字を消す |
dd | カーソルがある行を消す |
dw | カーソル位置から1単語分削除する |
yy | カーソルがある行をコピー |
y | ビジュアルモードで選択されている部分をコピー |
p | カーソル行の下の行にペースト |
ぶっちゃけ、コレしか使いません。diw
とかcc
とか便利と言う話を耳にしますが、使いたい人が使えばいいと思います。
僕は有用性を感じてないので使ってないです。
検索
コマンド | 動作 |
---|---|
/ | 続けて文字を打ち, Enterで文字列を確定し, 後方検索をかける |
? | 続けて文字を打ち, Enterで文字列を確定し, 前方検索をかける |
n | 次の単語に移る |
N | 前の単語に移る |
検索は使います。でも、検索よりも後述する置換の方が使用頻度は高いです。
Undo, Redo, 繰り返し
コマンド | 動作 |
---|---|
u | Undo |
Ctrl-r | Redo |
. | 直前の操作の繰り返し |
undoは⌘+z
ではありません。Windows?すいませんわかりません。(ctrl+z
だっけ?)
インデント
コマンド | 動作 |
---|---|
>> | インデントを追加 |
<< | インデントを削除 |
インデント1つ=tab1つと設定してたりしますが、ノーマルモードにいる時は、>>
安定です。
インデントを削除する時はdeleteキーではなく、<<
です。
置換
コマンド | 動作 |
---|---|
:%s/before/after/g | ファイル上の全ての"before"を"after"に置換 |
置換コマンド、めちゃくちゃ使います。
htmlのリンクを<a herf =>
と書いてしまうことが多いからです。
置換前と置換後に/
が含まれる場合は、:%s;<h2>;</h2>;g
という風に/
を;
に置き換えます。これのおかげで閉じタグのミスを修正するのが早くなりました。
ウィンドウ操作
コマンド | 動作 |
---|---|
Ctrl-w s | ウィンドウを横に分割する |
Ctrl-w v | ウィンドウを縦に分割する |
Ctrl-w w | 次のウィンドウに移動 |
Ctrl-w p | 前のウィンドウに移動 |
Ctrl-w h, j, k, l | 左, 下, 上, 右のウィンドウに移動する |
ウィンドウの分割は好みだと思いますが、htmlを開いたままCSSを編集する時なんかに重宝します。
余裕があれば覚えておくくらいでもいいと思います。
タブ
コマンド | 動作 |
---|---|
:tabnew [file] | 新しいタブを開く. ファイル名を入力した場合は, そのファイルを開く |
:tabnext | 次のタブに移動する |
:tabprevious | 前のタブに移動する |
:tabfirst | 1番目のタブに移動する |
:tablast | 最後のタブに移動する |
gt | 次のタブに移動する. gtの直前に数字をつけると, 数字番目のタブに移動する |
gT | 一つ前のタブに移動する |
僕はtab機能は割りと使う方だと思いますが、最近は面倒なのでサブディスプレイにvimのウィンドウを複数個表示させていることが多いです。
まとめ
覚えよう!と思っても覚えない。
使っていて、「これ、どうやるんだろう?」とか「この作業、もっと早くできないかな?」と思った時に使っていけば自然と覚えます。
コマンドを使いこなして快適なプログラミングライフを!!