概要
このページは、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行下の行末へ移動
カーソル下の文字:The quick brown
の
fox jumps
over the lazy dogT
コマンド:3$
↓
移動先の文字: g
%: カーソル下、もしくは右方向にある次の括弧に対応する括弧へカーソルを移動
別コマンドに変化するので注意
コマンド:80%
→ ページ全体の行数の80パーセント目にあたる行へカーソルを移動
<{motion}, >{motion}: {motion}で指定した行全体を移動(移動量はshiftwidth)
「{motion}で指定→移動」をN回連続で行う(誤:移動量がN倍になる)
カーソル下の文字:The quick brown
の
fox jumps
over the lazy dogT
コマンド: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 編集リクエスト していただけると幸いです。