02/01/14 00:31
foo.vim解読の続き。
ALT+4 で行の最後の空白以外にカーソルを移動する方法
:map <M-4> 0:let@9=@/<Bar>set nohls<CR>/.*\S/e<CR>:let @/=@9<Bar>set hls<CR>
読みにくいのでバラしてみると下のようになる
0
:let @9=@/
:set nohls
/.*\S/e
:let @/=@9
:set hls
0 は行頭に移動。:let @9=@/ ~ :let @/=@9 はレジスタ / を 9 に保存して復帰。
:set nohls ~ :set hls は検索文字列ハイライトを一時的に無効化。
で残ったのが /.*\S/e でこれが最後の空白以外に飛ぶ処理をやっていると。
ちなみに /e をつけないとなぜか次の行にカーソルが飛ぶ。