操作一覧
自分用メモ。
知っていたもの
私のvimレベルはこんなもの。
j,k,h,l | ↓,↑,←,→ |
^ | 行頭に移動 |
$ | 行末に移動 |
gg | 1行目に移動 |
G | 最終行に移動 |
:n | n行目に移動 |
/何らか | 何らかの文字をファイル中から検索。なお、検索結果ハイライトをoffにするには:nohとする。 |
u | アンドゥ |
Ctr+r | リドゥ |
x | 一文字削除 |
dd | 一行削除 |
yy | 一行コピー。ヤンクすると呼ぶ。 |
p | ペースト |
複数行削除 | 5ddのように、数字+コマンドでそのコマンドを数字の数だけ実行したことになる。 |
移動系
ngg | n行目へ移動 |
w | 単語単位に移動 |
W | 空白、タブ単位に移動。記号を含んでいる場合などに便利 |
b | wの逆 |
B | Wの逆 |
z |
現在のカーソル行がページの先頭になる |
Ctr+o | カーソル位置を戻る。Ctr+iで進む |
% | 対応する括弧へ移動 |
Ctr+f | 次のページへ |
Ctr+b | 前のページへ |
検索系
f何らか | カーソル位置から右に向かって何らかの場所まで移動。;で次検索。,で前検索 |
F何らか | fの逆 |
t何らか | 何らかの文字のひとつ前の文字に移動 |
* | 検索したい単語の上で*を押し、nで検索する。Nで逆検索 |
編集系
o | カーソルの下の行にINSERT |
O | カーソルの上の行にINSERT |
X | バックスペース |
d$ | カーソル位置から行末まで削除 |
y$ | カーソル位置から行末までコピー |
ビジュアル選択後、J | 複数行を1行にする |
>> | インデント |
<< | 逆インデント |
g- | 履歴を見るundo。a→b→undo→cという時、通常のundoだとcにしか戻れないがこれだとbに戻れる。g+はリドゥ |
:%s/old/new | oldをnewに置換。%を付けるとファイル全部。付けなければカレント行。あとはヴィジュアルモードで選択してから使うとその範囲内だけとなる。 |
:%g/pattern/d | patternにマッチした行を削除する |
:di(splay) | レジストリの内容を確認。"0pのようにして貼り付け |
ファイル処理
:e(dit) ファイル名 | ファイルを開く |
:Ctr+x | カレントディレクトリのパスを展開する。 |
:CdCurrent | Vimのカレントディレクトリを現在のディレクトリにする。 |
複数ファイルの取り扱い
vim xxx.js yyy.js zzz.js | 3つのファイルを開く。ただし表示は最初のxxx.js |
:next | 次のファイルを表示 |
:Next(:previous) | 前のファイルを表示 |
:first | 最初のファイルを表示 |
:last | 最後のファイルを表示 |
:args | argument listに読み込まれているファイルを一覧表示 |
:args xxx.js yyy.js zzz.jsとか:args **/*.js | 開いてからargument listに追加する場合に使う |
:argdo %s/hoge/fuga/g パイプ update | 全argument listに対してhogeをfugaに置換し、更新する |
画面系
:sp | 横分割 |
:vs | 縦分割 |
Ctr+w Ctr+w | カーソルの画面移動 |
Ctr+w+J/K/H/L | 画面自体の移動。レイアウト調整 |
Ctr+w+r | 画面の上下左右入れ替え |
:only | 現在のウィンドウ意外を閉じる |
:qall | すべて閉じる |
その他
コマンドラインでCtr+f | コマンド履歴の表示 |
. | 直前の操作の繰り返し |
:w sudo:% | rootとして保存。sudo.vimが必要 |
文字の上で:ascii | その文字のasciiコードが取得できる |
コマンドライン(もしくはインサートモードで)でCtr+r+" | ヤンクした文字の貼り付け |
組み合わせ
単語単位の置換 | cwで、単語を削除しINSERTモードになる。 |
カッコの中だけ置換 | (まで移動し、ct)と入力すれば、括弧内を置換できる。 |
;前まで削除 | dt; |
単語の大文字小文字の変換 | vw~ |
複数行の先頭に任意の文字を入力 | Ctr+vで選択後、IでINSERTモードにし、入力、ESCで全行に反映 |
INSERTモード時の操作
Ctr+W | 直前の単語の削除 |
Ctr+U | 入力した文字の削除(ただし同一行内) |
Ctr+N | 補完 |
Ctr+x, Ctr+o | オムニ補完 |
Ctr+F | ファイル名の補完 |
Ctrl+a | カーソル位置の数字をインクリメント |
Ctrl+x | カーソル位置の数字をデクリメント |
設定
set xxxx? | 現在の設定状況を確認する |
set xxxx& | デフォルト値に戻す |
set xxxx! | on/offのトグル |
プラグイン
surround.vim
挿入 | y |
変更 | c |
削除 | d |
単語 | iw |
単語+次の空白 | aw |
タグ内の文字列 | it |
タグを含んだ文字列 | at |
括弧内文字 | ib |
括弧を含んだ文字列 | ab |
ysiw" | "で囲む |
ys$" | 行末まで"で囲む |
yss" | 行全体を"で囲む |
cs"' | "を'に変更する |
cst | 現在のタグをで囲む |
ds" | 囲っている"を削除 |
dst | 現在のタグを削除 |