2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vim のデフォルトキーマッピングのチートシート(ノーマルモード)

Last updated at Posted at 2020-05-18

ノーマルモードのデフォルトのキーマッピング一覧

デフォルトのキーマッピングを一言で説明した表です

  • <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> と同じキーコード

デフォルトのマッピングを調べる方法

コマンドラインで以下のコマンドを実行すればそのキーにどのような処理が割り当てられているか調べることができます.ちなみに hhelp という意味です.

以下のコマンドでノーマルモードで 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 <キー> <処理>

詳しくは日本語ドキュメントを参照して欲しいのですが,ともかくあるキーに特定の処理をさせることができます.

nnoremapnmap とすると <処理> が再マップされ,マップを入れ子にしたり再帰的にすることができます.

しかし vim にはデフォルトでほとんどのキーに動作が割り振られています.よって自分のオリジナルマッピングの際にどのキーを使えばいいのかがわかりにくいです.表で使わないなと判断したキーにマッピングを割り振るといいと思います.

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?