vi/vim 編集 コマンド 私的まとめ
viの私的覚書です。
移動
上下左右の移動
k h l j
単語毎に移動
前進する。 | w |
後退する。 | b |
行の
先端に移動する。 | ^ |
最後に移動する。 | $ |
段落毎に移動
前進する。 | { |
後退する。 | } |
ファイルの最初、最後へ移動
最初へ移動する。 | gg |
最後へ移動する。 | G |
現在位置を表示する。 | ctrl-g |
行を指定して移動する。 | 行数G |
対応する開き括弧、閉じ括弧へ移動
括弧へ移動する。 | % |
検索
行内1文字検索する。(左から右) | f○ |
行内1文字検索する。(右から左) | F○ |
検索開始する。 | / |
次候補する。 | n |
行頭検索する。 | /^○○ |
行末検索する。 | /○○$ |
検索履歴を巡回する。 | /上キー、下キー |
単語区切りでの検索する。 | /\>○○\> |
マーク
マークは画面上に表記されないので注意する。
マークする。 | m{a-zA-Z} |
マークの場所へ行く。 | '{a-zA-Z} |
viが自動で覚えた場所へ行く。 | '{0-9} |
マークの一覧を確認する。 | :marks |
特殊操作
カーソル下のカッコに対応するカッコに移動する。 | % |
ウィンドウ範囲内の最初の文字に移動する。 | h |
ウィンドウ範囲内の中段の文字に移動する。 | m |
ウィンドウ範囲内の最後の文字に移動する。 | l |
タグ
カーソル直下の文字列からタグへの移動する。 | ctrl-] |
タグ移動を戻る。 | ctrl-o |
タグ一覧を見る。 | :tags |
スクロール
1行下を表示する。 | ctrl-e |
1行上を表示する。 | ctrl-y |
半ページ上を表示する。 | ctrl-d |
半ページ下を表示する。 | ctrl-u |
1ページ上を表示する。 | ctrl-b |
1ページ下を表示する。 | ctrl-f |
カーソル位置に対して画面を
カーソルが最上段にくるように表示する。 | zt |
カーソルが真ん中の行にくるように表示する。 | zz |
カーソルが最下行にくるように表示する。 | zb |
入力
入力モードへ | i |
入力モードから抜ける。 | ESC |
カーソル位置一つ右から入力モードへ移行する。 | a |
カーソル位置の1行下に一行挿入して入力モードへ移行する。 | o |
以降は入力モード中
上の行と同じ文字を反映する。 | ctrl-y |
下の行と同じ文字を反映する。 | ctrl-e |
最新の入力をカーソル位置に反映する。 | ctrl-a |
これは便利!以前打った単語に基づく補完。頭文字を入力し、
順送りの候補表示する。 | ctrl-n |
逆順送りの候補表示する。 | ctrl-p |
プログラムのソースなど、指定された言葉を辞書補完する。プログラマ必須の機能
ソースコードなどのの辞書補完機能を使う。*1 | ctrl-x ctrl-o |
インデント
カーソル行にインデントを1段つける。 | ctrl-t |
カーソル行のインデントを1段消す。 | ctrl-d |
以上まで入力モード用のコマンド
二字一音文字入力
二字一音文字一覧を表示する。 | :deg |
二字一音文字入力する。 | 入力モードでctrl-k |
コピー
さまざまなコピーする。 | y-共通モーション |
1行コピーする。 | yy |
名前付コピーを行う。 | "○上記yコマンド*2 |
カーソルの前に貼り付けする。 | P |
カーソルの後に貼り付けする。 | p |
名前付貼り付けを行う。 | "○上記pコマンド*3 |
変更
指定の範囲を削除して入力モードへ移行する。(=編集) | c-共通モーション |
c$と同じ。 | C |
c1と同じ。 | s |
cc(1行削除して編集モードへ)と同じ。 | S |
カーソル位置の1文字上書きする。 | r○ |
上書きモードへ移行する。 | R |
大文字小文字変換する。 | ~ |
行を左揃えにする。 | :le |
行を中央揃えにする。 | :ce |
行を右揃えにする。 | :ri |
ビジュアルモード
範囲選択モードに移行する。 | v |
範囲選択モードに移行する。(行単位) | V |
範囲選択モード終了する。 | ctrl-v |
元に戻る、やりなおし
元に戻る。 | u |
やりなおしする。 | ctrl-r |
上記2つと:○○コマンド以外のコマンドで、以前の動作繰り返しする。 | . |
保存
上書き保存する。 | w |
名前をつけて保存する。 | w ファイル名 |
保存せずに終了する。 | q! |
保存して終了する。 | wq or x |
他ファイル
他ファイルを開く。 | :edit foo.txt |
現在のファイルの変更を破棄して強制的に他ファイルへ移行する。 | :edit! foo.txt |
現在のファイルの変更を保存せずに他ファイルを開く。 | :hide edit foo.txt |
複数ファイル
複数ファイルリストを作成する。 | :args five.c six.c seven.h |
開いているファイルリストを変更する。(ワイルドカード指定) | :args *.txt |
現在開いているファイルの一覧を表示する。 | :args |
開いているファイルの中で、直前に変更していたファイルに戻る。 | ctrl-^ |
複数ファイルを開いている時に、次のファイルを開く。 | :next |
現在のファイルの変更を破棄して強制的に次のファイルを開く。 | :next! |
現在のファイルの変更を保存して次のファイルを開く。 | :wnext |
複数ファイルを開いている時に、次のファイルを開く。 | :previous |
現在のファイルの変更を保存して次のファイルを開く。 | :wprevious |
複数ファイルを開いている際に、ファイルリストの先頭を表示する。 | :first |
複数ファイルを開いている際に、ファイルリストの最後を表示する。 | :last |
複数ファイルをまたいだコピー、貼り付けをする。 | 名前付コピー機能を使う。 |
共通モーション
現在のカーソルのある単語の単語末まで○○ | ○w |
現在のカーソルのある単語の単語の始まりまで○○ | ○b |
現在のカーソル位置から行末まで○○ | ○$ |
現在のカーソル位置から行頭まで○○ | ○^ |
現在のカーソル位置から段落の始まりまで○○ | ○{ |
現在のカーソル位置から段落の終わりまで○○ | ○} |
現在のカーソル位置からファイルの終わりまで○○ | ○]] |
現在のカーソル位置からファイルの終始まりまで○○ | ○[[ |
意味づけのある1行(例えばピリオドからピリオドまで)で○○(空白残す) | ○iw |
意味づけのある1行(例えばピリオドからピリオドまで)で○○ | ○aw |