map

 map関係のメモ。


 nmap, imap, vmap, cmap, omap
 がそれぞれノーマルモード、インサートモード、ビジュアルモード、コマンドライン、オペレータ待機モードのmap
 オペレータ待機モードはd, y, cの後に待機してるときのモードみたい。

onoremap " i"

とかやるとd", y"等がdi", yi"になる。d", y"等をそれぞれnnoremapしなくて済む。

 map, map!
 この二つが上を組み合わせたものでmapがnmap, vmap, omap。
 imap!がimap, cmapと同義。(ということでHJKL慣れしたいならmapとmap!を使うべきみたい。)

 xmap, smap
 ちょっと特別、xmapはビジュアル、smapはセレクトの時のモード。vmapは厳密にはxmapとsmapの両方みたい。とりあえず使う機会はそんなに無いかな?
 

 mapとnoremapの違いはmapは再mapするかどうか。例えば

nmap ; :
nmap : ;

 とやると:タイプしたときは;を呼び出して;から:を呼び出して...
 : → ; → : → ; → ...と無限ループ
大抵はnoremapを使うべき。

mapを使う場合は、今のところ自分のvimrcでは

nmap      <Space>w    <C-W>

 後は昨日書いたようにHJKL殺してるところくらい。

 上の用に書いておくと、他のところでを使ったmapがwに変わるので例えば

nnoremap <C-W>H <C-W>h

 といてみるとwHとしてもhになる。noremapだと再マップされないからこうならないみたい。(今のところ僕のvimrcにはnoremapが81個でmapが10個くらい)


 とりあえず基本そうな部分はこの位で。追記するかも。