Hatena::ブログ(Diary)

hijouguchiの日記

2009-03-22

map

| 21:22 |

 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殺してるところくらい。

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

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

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


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

トラックバック - http://d.hatena.ne.jp/hijouguchi/20090322/1237724574