Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5657

ノーマルモードのデフォルトのマッピングを一言で説明していく表

$
0
0

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

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

以下のコマンドでノーマルモードで qQ<C-q><Tab>を押したときの動作が調べられます.
<C-q>コントロールキー + qという意味です.

:hq:h Q
:h CTRL-q:h<Tab>

以下のコマンドでインサートモードで <C-q><Tab>を押したときの動作が調べられます.
(当たり前ですがインサートモードで qQを押したときは qQが入力されます)

:h i_CTRL-q:h i_<Tab>

ビジュアルモードは上のコマンドの i_の部分を v_に変えれば調べることができます.
コマンドラインモードについても c_に変えれば調べることができます.

ノーマルモードのデフォルトマッピングの表

g, z, Z, [, ], <c-w>は続くキー次第で内容が多岐にわたるので prefix とさせていただきました

word は空白もしくはアンダーバーを除く特殊文字で区切られたひと単語でを表現していて,
WORD は空白区切りのひとまとまりを表現しています.

c, d, yは続くオペレーター(テキストオブジェクトや移動コマンド)によって動作が変わるので
共通する動作 change, delete, yankと書きました.

mapdefault
aカーソルの後ろに挿入
A行末に挿入
<C-a>インクリメント
bword のはじめに後方移動
BWORD のはじめに後方移動
<C-b>1ページ上にスクロール
cchange
C行末まで変更
<C-c>現在の(検索)コマンドを中止
ddelete
D行末まで削除
<C-d>半ページ下にスクロール
eword の終わりに前方移動
EWORD の終わりに前方移動
<C-e>ページを下に1行スクロール
f指定した char へ前方移動
F指定した char へ後方移動
<C-f>1ページ下にスクロール
gprefix
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マクロ登録
QEx モードに切り替え
<C-q>ビジュアル矩形モード
r1文字置き換え
R置き換えモード
<C-r>やり直し
s1文字削除して挿入モード
S1行削除して挿入モード
<C-s>特になし?
t指定した char の前へ前方移動
T指定した char の後へ後方移動
<C-t>次のタグにジャンプ
u取り消し
U変更ありの取り消し
<C-u>半ページ上にスクロール
vビジュアルモード
V1行ビジュアルモード
<C-v>矩形ビジュアルモード
wword のはじめに前方移動
WWORD のはじめに前方移動
<C-w>ウィンドウ関連の prefix
xカーソル下の文字を削除
Xカーソルの前の文字を削除
<C-x>ディクリメント
yyank
Y1行ヤンク
<C-y>ページを上へ1行スクロール
zprefix
Zprefix
<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>と同じキーコード

マッピングについて

vim は ~/.vimrcに以下のような記述を(もしくはコマンドラインで実行)することで
<キー>を押したときに <処理>を実行することができます.

" ノーマルモード
nnoremap <キー><処理>" インサートモード
inoremap <キー><処理>" ヴィジュアルモード
xnoremap <キー><処理>" コマンドラインモード
cnoremap <キー><処理>

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

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

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


Viewing all articles
Browse latest Browse all 5657

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>