vim メモ基本
カーソル移動系
txt
gg ( :0 )
↑
↑
k
↑
0 << b < h < . > l > w >> $
↓
j
↓
↓
G
| キー | 動作 |
|---|---|
| Ctrl + B,F | PageUp, PageDown |
| Ctrl + E,Y | カーソル位置を変えずにスクロール Up, Down |
| Ctrl + ],t | タグジャンプ, 戻る |
| Ctrl + i,o | 戻る, 進む |
| gf | カーソル位置のファイル名の先に飛ぶ |
削除系
txt
dd : 行削除
x : 1 文字削除
p : 貼り付け
組み合わせて
ddpで 行を 1 つ下にxpで 文字を 1 つ右に
Visual モード
txt
Shift + V : 行選択
Ctrl + V : 矩形選択
組み合わせてよく使う作業
- 行選択後
d: 削除>: インデント
- 矩形選択後
I→//: 選択範囲の先頭に文字を入れる$→a→,: 選択範囲の行末に文字を入れる (選択範囲の右端でないところがミソ)
表示系
txt
:set nu : 行番号を出す
:set nowrap : 折り返さない
:set ts=4 : タブ幅4にする
:set ft=sql : ファイルタイプを指定(自動判別されないときに)
検索系
ファイル内検索
txt
/<検索文字列><Enter> : ファイル内検索
* : カーソル位置の単語で検索
n, N : 次へ, 前へ
grep 的な検索
:vim <検索文字列> */*/*.cpp | cw : 検索して一覧を下ウィンドウに出す
:vim <C-r><C-w> */*/*.cpp | cw : カーソル位置の単語で検索
:vimは:vimgrepの略
キーボードマクロ的なもの
. : 直前の操作の繰り返し
qa<なにかの操作>q : a という名前でマクロが記録される
@a : a という名前のマクロを実行
@@ : 直前に実行したマクロを実行
ここでいう「直前の操作」は、「範囲指定+操作」の組み合わせのことで「検索」は含まれない。
ので、1コマンドで完結するように組み合わせを工夫すると、便利に行ける。
doSomethingBad() 関数を doSomethingGood() 関数に変更したいとする。
まず、/doSomething\zsBad で検索後、
cw→Goodで編集n+.で、次々と同じ操作の繰り返し
とか
cgn→Goodで編集.で、次々と同じ操作の繰り返し
以下広告