(※) 既にあった - https://github.com/kana/vim-smartword
単語を移動する時に、.
とか =
とかで止まらなくていいからと思っていたので書いてみた。
nnoremap <silent>w :call <SID>clever_move("w")<CR> nnoremap <silent>b :call <SID>clever_move("b")<CR> nnoremap <silent>e :call <SID>clever_move("e")<CR> let s:no_clever_pattern = '\.\|(\|)\|!\|:\|]\|=\|<\|>\|"\|\$\|/\|-' ."\\|'" function! s:clever_move(word) execute "normal! " . a:word let chr =getline('.')[col('.') -1] if chr =~ s:no_clever_pattern || chr == '' call s:clever_move(a:word) endif endfunction
clever
を使いたかっただけともいう。
いまさらながら w をウインドウ移動に使用していてスムーズに移動しない(待ちが発生する)のが気になった。
noremap wh <C-w>h noremap wl <C-w>l noremap wj <C-w>j noremap wk <C-w>k noremap wp <C-w>p
別のキーに当てようとしたけど長年使ってたせいでしっくりこないので断念。