よく使う Vim のコマンドまとめ

  • 686
    Like
  • 5
    Comment
More than 1 year has passed since last update.

ファイル操作

key 内容
ZZ 上書き保存し、viを終了
:w 内容を保存
:q! 保存せずに終了

モード

key 内容
i 挿入モードへ
o 新しい行を追加し挿入モードへ
R 上書きモードへ
v ビジュアルモードへ
Ctrl + v 矩形選択のビジュアルモードへ
ESC コマンドモードに戻る
ctrl + [ コマンドモードに戻る
ctrl + z vim を一時停止する

カーソル移動

key 内容
w 次の単語 (Word)
b 前の単語
f(文字) カーソルがある行の(文字)に移動 (Find)
F(文字) カーソルがある行の(文字)に移動(逆向き)
0 行頭
行頭
$ 行末
% 対応する括弧に移動
Ctrl + u 半画面上 (Up)
Ctrl + d 半画面下 (Down)
zz カーソルが画面中央になるようにスクロール
Ctrl + o 古いカーソル位置に戻る。 (Old)
Ctrl + i 新しいカーソル位置に進む。

行移動

key 内容
gg 最初の行
88G 88行目
G 最終行
H 画面上の最初の行 (Home)
M 画面上の中央の行 (Middle)
L 画面上の最後の行 (Last)

検索と置換

key 内容
* カーソル下の単語を検索
# カーソル下の単語を検索 (上方向に検索)
:%s/hage/hoge/g 単語の置換(hageをhogeへ置換)。% はファイル全体を表す。

編集

key 内容
. 直前の変更を繰り返す
u Undo
Ctrl + r Redo

コピー&ペースト

key 内容
yy 今いる行をコピー (yank)
p カーソルの場所に、ペースト
yy5p 現在の行をコピーし、下に5行追加する
gv 直前の選択範囲を再選択

特殊文字

key 内容
Ctrl-v return 改行文字の入力
Ctrl-v tab Tab 文字の入力

ウィンドウ

key 内容
:vsplit 画面を左右に分割する
:e filename 今いるWindowにファイルを開く (Edit)
:e test*.cc ワイルドカードを指定してファイルを開く
Ctrl +w h 左のWindowへ移動
Ctrl + w l 右のWindowへ移動

バッファ

key 内容
:buffers 編集中のバッファ一覧を表示
:bn 次のバッファに移動
:bd[elete] バッファを削除

単語補完

key 内容
Ctrl + p 単語補完(前方検索)

マクロ

key 内容
q<letter> マクロの記録開始
q マクロの記録停止
@<letter> マクロの実行

レジスタ

key 機能
:reg レジスタの一覧表示
Ctrl + r " ヤンクした文字列をペースト

コマンドの意味

key 意味
g 繰り返し
c 1回毎に確認

その他

key 内容
:!command 外部コマンドの実行
: 範囲選択中に : を入力すると、選択領域の範囲指定( ’<,’> )が自動で挿入された状態でコマンドモードに入る。これを置換に利用すると便利。 (例: :'<,'>s/old/new/g)
Ctrl + a 数値のインクリメント
Ctrl + x 数値のデクリメント

参考文献

Route 477 - Vim覚え書き
Vim 基本操作まとめ - Archiva
検索・置換に便利なヤンク(レジスタ)【Vimコマンド】にさん追加7/3 - YKMbPP

60contribution

指定行移動は
:88
とか

297contribution

編集中のバッファ一覧を表示は、:buffersよりも:lsの方が短いですね。
また、バッファリストの左にある数字をnとすると、:b nとすると、そのバッファに直接移動できたりします。

9092contribution

:vimgrep, :cwin, :qa!, :tabnew, :e ., :se nu, :e ++enc, gi
あたりは空気のように使う

464contribution

こういうのも使いますね

key 内容
Shift + i 行頭に移動して挿入モードへ  
a 今の文字の後ろに移動して挿入モードへ
Shift + a 行末に移動して挿入モードへ
Shift + J 行結合
d 1文字削除(してヤンク)
Shift + d カーソル以降を削除(してヤンク)
dd 行削除(してヤンク)

ほぼ無意識のうちに使っているので、説明間違っていたらごめんなさい

7contribution

執筆からだいぶ時間経ってますが、Ctrl+zはBashの機能ですね、念の為。