概要
このページは、Vimの1文字で操作内容が決まるコマンドをフォーカスしてまとめたページです。
アルファベット編の続きとなります(背景・1文字コマンドの定義などは下記ページを参照してください)。
前ページ:アルファベット編
Vimの1文字コマンドをまとめてみる(アルファベット編)
このページでは、ノーマルモードで記号・特殊キー・Ctrl同時押しから始まる1文字コマンドをまとめる。
予備知識
- {motion}: カーソル移動系のコマンドを表す。具体的には、表内で太字で示されているコマンド (hjkl...) などを表す
- {char}: 任意の1文字を表す
- 行頭・行末:ファイル1行の始めと終わり
- 文頭・文末:vimにおける"sentence"の始めと終わり。sentenceは.!?のいずれかで終わる。詳細は
:help sentence参照 - 文節:vimにおける"paragraph"。空行の後から始まる文章のまとまり。詳細は
:help paragraph参照
ノーマルモード:記号・特殊キー編
太字で示したコマンドは {motion} に対応するコマンドである。
| コマンド | 説明 |
|---|---|
| <BS> | カーソルを左へ移動(コマンドhと同様) |
| <NumLock> | カーソルを下へ移動(コマンドjと同様) |
| <Space> | カーソルを右へ移動(コマンドlと同様) |
| 0 | カーソルを行頭へ移動(インデントの影響を受けない) |
| ^ | カーソルを行頭へ移動(空白文字を除いた最初の文字) |
| $ | カーソルを行末へ移動 |
| - | カーソルを1行上の行頭へ移動 |
| <CR> | カーソルを1行下の行頭へ移動 |
| + | カーソルを1行下の行頭へ移動(コマンドと同様) |
| _ | (コマンド前の数字Nを指定したとき)カーソルをN-1行下の行頭へ移動。つまり _ はカレント行の先頭へ移動 |
| % | カーソル下、もしくは右方向にある次の括弧に対応する括弧へカーソルを移動 |
| ( | カーソルをひとつ前の文頭へ移動 |
| ) | カーソルをひとつ次の文頭へ移動 |
| { | カーソルをひとつ前の文節の頭へ移動 |
| } | カーソルをひとつ後ろの文節の頭へ移動 |
| | | カーソルをカレント行の1文字目に移動。コマンド前に数字Nを指定した場合はN文字目 |
| '{a-zA-Z0-9} | カーソルをマーク{a-zA-Z0-9}の行頭へ移動 |
| `{a-zA-Z0-9} | カーソルをマーク{a-zA-Z0-9}へ移動 |
| . | 最後の変更を再実行 |
| @{a-z} | レジスタ{a-z}に記録されたコマンドを実行 |
| /{pattern} | 文字列{pattern}を下方向に検索し、カーソルを次へ移動 |
| ?{pattern} | 文字列{pattern}で上方向に検索し、カーソルを前へ移動 |
| * | カーソル下の単語で検索し、ひとつ次の同一単語にカーソルをに移動 |
| # | カーソル下の単語で検索し、ひとつ前の同一単語にカーソルをに移動 |
| ; | 最後に行ったf, t, F, Tコマンドでの検索を再実行 |
| , | 最後に行ったf, t, F, Tコマンドでの検索を、前回と反対方向に再実行 |
| <{motion} | {motion}で指定した行全体を左へ移動(移動量はshiftwidth) |
| ={motion} | {motion}で指定した行のインデントを整える(移動量はshiftwidth) |
| >{motion} | {motion}で指定した行全体を右へ移動(移動量はshiftwidth) |
| ~ |
tildeopがオフのとき、カーソル下の文字の小文字/大文字を切り替える |
| ~{motion} |
tildeopがオンのとき、{motion}で指定したテキストの小文字/大文字を切り替える |
| <Tab> | カーソルをジャンプリストに記録されたひとつ次の位置へ移動 |
| <F1> | helpを開く |
| : | Ex commandモード |
ノーマルモード:Ctrl編
太字で示したコマンドは {motion} に対応するコマンドである。
| コマンド | 説明 |
|---|---|
| Ctrl-a | カーソル下の数字を+1。もしカーソル下が数字ではない場合は、カーソルを右方向にある次の数字へ移動した後で+1 |
| Ctrl-b | 画面とカーソルを画面1枚上へ移動。カーソルは移動先の行頭へ移動 |
| Ctrl-c | 現在の(検索)コマンドを中止 |
| Ctrl-d | 画面とカーソルをscroll(デフォルト:画面半分の行数)だけ下へ移動 。カーソルは移動先の行頭へ移動 |
| Ctrl-e | 画面のみを1行下にスクロール。カーソルは移動しない |
| Ctrl-f | 画面とカーソルを画面1枚下へ移動。カーソルは移動先の行頭へ移動 |
| Ctrl-g | ファイル名・行数・カーソル位置を表示 |
| Ctrl-h | カーソルを左へ移動(コマンドhと同様) |
| Ctrl-i | カーソルをジャンプリストに記録されたひとつ次の位置へ移動(コマンド<Tab>と同様) |
| Ctrl-j | カーソルを下へ移動(コマンドjと同様) |
| Ctrl-l | 画面を再描画 |
| Ctrl-m | カーソルを1行下の文頭へ移動(コマンド<CR>と同様) |
| Ctrl-n | カーソルを下へ移動(コマンドjと同様) |
| Ctrl-o | カーソルをジャンプリストに記録されたひとつ前の位置へ移動 |
| Ctrl-p | カーソルを上へ移動(コマンドkと同様) |
| Ctrl-r | リドゥ |
| Ctrl-t | カーソルをタグスタック内のひとつ前の位置へ移動 |
| Ctrl-u | 画面とカーソルをscroll(デフォルト:画面半分の行数)だけ上へ移動 。カーソルは移動先の行頭へ移動 |
| Ctrl-v | blockwise Visualモード |
| Ctrl-x | カーソル下の数字を-1。もしカーソル下が数字ではない場合は、カーソルを右方向にある次の数字へ移動した後で-1 |
| Ctrl-y | 画面のみを1行上にスクロール。カーソルは移動しない |
| Ctrl-z | Vimをサスペンド |
| Ctrl-] | カーソル下のキーワードでカーソルをタグジャンプさせる |
| Ctrl-^ | 代替ファイル(ひとつ前に編集したファイル)に移動 |
※ 1文字コマンドが存在しないCtrl-アルファベット
Ctrl-w {char} : Window commandに続く
Ctrl-k, Ctrl-q, Ctrl-s : 単体ではなし
動作がわかりにくい 数字+1文字コマンド
コマンドの前に数字を加えることで、繰り返し回数や行数の指定できる。
しかし、その結果がわかりにくいコマンドがいくつかあるため、ここではそのコマンドをまとめる。
なおここでは、コマンド前に付与した数字を N とする。
数字をつけて実行できないコマンド
- 0 : カーソルを行頭へ移動(インデントの影響を受けない)
数字をつけても操作内容が変化しないコマンド
- <F1> : helpを開く
- : (colon) : Ex commandモード
- Ctrl-v : blockwise Visualモード
- Ctrl-z : Vimをサスペンド
$: カーソルを文末へ移動
N-1行下の行末へ移動
カーソル下の文字:
fox jumps
over the lazy dog```の```T```
コマンド:```3$```
↓
移動先の文字: ```g```
### %: カーソル下、もしくは右方向にある次の括弧に対応する括弧へカーソルを移動
別コマンドに変化するので注意
コマンド:```80%``` → ページ全体の行数の80パーセント目にあたる行へカーソルを移動
### <{motion}, >{motion}: {motion}で指定した行全体を移動(移動量はshiftwidth)
「{motion}で指定→移動」をN回連続で行う(誤:移動量がN倍になる)
カーソル下の文字:
```The quick brown
fox jumps
over the lazy dog```の```T```
コマンド:```2>}``` ※ 文節2つ分の範囲を右に移動
↓
``` The quick brown
fox jumps
over the lazy dog
Ctrl-d, Ctrl-u: 画面とカーソルをscroll(デフォルト:画面半分の行数)だけ移動 。カーソルは移動先の行頭へ移動
scroll=Nに設定した後、画面をスクロール。
次の呼び出し時にも、最後に設定したscroll値が使用されるため、スクロール量が変化
コマンド:5 Ctrl-u Ctrl-u → 画面とカーソルが計10行上(5行 x 2回)へ移動
最後に
より正確な情報は :help コマンド or :h コマンド で確認してください。
間違い・誤解しやすい表現がある場合は、ご指摘 or 編集リクエスト していただけると幸いです。