-
Notifications
You must be signed in to change notification settings - Fork 0
vim03
Kazuyuki Ikeda edited this page Jul 4, 2014
·
2 revisions
今日はmapのお話
特定のキー入力をほかのキー入力に変えますよ ex) a => abcって打つ, F1 => :tab :h
:map <元のキー> <変えた後のキー>
:map a bcdef
ふつうは モード + 再帰呼び出し(ON,OFF) + map
:nnoremap -> ノーマルモードの再帰呼び出ししないmapって意味
=> n がノーマルモード
nore が再帰呼び出ししない
mapマップ
モード指定は
- n: ノーマルモード
- c: コマンド
- v: ヴィジュアルモード
- i: インサートモード
インサートモードCtrl-R,=の時は多分コマンドモードで解釈
# シングルクォートで囲む
vnoremap ' di'<C-R>"'<ESC>
vnoremap ( di(<C-R>")<ESC>
# F1キーでヘルプ
nnoremap <F1> :tab :h<CR>
nnoremap <F2> :NERDTreeToggle<CR>
# 超おすすめ
inoremap <silent> jj <ESC>
# コマンド履歴を巡る
cnoremap <C-N> <Down>
cnoremap <C-P> <Up>
nunmap これでmapの削除
:h map
キーモーションとかに割り当てられてるキーを使うと 結構面倒なことになりますよ
nnoremap wf :execute "split " . expand("<cfile>")<CR>
- vimが遅くなる
vim側からすると次のキーが押されるまで命令を解釈できない -> 次のキー入力まで待つので遅く感じる
- マクロがおかしくなる
マクロだと結果が同じだといったな あれは嘘だ マクロで記録されない情報がある
マクロだと超スピードでキーを走らせるので、 手入力の場合はmapが発動しなかった編集も発動しちゃう
- それ本当にノーマルモードでやる必要ある?
- F1~F12キーを使えないか
- 短縮入力っていうのでもできない?
- モーションに被らないか見よう
- 絶対使わないと思うキーだけやる
- (デフォルトでバックスラッシュ)で始まるmapは安全