Exコマンドの範囲 |
% |
1,$と同じ(=ファイル全体) |
Exコマンドの範囲 |
* |
'<,'>と同じ(=ビジュアルモードの選択範囲) |
Exコマンドの範囲 |
, |
2つの行の範囲 |
Exコマンドの範囲 |
. |
現在行 |
Exコマンドの範囲 |
; |
同上。最初の指定行から次の指定範囲まで |
Exコマンドの範囲 |
$ |
ファイルの最終行 |
Exコマンドの範囲 |
+[num] |
直前の行指定(デフォルト:1)に[num]を加算したもの |
Exコマンドの範囲 |
-[num] |
直前の行指定(デフォルト:1)から[num]を減算したもの |
Exコマンドの範囲 |
{number} |
ファイル中の行番号 |
Exコマンドの範囲 |
/{pattern}[/] |
{pattern} に合致する行の次の行 |
Exコマンドの範囲 |
?{pattern}[?] |
{pattern} に合致する行の前の行 |
Exコマンドの範囲 |
't |
マーク t の行 |
Undo/Redo コマンド |
N CTRL-R |
最後の N 回分のアンドゥを取り消す(redo) |
Undo/Redo コマンド |
N u |
最後の N 回分の作業をアンドゥ |
Undo/Redo コマンド |
U |
行全体への変更を取り消す |
'wrap'がoffになっている時のみ有効 |
N zh |
画面を N 文字、右へスクロール |
'wrap'がoffになっている時のみ有効 |
N zH |
画面桁数の半分だけ、右へスクロール |
'wrap'がoffになっている時のみ有効 |
N zl |
画面を N 文字、左へスクロール |
'wrap'がoffになっている時のみ有効 |
N zL |
画面桁数の半分だけ、左へスクロール |
!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行 |
:e[dit][!] |
現在のバッファ内容を再読み込み |
!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行 |
:e[dit][!] {file} |
{file}を編集 |
!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行 |
:ene[w][!] |
新たな名前なしバッファを編集 |
!ありの場合: 現在のバッファに対する変更は破棄して、コマンド実行 |
:fin[d][!] {file} |
{file} を'path' から探し、編集 |
コマンドラインの編集 |
<BS> |
カーソルの直前の文字を削除 |
コマンドラインの編集 |
CTRL-B/CTRL-E |
カーソルを行頭、行末に移動 |
コマンドラインの編集 |
CTRL-R {0-9a-z"%#:-=} |
レジスタの内容を挿入する |
コマンドラインの編集 |
CTRL-U |
全文字を削除 |
コマンドラインの編集 |
CTRL-V {char} |
{char}を文字として挿入する(CTRL文字など) |
コマンドラインの編集 |
CTRL-V {number} |
文字コードを10進数入力する(最大3桁まで) |
コマンドラインの編集 |
CTRL-W |
カーソルの直前の文字を削除 |
コマンドラインの編集 |
<Del> |
カーソル位置の文字を削除 |
コマンドラインの編集 |
<Esc> |
コマンドラインを破棄する('wildchar'が<Esc>の場合は2回押す) |
コマンドラインの編集 |
:his[tory] |
コマンドライン履歴を表示 |
コマンドラインの編集 |
<Left>/<Right> |
カーソルを左右に移動 |
コマンドラインの編集 |
<S-Left>/<S-Right> |
カーソルを単語単位で左右に移動 |
コマンドラインの編集 |
<S-Up>/<S-Down> |
コマンドラインの履歴を呼び出す |
コマンドラインの編集 |
<Up>/<Down> |
現在のコマンドで始まるコマンドラインの履歴を呼び出す |
コマンドラインの編集/文脈依存の補完機能 |
CTRL-A |
現在のカーソルの直前のパターンに合致する全ての名前を挿入 |
コマンドラインの編集/文脈依存の補完機能 |
CTRL-D |
現在のカーソルの直前のパターンに合致する全ての名前の一覧を表示 |
コマンドラインの編集/文脈依存の補完機能 |
CTRL-L |
現在のカーソルの直前のパターンに合致するもののうち、共通部分を挿入 |
さまざまなコマンド |
:browse {command} |
ファイルを開く時や保存する時に選択ダイアログ画面を使う。 |
さまざまなコマンド |
:confirm {command} |
終了時、保存時などに保存していない変更やリードオンリーの確認をする |
さまざまなコマンド |
CTRL-Break |
MS-DOS: 検索中:検索を中止 |
さまざまなコマンド |
CTRL-C |
検索中:検索を中止 |
さまざまなコマンド |
CTRL-G |
現在の(パス名+)ファイル名とカーソル位置を表示 |
さまざまなコマンド |
CTRL-L |
画面の再描画 |
さまざまなコマンド |
<Del> |
回数指定中: 最後の文字を削除 |
さまざまなコマンド |
g8 |
utf-8エンコーディング用:カーソル下の文字のバイト列を16進で表示する。 |
さまざまなコマンド |
ga |
カーソル位置のASCII文字コードを10進、16進、8進で表示 |
さまざまなコマンド |
g CTRL-G |
カーソル桁数、行数、単語数、文字数を表示 |
さまざまなコマンド |
:mode N MS-DOS: |
画面モードを N (数字,C80,C4350,など)に |
さまざまなコマンド |
:norm[al][!] |
{commands}通常モードコマンドを実行 |
さまざまなコマンド |
Q |
"Ex"モードに移行 |
さまざまなコマンド |
:redir >{file} |
メッセージを{file}にリダイレクト |
さまざまなコマンド |
:silent[!] {command} |
{command} を寡黙に実行 |
さまざまなコマンド |
:ve[rsion] |
バージョン情報を表示 |
シンタックスハイライト |
:filetype on |
ファイルタイプの検出を有効にするシンタックスハイライトは有効にならない |
シンタックスハイライト |
:filetype plugin indent on |
ファイルタイプの検出を有効にする各設定とオートインデントを有効にする |
シンタックスハイライト |
:highlight clear |
全てのハイライトを削除する |
シンタックスハイライト |
:syntax clear |
全てのシンタックスを削除する |
シンタックスハイライト |
:syntax [list] |
現在のシンタックスのアイテムを一覧する |
シンタックスハイライト |
:syntax off |
シンタックスハイライトの使用停止 |
シンタックスハイライト |
:syntax on |
シンタックスハイライトの使用開始 |
スクロール |
N CTRL-B |
画面を N ページ分上方向スクロール |
スクロール |
N CTRL-D |
画面を N 行下方向スクロール(デフォルトは画面の半分) |
スクロール |
N CTRL-E |
画面を N 行下方向スクロール(デフォルトは1) |
スクロール |
N CTRL-F |
画面を N ページ分下方向スクロール |
スクロール |
N CTRL-U |
画面を N 行分上方向スクロール(デフォルトは画面の半分) |
スクロール |
N CTRL-Y |
画面を N 行分上方向スクロール(デフォルトは1) |
スクロール |
z- |
or zb 現在行を画面の最下行にして、再描画 |
スクロール |
z. |
or zz 現在行を画面の中央にして、再描画 |
スクロール |
z<CR> or zt |
現在行を画面の1行目にして、再描画 |
タグの利用 |
:[count]po[p][!] |
タグリストの [count] 番目に古いタグにジャンプ |
タグの利用 |
:[count]ta[g][!] |
タグリストの[count]番目に新しいタグにジャンプ |
タグの利用 |
:[count]tn[ext][!] |
[count] 個分、次のタグにジャンプ |
タグの利用 |
:[count]tp[revious][!] |
[count]個分、前のタグにジャンプ |
タグの利用 |
:[count]tr[ewind][!] [count] |
番目に一致するタグにジャンプ |
タグの利用 |
CTRL-] |
変更がされていない限り、カーソル位置にあるタグにジャンプ |
タグの利用 |
CTRL-W } |
CTRL-] と同様だがプレビュー画面にジャンプ |
タグの利用 |
CTRL-W z |
タグプレビュー画面を閉じる。 |
タグの利用 |
:lt[ag][!] [tag] |
タグ [tag] にジャンプし、マッチしたタグをロケーションリストに加える。 |
タグの利用 |
N CTRL-T |
タグリストの N 番目に古いタグにジャンプ |
タグの利用 |
:pc[lose] |
タグプレビュー画面を閉じる。 |
タグの利用 |
:pt[ag] {tag} |
{tag}タグを見るためのプレビュー画面を開く |
タグの利用 |
:ptj[ump] |
":tjump"と同様だがプレビュー画面にジャンプ |
タグの利用 |
:pts[elect] |
":tselect"と同様だがプレビュー画面にジャンプ |
タグの利用 |
:tags |
タグリストを一覧表示 |
タグの利用 |
:ta[g][!] {tag} |
{tag}で指定したタグにジャンプ |
タグの利用 |
:tj[ump][!] [tag] |
指定のタグ [tag] にジャンプ。もし、合致するタグが複数ある時は一覧から選択 |
タグの利用 |
:tl[ast][!] |
直前に一致したタグにジャンプ |
タグの利用 |
:ts[elect][!] [tag] |
タグに合致する一覧を表示し、ジャンプ先を選択 |
テキスト文脈単位の移動 |
N ( |
N センテンス分、前に戻る |
テキスト文脈単位の移動 |
N ) |
N センテンス(文)分、先に進む |
テキスト文脈単位の移動 |
N [# |
N 個目の呼応していない"#if"や"#else"まで戻る |
テキスト文脈単位の移動 |
N [( |
N 個目の呼応していない'('まで戻る |
テキスト文脈単位の移動 |
N [* |
N 個前のコメントの先頭まで戻る |
テキスト文脈単位の移動 |
N [[ |
N セクション(章)分、前に戻り、その先頭に移動 |
テキスト文脈単位の移動 |
N [] |
N セクション(章)分、前に戻り、その末尾に移動 |
テキスト文脈単位の移動 |
N [{ |
N 個目の呼応していない'{'まで戻る |
テキスト文脈単位の移動 |
N ]# |
N 個目の呼応していない"#else"や"#endif"まで進む |
テキスト文脈単位の移動 |
N ]) |
N 個目の呼応していない')'まで進む |
テキスト文脈単位の移動 |
N ]* |
N 個先のコメントの末尾まで進む |
テキスト文脈単位の移動 |
N ][ |
N セクション(章)分、先に進み、その末尾に移動 |
テキスト文脈単位の移動 |
N ]] |
N セクション(章)分、先に進み、その先頭に移動 |
テキスト文脈単位の移動 |
N ]} |
N 個目の呼応していない'}'まで進む |
テキスト文脈単位の移動 |
N { |
N パラグラフ分、前に戻る |
テキスト文脈単位の移動 |
N } |
N パラグラフ(段落)分、先に進む |
テキスト文脈単位の移動 |
N b |
N 個目の単語分、前に戻る |
テキスト文脈単位の移動 |
N B |
空白で区切られた単語(=|WORD|) N 個分、前に戻る |
テキスト文脈単位の移動 |
N e |
N 個目の単語のお尻まで進む |
テキスト文脈単位の移動 |
N E |
空白で区切られた単語(=|WORD|) N 個目のお尻まで進む |
テキスト文脈単位の移動 |
N ge |
N 個目の単語のお尻まで戻る |
テキスト文脈単位の移動 |
N gE |
空白で区切られた単語(=|WORD|) N 個目のお尻まで戻る |
テキスト文脈単位の移動 |
N [m |
N 個前のメソッドの先頭まで戻る(Java用) |
テキスト文脈単位の移動 |
N ]m |
N 個先のメソッドの先頭まで進む(Java用) |
テキスト文脈単位の移動 |
N [M |
N 個前のメソッドの末尾まで戻る(Java用) |
テキスト文脈単位の移動 |
N ]M |
N 個先のメソッドの末尾まで進む(Java用) |
テキスト文脈単位の移動 |
N w |
N 個目の単語分、先に進む |
テキスト文脈単位の移動 |
N W |
空白で区切られた単語(=|WORD|) N 個分、先に進む |
パターン検索 |
gd |
カーソル位置の識別子のローカル宣言に移動 |
パターン検索 |
gD |
カーソル位置の識別子のグローバル宣言に移動 |
パターン検索 |
N # |
カーソル位置にある単語を上方向に検索 |
パターン検索 |
N * |
カーソル位置にある単語を下方向に検索 |
パターン検索 |
N /<CR> |
直前と同じ条件の検索を下方向に対して実施 |
パターン検索 |
N ?<CR> |
直前と同じ条件の検索を上方向に対して実施 |
パターン検索 |
N g# |
"#"と同じだが、部分的な一致を検索 |
パターン検索 |
N g* |
"*"と同じだが、部分的な一致を検索 |
パターン検索 |
N n |
直前の検索を再実行 |
パターン検索 |
N N |
直前の検索を逆方向に再実行 |
パターン検索 |
N /{pattern}[/[offset]]<CR> |
N 回目の{pattern}を含む個所を下方向に検索 |
パターン検索 |
N ?{pattern}[?[offset]]<CR> |
N 回目の{pattern}を含む個所を上方向に検索 |
バッファ管理コマンド |
:badd {fname} |
ファイル名{fname}をバッファ一覧に追加 |
バッファ管理コマンド |
:ball |
or :sball 全引数/バッファを編集 |
バッファ管理コマンド |
:bdelete[!] [N] |
[N]番バッファを開放してバッファ一覧から削除 |
バッファ管理コマンド |
:buffers |
or :files 全バッファとファイル名の一覧 |
バッファ管理コマンド |
:bunload[!] [N] |
[N]番バッファをメモリから開放 |
バッファ管理コマンド |
:unhide |
or :sunhide 読み込み中の全バッファを編集 |
ビジュアルモード |
A |
選択している全行の後ろに、同じ文字列を挿入する。 |
ビジュアルモード |
CTRL-V |
矩形単位のビジュアルモードを開始 } コマンドを実行 |
ビジュアルモード |
gv |
直前の選択範囲を選んだ状態でビジュアルモードを開始 |
ビジュアルモード |
I |
選択している全行の前に、同じ文字列を挿入する。 |
ビジュアルモード |
o |
カーソル位置と選択範囲の開始位置を入れ替え |
ビジュアルモード |
v |
文字単位のビジュアルモードを開始 } カーソルを動かして |
ビジュアルモード |
V |
行単位のビジュアルモードを開始 } 選択した範囲に対し |
ファイル編集 |
:cd - |
直前のカレントディレクトリに戻る |
ファイル編集 |
:cd [path] |
カレントディレクトリを [path] に変更 |
ファイル編集 |
:f[ile] |
現在のファイル名とカーソル位置を表示 |
ファイル編集 |
:f[ile] {name} |
現在のファイル名を{name}に変更 |
ファイル編集 |
:files |
別ファイル一覧を表示 |
ファイル編集 |
gf |
or ]f カーソル下にある名前のファイルを編集 |
ファイル編集 |
N CTRL-^ |
別ファイル N を編集(":e #N"と同じ) |
ファイル編集 |
:pwd |
カレントディレクトリを表示 |
マーク |
`" |
前回このファイルを編集した時の場所に移動 |
マーク |
`. |
このファイルで最後に変更した場所に移動 |
マーク |
`< |
(直前の)ビジュアルエリアの先頭に移動 |
マーク |
`> |
(直前の)ビジュアルエリアの末尾に移動 |
マーク |
`[ |
直前に繰作もしくはプットした文字列の先頭に移動 |
マーク |
`] |
直前に繰作もしくはプットした文字列の末尾に移動 |
マーク |
`` |
直前のジャンプコマンドの前の場所に移動 |
マーク |
`{0-9} |
vimが前回終了した時の場所に移動 |
マーク |
`{a-z} |
編集中のファイルのマーク{a-z} に移動 |
マーク |
`{A-Z} |
任意のファイルのマーク{A-Z} に移動 |
マーク |
'{a-zA-Z0-9[]'"<>.} |
` と同じだが、その行の先頭の非空白文字まで移動する点が異なる。 |
マーク |
:ju[mps] |
ジャンプリストを一覧表示 |
マーク |
:marks |
現在設定されているマークを一覧表示 |
マーク |
m{a-zA-Z} |
現在の場所を {a-zA-Z} としてマーク |
マーク |
N CTRL-I |
ジャンプリストの N 番目に新しい場所に移動 |
マーク |
N CTRL-O |
ジャンプリストの N 番目に古い場所に移動 |
上下の移動 |
N % |
ファイルの N パーセント目に移動。このコマンドは N の指定が必須。無指定の場合は|%|コマンド扱い。 |
上下の移動 |
N + |
下に N 行移動し、行頭の非空白文字に移動(CTRL-M, <CR>キーでも同じ) |
上下の移動 |
N - |
上に N 行移動し、行頭の非空白文字に移動 |
上下の移動 |
N _ |
下に N-1 行移動し,行頭の非空白文字に移動 |
上下の移動 |
N G |
N 行目(デフォルトは最後の行)に移動し、行頭の非空白文字に移動 |
上下の移動 |
N gg |
N 行目(デフォルトは1行目)に移動し、行頭の非空白文字に移動 |
上下の移動 |
N gj |
画面上で N 行下に移動。(複数行にまたがる行がある場合 |
上下の移動 |
N gk |
画面上で N 行上に移動。(複数行にまたがる行がある場合の動きが"k"と異なる) |
上下の移動 |
N j |
下に N 行移動 (CTRL-J, CTRL-N, <NL>, <Down> でも同じ) |
上下の移動 |
N k |
上に N 行移動 (CTRL-P, <Up> キーでも同じ) |
保存と終了 |
:cq |
保存せずに終了し、エラーコードを返す。 |
保存と終了 |
CTRL-Z |
":stop"と同じ。 |
保存と終了 |
:qa[ll] |
変更がない限りvimを終了 |
保存と終了 |
:qa[ll]! |
変更があってもvimを強制終了 |
保存と終了 |
:q[uit] |
変更がなければ、現在のバッファを終了。他にヘルプ以外のバッファがなければvimを終了。 |
保存と終了 |
:q[uit]! |
変更を破棄して、現在のバッファを終了。他にヘルプ以外のバッファがなければvimを終了。 |
保存と終了 |
:[range]up[date][!] |
変更されていれば、上書き保存 |
保存と終了 |
:[range]w[rite][!] |
現在のファイルに保存 |
保存と終了 |
:[range]w[rite][!] >> |
現在のファイルに追記 |
保存と終了 |
:[range]w[rite] !{cmd} |
[range]の行を標準入力として{cmd}を実行。 |
保存と終了 |
:[range]w[rite] {file} |
{file}がなければ、{file}に保存。 |
保存と終了 |
:[range]w[rite]! {file} |
{file}に保存。ファイルがあれば上書き。 |
保存と終了 |
:[range]w[rite][!] >> {file} |
{file}に追記 |
保存と終了 |
:st[op][!] |
vimをサスペンドし、新たなシェルを起動。'aw'オプションがONで、[!]も指定していない場合はバッファを保存 |
保存と終了 |
:wa[ll][!] |
変更のある全バッファを上書き保存 |
保存と終了 |
:wq[!] |
現ファイルを保存して終了 |
保存と終了 |
:wq[!] {file} |
{file}に保存して終了 |
保存と終了 |
:xa[ll][!] |
or :wqall[!] 変更のある全バッファを保存して終了 |
保存と終了 |
:x[it][!] [file] |
":wq"と同様だが、変更が加わっている場合のみ保存 |
保存と終了 |
ZQ |
":q!"と同じ |
保存と終了 |
ZZ |
":x"と同じ |
「変更」とは、文字列を削除し、挿入モードに入ること |
N C |
(N-1 行後の)行末までを変更 |
「変更」とは、文字列を削除し、挿入モードに入ること |
N cc |
N 行を変更 |
「変更」とは、文字列を削除し、挿入モードに入ること |
N c{motion} |
{motion}で指定した範囲の文字列を変更 |
「変更」とは、文字列を削除し、挿入モードに入ること |
N s |
N 文字を変更 |
「変更」とは、文字列を削除し、挿入モードに入ること |
N S |
N 行を変更 |
「変更」とは、文字列を削除し、挿入モードに入ること |
{visual}c |
ビジュアルモードで選択された文字列を変更 |
外部コマンド |
:!{command} |
{command}をシェルで起動する |
外部コマンド |
K |
カーソル下にある単語を'keywordprg' 外部コマンドで調べる。(デフォルトは"man") |
外部コマンド |
:sh[ell] |
シェルを起動する |
左右の移動 |
^ |
行の先頭(但し空白文字類以外)に移動 |
左右の移動 |
0 |
行の先頭に移動 ( <Home> キーでも同じ) |
左右の移動 |
g^ |
画面上の行の先頭(但し空白文字類以外)に移動。(複数行にまたがる時の動きが"^"と違います) |
左右の移動 |
g0 |
画面上の行の先頭に移動。(複数行にまたがる時の動きが"0"と違います) |
左右の移動 |
gm |
現在行の中央(端末の横幅の半分の桁位置)に移動 |
左右の移動 |
N , |
直前の"f", "F", "t", "T"を逆方向に N 回繰り返す。 |
左右の移動 |
N ; |
直前の"f", "F", "t", "T"を N 回繰り返す。 |
左右の移動 |
N | |
N桁目に移動。(デフォルトは1) |
左右の移動 |
N $ |
行の末尾に移動。(N-1行、下に移動)( <End> キーでも同じ) |
左右の移動 |
N f{char} |
現在位置から右方向にあるN個目の{char}に移動 |
左右の移動 |
N F{char} |
現在位置から左方向にあるN個目の{char}に移動 |
左右の移動 |
N g$ |
行の末尾に移動。(複数行にまたがる時の動きが"$"と違います) |
左右の移動 |
N h |
左に N 桁移動 ( CTRL-H, <BS>, <Left> キーでも同じ) |
左右の移動 |
N l |
右に N 桁移動 ( <Space>,<Right> キーでも同じ) |
左右の移動 |
N t{char} |
現在位置から右方向にあるN個目の{char}の左側に移動 |
左右の移動 |
N T{char} |
現在位置から左方向にあるN個目の{char}の右側に移動 |
折り畳みコマンド |
:{range}fold |
{range}範囲の行を折畳む |
折り畳みコマンド |
set foldmethod=expr |
'foldexpr'で折畳み |
折り畳みコマンド |
set foldmethod=indent |
インデントで折畳み |
折り畳みコマンド |
set foldmethod=manual |
手動で折畳み |
折り畳みコマンド |
set foldmethod=marker |
'foldmarker'で折畳み |
折り畳みコマンド |
set foldmethod=syntax |
シンタックスのリージョンで折畳み |
折り畳みコマンド |
zc |
カーソル下の折畳みを1段閉じる |
折り畳みコマンド |
zC |
カーソル下の折畳みを全段閉じる |
折り畳みコマンド |
zd |
カーソル下の1つの折畳みを削除する |
折り畳みコマンド |
zD |
カーソル下の全ての折畳みを削除する |
折り畳みコマンド |
zf{motion} |
手動で折畳みを定義する |
折り畳みコマンド |
zi |
'foldenable'を反転させる |
折り畳みコマンド |
zm |
'foldlevel'を減らし、折畳みを増やす |
折り畳みコマンド |
zM |
'foldlevel'を0にし、全て折畳む |
折り畳みコマンド |
zn |
'foldenable'を無効にし、折畳み無し |
折り畳みコマンド |
zN |
'foldenable'を有効にし、折畳む |
折り畳みコマンド |
zo |
カーソル下の折畳みを1段開く |
折り畳みコマンド |
zO |
カーソル下の折畳みを全段開く |
折り畳みコマンド |
zr |
'foldlevel'を増やし、折畳を減らす |
折り畳みコマンド |
zR |
'foldlevel'を最大にし、全て開く |
挿入モードでの特殊キー |
0 CTRL-D |
現在行の全インデントを削除 |
挿入モードでの特殊キー |
<BS> or CTRL-H |
カーソルの前の1文字を削除 |
挿入モードでの特殊キー |
CTRL-@ |
直前に挿入した文字列をもう一度挿入し、挿入モードから復帰 |
挿入モードでの特殊キー |
CTRL-A |
直前に挿入した文字列をもう一度挿入 |
挿入モードでの特殊キー |
^ CTRL-D |
現在行の全インデントを削除。但し、次の行のインデントには影響しない。 |
挿入モードでの特殊キー |
CTRL-D |
'shiftwidth'での指定分のインデントを現在行の行頭から削除 |
挿入モードでの特殊キー |
CTRL-E |
カーソル位置の直下の行の内容を1文字挿入 |
挿入モードでの特殊キー |
CTRL-N |
カーソルの前にあるキーワードと合致する単語を順方向に検索して挿入 |
挿入モードでの特殊キー |
CTRL-P |
カーソルの前にあるキーワードと合致する単語を逆方向に検索して挿入 |
挿入モードでの特殊キー |
CTRL-R {0-9a-z%#:.-="} |
指定のレジスタの内容を挿入 |
挿入モードでの特殊キー |
CTRL-T |
'shiftwidth'での指定分のインデントを現在行の行頭に挿入 |
挿入モードでの特殊キー |
CTRL-U |
現在行で入力した全部の文字を削除 |
挿入モードでの特殊キー |
CTRL-V {char}.. |
指定の{char}、もしくは10進数指定のバイト値を挿入 |
挿入モードでの特殊キー |
CTRL-W |
カーソル位置の1単語を削除 |
挿入モードでの特殊キー |
CTRL-X ... |
カーソルの前にある単語をいろんな方法で補完する。 |
挿入モードでの特殊キー |
CTRL-Y |
カーソル位置の真上の行の内容を1文字挿入 |
挿入モードでの特殊キー |
<Del> |
カーソル位置の1文字を削除 |
挿入モードでの特殊キー |
<NL> or <CR> or CTRL-M or CTRL-J |
改行して、新しい行を作成 |
挿入モードの終了 |
CTRL-C |
<Esc>と同様。ただし、短縮形は展開しない |
挿入モードの終了 |
CTRL-O {command} |
{command}を実行し、挿入モードへ復帰 |
挿入モードの終了 |
<Esc> |
挿入モードを終わって、通常モードへ復帰 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N a" |
"a double quoted string"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N a' |
"a single quoted string"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N a> |
"a <> block"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N a` |
"a backward quoted string"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N ab |
"a block"( "[("~"])"の範囲)を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N aB |
"a Block" ( "[{"~"]}"の範囲)を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N ap |
"a paragraph"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N as |
"a sentence"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N at |
"a tag block" (<aaa> ~ </aaa>)を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N aw |
"a word"を選択(単語の前後の空白も削除) |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N aW |
"a |WORD|"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N i" |
"inner double quoted string"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N i' |
"inner single quoted string"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N i> |
"inner <> block"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N i` |
"inner backward quoted string"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N ib |
"inner block" ( "[("~"])"の範囲)を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N iB |
"inner Block" ( "[{"~"]}"の範囲)を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N ip |
"inner paragraph"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N is |
"inner sentence"を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N it |
"inner tag block" (<aaa> ~ </aaa>)を選択 |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N iw |
"inner word"を選択(正味の単語だけを削除) |
文字列オブジェクト(ビジュアルモードか、オペレータ指定後) |
N iW |
"inner |WORD|"を選択 |
文字列のコピーと移動 |
"{char} |
レジスタ{char}を指定。これに続いて、削除コマンドやヤンクコマンド、プットコマンドを指定 |
文字列のコピーと移動 |
N gp |
pと同じだが、挿入した文字列の後にカーソルを移動 |
文字列のコピーと移動 |
N gP |
Pと同じだが、挿入した文字列の後にカーソルを移動 |
文字列のコピーと移動 |
N [p |
Pと同じだが、インデントを現在行に合せる |
文字列のコピーと移動 |
N ]p |
pと同じだが、インデントを現在行に合せる |
文字列のコピーと移動 |
N p |
カーソル位置の後にレジスタ内容をN回プット(ペースト) |
文字列のコピーと移動 |
N P |
カーソル位置の前にレジスタ内容をN回プット(ペースト) |
文字列のコピーと移動 |
N Y |
N 行をレジスタにヤンク |
文字列のコピーと移動 |
N y{motion} |
{motion}で指定された範囲の文字列をレジスタにヤンク(コピー) |
文字列のコピーと移動 |
N yy |
N 行をレジスタにヤンク |
文字列のコピーと移動 |
:reg |
全レジスタの内容を表示 |
文字列のコピーと移動 |
:reg {arg} |
{arg}で示されたレジスタの内容を表示 |
文字列のコピーと移動 |
{visual}y |
ハイライト化された文字列をレジスタにヤンク |
文字列の削除 |
N D |
(N-1 行後の)行末まで削除 |
文字列の削除 |
N dd |
N 行削除 |
文字列の削除 |
N <Del> |
カーソル位置及びその後ろの N 文字を削除 |
文字列の削除 |
N d{motion} |
{motion}で指定された範囲の文字列を削除 |
文字列の削除 |
N gJ |
"J"と同じだが、行の間にスペースを入れない |
文字列の削除 |
N J |
N-1 行を結合して1行に(<EOL>を削除) |
文字列の削除 |
N x |
カーソル位置及びその後ろの N 文字を削除 |
文字列の削除 |
N X |
カーソル位置の前の N 文字を削除 |
文字列の削除 |
:[range]d [x] |
[range]で指定した範囲の行を削除 [それをレジスタxに] |
文字列の削除 |
{visual}d |
ハイライト化された文字列を削除 |
文字列の削除 |
{visual}gJ |
"{visual}J"と同じだが、行の間にスペースを入れない |
文字列の削除 |
{visual}J |
ビジュアルモードで選択された文字列を結合 |
文字列の変更 |
g?{motion} |
{motion}で指定した範囲をrot13でエンコードする。 |
文字列の変更 |
g~{motion} |
{motion}で指定した範囲の大文字/小文字を変換 |
文字列の変更 |
gu{motion} |
{motion}で指定した範囲を小文字に変換 |
文字列の変更 |
gU{motion} |
{motion}で指定した範囲を大文字に変換 |
文字列の変更 |
N << |
カレント行から N 行分のインデントを減らす |
文字列の変更 |
N >> |
カレント行から N 行分のインデントを増やす |
文字列の変更 |
N ~ |
N 文字分の英文字の大文字/小文字を変換し、カーソルを移動 |
文字列の変更 |
N CTRL-A |
カーソル位置もしくは後ろにある数字にNを加算する |
文字列の変更 |
N CTRL-X |
カーソル位置もしくは後ろにある数字からNを減算する |
文字列の変更 |
N gq{motion} |
{motion}で指定した範囲を'textwidth'で指定した長さにフォーマット |
文字列の変更 |
N gR |
仮想置換モードへ。置換モードと同じだが、レイアウトに影響しない。 |
文字列の変更 |
N gr{char} |
N 文字をレイアウトに影響を与えずに置換 |
文字列の変更 |
N <{motion} |
{motion}で指定した範囲を'shiftwidth'分、インデントを減らす |
文字列の変更 |
N >{motion} |
{motion}で指定した範囲を'shiftwidth'分、インデントを増やす |
文字列の変更 |
N R |
置換モードへ (入力文字列を N 回繰り返す) |
文字列の変更 |
N r{char} |
N 文字を{char}に置換 |
文字列の変更 |
:[range]ce[nter] |
[width][range]の行範囲をセンタリング |
文字列の変更 |
:[range]le[ft] |
[indent][range]の行範囲を([indent] 分)左寄せ |
文字列の変更 |
:[range]ri[ght] |
[width][range]の行範囲を([width] 桁まで)右寄せ |
文字列の変更 |
{visual}~ |
ビジュアルモードで選択された範囲の大文字/小文字を変換 |
文字列の変更 |
{visual}c |
ビジュアルブロックモード用:選ばれている各行の内容を入力した文字列に置き換え |
文字列の変更 |
{visual}C |
ビジュアルブロックモード用:選ばれている各行の行末までを入力した文字列に置き換え |
文字列の変更 |
{visual}g? |
ビジュアルモードで選択した範囲をrot13でエンコードする。 |
文字列の変更 |
{visual}r{char} |
ビジュアルブロックモード用: 選択範囲の各文字を{char}で、置換 |
文字列の変更 |
{visual}u |
ビジュアルモードで選択された範囲を小文字に変換 |
文字列の変更 |
{visual}U |
ビジュアルモードで選択された範囲を大文字に変換 |
文字列の挿入 |
N a |
カーソル位置の後に文字列を(N回)追加 |
文字列の挿入 |
N A |
現在行の末尾に文字列を(N回)追加 |
文字列の挿入 |
N gI |
現在行の先頭に文字列を(N回)追加 |
文字列の挿入 |
N i |
カーソル位置の前に文字列を(N回)追加(<Insert>も同様) |
文字列の挿入 |
N I |
現在行の最初の非空白文字の前に文字列を(N回)追加 |
文字列の挿入 |
N o |
現在行の下に新たな行を追加し、文字列を(N回)追加する。 |
文字列の挿入 |
N O |
現在行に新たな行を挿入し、文字列を(N回)追加する。 |
文字列の挿入 |
:star[tinsert][!] |
Insertモードを開始する。[!]を指定するとAppendモードとなる。 |
文字列の挿入 |
:startr[eplace][!] |
Replaceモードを開始する。[!]を指定すると行末から開始する。 |
特殊な Ex 文字 |
" |
コメントの開始 |
特殊な Ex 文字 |
% |
現在のファイル名(ファイル名を使うべき場所でのみ可) |
特殊な Ex 文字 |
| |
コマンドを2つに分割 (":global"と":!"では使用不可) |
特殊な Ex 文字 |
#[num] |
別のファイル名[num] (ファイル名を使うべき場所でのみ可) |
特殊な挿入コマンド |
:r! {command} |
カーソル位置の後ろに {command} を実行した結果の標準出力の内容を挿入 |
特殊な挿入コマンド |
:r [file] |
カーソル位置の後ろに [file] の内容を挿入 |
移動 |
cursor keys |
カーソルを上下左右に移動 |
移動 |
<End> |
その行の最終桁に移動 |
移動 |
<Home> |
その行の先頭桁に移動 |
移動 |
shift-left/right |
1単語ごと左右に移動 |
移動 |
shift-up/down |
1画面ごと前後に移動 |
繰り返しコマンド |
:@@ |
直前の:@{a-z} を N 回実行 |
繰り返しコマンド |
:@{a-z} |
レジスタ{a-z}の内容をExコマンドとみなして、N回実行 |
繰り返しコマンド |
N . |
直前のコマンドを繰り返す。(回数はN回となる) |
繰り返しコマンド |
N @@ |
直前の@{a-z} を N 回実行 |
繰り返しコマンド |
N @{a-z} |
レジスタ{a-z}の内容を N 回実行 |
繰り返しコマンド |
N gs |
N 秒間の間、何もしない |
繰り返しコマンド |
q |
記録を終了 |
繰り返しコマンド |
q{a-z} |
入力された文字群をレジスタ{a-z}に記録 |
繰り返しコマンド |
q{A-Z} |
入力された文字群をレジスタ{a-z}に追加して記録 |
繰り返しコマンド |
:[range]g[lobal]!/{pattern}/[cmd] |
[range]の中で、指定の{pattern}に合致**しない**各行に対して[cmd]コマンド(デフォルトでは":p")を実行する。 |
繰り返しコマンド |
:[range]g[lobal]/{pattern}/[cmd] |
[range]の中で、指定の{pattern}に合致する各行に対して[cmd]コマンド(デフォルトでは":p")を実行する。 |
繰り返しコマンド |
:sl[eep] [sec] |
[sec] 秒間の間、何もしない |
繰り返しコマンド |
:so[urce] {file} |
{file}からExコマンドを読み出す。 |
繰り返しコマンド |
:so[urce]! {file} |
{file}からvimコマンドを読み出す。 |
複数ウィンドウコマンド |
CTRL-W + |
現在のウィンドウの高さを増やす |
複数ウィンドウコマンド |
CTRL-W - |
現在のウィンドウの高さを減らす |
複数ウィンドウコマンド |
CTRL-W = |
全ウィンドウの高さを同一に |
複数ウィンドウコマンド |
CTRL-W ] |
ウィンドウを分割し、カーソル下のタグにジャンプ |
複数ウィンドウコマンド |
CTRL-W ^ |
ウィンドウを分割し、別ファイルにジャンプ |
複数ウィンドウコマンド |
CTRL-W _ |
現在のウィンドウの高さを変更する(デフォルト:最大) |
複数ウィンドウコマンド |
CTRL-W b |
カーソルを一番下のウィンドウに移動 |
複数ウィンドウコマンド |
CTRL-W c |
or :cl[ose] バッファを隠しウィンドウを閉じる |
複数ウィンドウコマンド |
CTRL-W CTRL-W |
カーソルを下のウィンドウに移動(wrap) |
複数ウィンドウコマンド |
CTRL-W f |
ウィンドウを分割し、カーソル下のファイルにジャンプ |
複数ウィンドウコマンド |
CTRL-W j |
カーソルを下のウィンドウに移動 |
複数ウィンドウコマンド |
CTRL-W k |
カーソルを上のウィンドウに移動 |
複数ウィンドウコマンド |
CTRL-W n |
or :new 新たな空ウィンドウを作成 |
複数ウィンドウコマンド |
CTRL-W o |
or :on[ly] 画面を現在ウィンドウ1つだけにする |
複数ウィンドウコマンド |
CTRL-W p |
カーソルを直前のアクティブウィンドウに移動 |
複数ウィンドウコマンド |
CTRL-W q |
or :q[uit] 編集を終了しウィンドウを閉じる |
複数ウィンドウコマンド |
CTRL-W r |
ウィンドウを下側にローテートする。 |
複数ウィンドウコマンド |
CTRL-W R |
ウィンドウを上側にローテートする。 |
複数ウィンドウコマンド |
CTRL-W s |
or :split ウィンドウを2つに分割 |
複数ウィンドウコマンド |
CTRL-W t |
カーソルを一番上のウィンドウに移動 |
複数ウィンドウコマンド |
CTRL-W W |
カーソルを上のウィンドウに移動(wrap) |
複数ウィンドウコマンド |
CTRL-W x |
現在のウィンドウを次のウィンドウと入れ換え |
複数ウィンドウコマンド |
:sf[ind] {file} |
ウィンドウを分割し、{file}を'path'中で探し、それを編集 |
複数ウィンドウコマンド |
:split {file} |
ウィンドウを2つに分割し、片方で{file}を開く |
複数ウィンドウコマンド |
:vertical {cmd} |
{cmd}が縦分割するようにする |
複数ウィンドウコマンド |
:vsplit {file} |
同上。ウインドウは縦分割。 |
複雑な変更処理 |
& |
直前の":s"を現在行について繰り返す。(オプションなし) |
複雑な変更処理 |
N == |
N 行を'equalprg'の結果出力に置き換え |
複雑な変更処理 |
N !!{command}<CR> |
N 行を{command}の結果出力に置き換え |
複雑な変更処理 |
N ={motion} |
{motion}で指定した範囲を'equalprg'の結果出力に置き換え |
複雑な変更処理 |
N !{motion}{command}<CR> |
{motion}で指定した範囲を{command}の結果出力に置き換え |
複雑な変更処理 |
:[range]! {command}<CR> |
[range] の範囲を{command}の結果出力に置き換え |
複雑な変更処理 |
:[range]ret[ab][!] [tabstop] |
'tabstop'の値を変更し、それに従って空白、TABの類を適切な状態にする。 |
複雑な変更処理 |
:[range]s[ubstitute] [g][c] |
直前の":s"を新たな範囲とオプションで繰り返す |
複雑な変更処理 |
:[range]s[ubstitute]/{pattern}/{string}/[g][c] |
[range]の範囲の{pattern}を{string}に置換する。[g]を指定すると、見つかった全{pattern}を置換。[c]を指定すると、各置換を確認する。 |
複雑な変更処理 |
{visual}= |
ビジュアルモードで選択された範囲を'equalprg'の結果出力に置き換え |
複雑な変更処理 |
{visual}!{command}<CR> |
ビジュアルモードで選択された範囲を{command}の結果出力に置き換え |
雑他な移動コマンド |
% |
呼応するカッコ類("(","[","{")や、コメント、"#if"/"#else"/"#endif"のペアを検索して移動 |
雑他な移動コマンド |
M |
画面上の真ん中の行の最初の非空白文字に移動 |
雑他な移動コマンド |
N go |
現バッファの N バイト目に移動 |
雑他な移動コマンド |
N H |
画面上で N 行目の最初の非空白文字に移動 |
雑他な移動コマンド |
N L |
画面上で下から N 行目の最初の非空白文字に移動 |
雑他な移動コマンド |
:[range]go[to] [off] |
現バッファの [off] バイト目に移動 |