vim のデフォルトキーマッピングのチートシート(ノーマルモード)
ノーマルモードのデフォルトのキーマッピング一覧
デフォルトのキーマッピングを一言で説明した表です
-
<C-a>
はコントロールキー + a
という意味です. -
g
,z
,Z
,[
,]
,<c-w>
は続くキー次第で内容が多岐にわたるので prefix とさせていただきました - word は空白もしくはアンダーバーを除く特殊文字で区切られたひと単語でを表現していて, WORD は空白区切りのひとまとまりを表現しています.
-
c
,d
,y
は続くオペレーター(テキストオブジェクトや移動コマンド)によって動作が変わるので, 共通する動作change
,delete
,yank
と書きました.
キー | 内容 |
---|---|
a |
カーソルの後ろに挿入 |
A |
行末に挿入 |
<C-a> |
インクリメント |
b |
word のはじめに後方移動 |
B |
WORD のはじめに後方移動 |
<C-b> |
1ページ上にスクロール |
c |
change |
C |
行末まで変更 |
<C-c> |
現在の(検索)コマンドを中止 |
d |
delete |
D |
行末まで削除 |
<C-d> |
半ページ下にスクロール |
e |
word の終わりに前方移動 |
E |
WORD の終わりに前方移動 |
<C-e> |
ページを下に1行スクロール |
f |
指定した char へ前方移動 |
F |
指定した char へ後方移動 |
<C-f> |
1ページ下にスクロール |
g |
prefix |
G |
指定した行へジャンプ |
<C-g> |
ステータスを表示 |
h |
カーソルを左へ移動 |
H |
画面の1番上の行に移動 |
<C-h> |
カーソルを左に移動 |
i |
カーソルの前に挿入 |
I |
行頭に挿入(非空白) |
<C-i> |
<Tab> と同じキーコード |
j |
カーソルを下に移動 |
J |
カーソル行と下の行を結合 |
<C-j> |
1行下に移動 |
k |
カーソルを上に移動 |
K |
カーソル下の word を man |
<C-k> |
ダイグラフの入力 |
l |
カーソルを右へ移動 |
L |
画面の1番下の行に移動 |
<C-l> |
画面を再描画 |
m |
マーク |
M |
画面の中央に移動 |
<C-m> |
<CR> と同じキーコード |
n |
前方の検索結果に移動 |
N |
後方の検索結果に移動 |
<C-n> |
次の行に移動 |
o |
カーソル行の下に行を挿入 |
O |
カーソル行の上に行を挿入 |
<C-o> |
前のジャンプ位置にジャンプ |
p |
前方にペースト |
P |
後方にペースト |
<C-p> |
前の行に移動 |
q |
マクロ登録 |
Q |
Ex モードに切り替え |
<C-q> |
ビジュアル矩形モード |
r |
1文字置き換え |
R |
置き換えモード |
<C-r> |
やり直し |
s |
1文字削除して挿入モード |
S |
1行削除して挿入モード |
<C-s> |
特になし? |
t |
指定した char の前へ前方移動 |
T |
指定した char の後へ後方移動 |
<C-t> |
次のタグにジャンプ |
u |
取り消し |
U |
変更ありの取り消し |
<C-u> |
半ページ上にスクロール |
v |
ビジュアルモード |
V |
1行ビジュアルモード |
<C-v> |
矩形ビジュアルモード |
w |
word のはじめに前方移動 |
W |
WORD のはじめに前方移動 |
<C-w> |
ウィンドウ関連の prefix |
x |
カーソル下の文字を削除 |
X |
カーソルの前の文字を削除 |
<C-x> |
ディクリメント |
y |
yank |
Y |
1行ヤンク |
<C-y> |
ページを上へ1行スクロール |
z |
prefix |
Z |
prefix |
<C-z> |
vim をサスペンド |
<Esc> |
<Esc> |
<Tab> |
次のジャンプ位置にジャンプ |
<S-Tab> |
特になし? |
<BS> |
カーソルを左に移動 |
<CR> |
下の行頭の非空白文字に移動 |
<Space> |
カーソルを右に移動 |
! |
外部のプログラムを実行 |
@ |
マクロの再生 |
# |
カーソル下の単語を後方検索 |
$ |
行末に移動 |
% |
対応するかっこに移動 |
^ |
行頭に移動(非空白) |
& |
置き換えを繰り返す |
* |
カーソル下の単語を前方検索 |
( |
文後方に移動 |
) |
文前方に移動 |
0 |
行頭に移動(空白でも) |
- |
上の行頭の非空白文字に移動 |
_ |
-1 行下の非空白文字に移動 |
= |
インデントを揃える |
+ |
下の行頭の非空白文字に移動 |
\ |
デフォルト <LocalLeader>
|
| |
カーソル行の指定した列へ移動 |
` |
マーク位置へジャンプ |
~ |
大文字,小文字を切り替え |
[ |
後方移動系コマンドの prefix |
] |
前方移動系コマンドの prefix |
{ |
段落後方に移動 |
} |
段落前方に移動 |
; |
f char の順方向繰り返し |
: |
コマンドラインモード |
' |
マーク位置の行頭へジャンプ |
" |
レジスタの指定 |
, |
f char の逆方向繰り返し |
. |
繰り返し |
< |
インデントを左にずらす |
> |
インデントを右にずらす |
/ |
前方検索 |
? |
後方検索 |
<Down> |
カーソルを下に移動 |
<Up> |
カーソルを上に移動 |
<Right> |
カーソルを右に移動 |
<Left> |
カーソルを左に移動 |
<S-Down> |
1ページ下にスクロール |
<S-Up> |
1ページ上にスクロール |
<S-Right> |
word のはじめに前方移動 |
<S-Left> |
word のはじめに後方移動 |
<C-Down> |
特になし |
<C-Up> |
特になし |
<C-Right> |
WORD のはじめに前方移動 |
<C-Left> |
WORD のはじめに後方移動 |
<C-S-Down> |
特になし |
<C-S-Up> |
特になし |
<C-S-Right> |
特になし |
<C-S-Left> |
特になし |
<C-@> |
<C-Space> と同じキーコード |
<C-[> <C-#>
|
<esc> と同じキーコード |
<C-\> <C-$>
|
特になし? |
<C-]> <C-%>
|
カーソル下の定義にジャンプ |
<C-^> |
1個前のファイルに戻る |
<C-_> <C-&> <C-/>
|
特になし? |
<C-*> |
<BS> と同じキーコード |
デフォルトのマッピングを調べる方法
コマンドラインで以下のコマンドを実行すればそのキーにどのような処理が割り当てられているか調べることができます.ちなみに h
は help
という意味です.
以下のコマンドでノーマルモードで q
Q
<C-q>
<Tab>
を押したときの動作が調べられます.
:h q
:h Q
:h CTRL-q
:h <Tab>
以下のコマンドでインサートモードで <C-q>
<Tab>
を押したときの動作が調べられます.
(当たり前ですがインサートモードで q
Q
を押したときは q
Q
が入力されます)
:h i_CTRL-q
:h i_<Tab>
ビジュアルモードは上のコマンドの i_
の部分を v_
に変えれば調べることができます.
コマンドラインモードについても c_
に変えれば調べることができます.
マッピングについて
vim は ~/.vimrc
に以下のような記述を(もしくはコマンドラインで実行)することで
<キー>
を押したときに <処理>
を実行することができます.
" ノーマルモード
nnoremap <キー> <処理>
" インサートモード
inoremap <キー> <処理>
" ヴィジュアルモード
xnoremap <キー> <処理>
" コマンドラインモード
cnoremap <キー> <処理>
詳しくは日本語ドキュメントを参照して欲しいのですが,ともかくあるキーに特定の処理をさせることができます.
nnoremap
を nmap
とすると <処理>
が再マップされ,マップを入れ子にしたり再帰的にすることができます.
しかし vim にはデフォルトでほとんどのキーに動作が割り振られています.よって自分のオリジナルマッピングの際にどのキーを使えばいいのかがわかりにくいです.表で使わないなと判断したキーにマッピングを割り振るといいと思います.
Author And Source
この問題について(vim のデフォルトキーマッピングのチートシート(ノーマルモード)), 我々は、より多くの情報をここで見つけました https://qiita.com/shimehituzi/items/54f0d1a70444ef80d861著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .