vim-easymotionと言うものがあります。これは、少ないキーでカーソル移動を実現するプラグインです。また、視覚的にわかりやすいというメリットもあります。移動先を視覚で強調してくれるためです。
ただ、このプラグインをインストールしてもなかなか慣れませんでした。慣れなというのは、具体的にはあまり使うことがなかったのです。
その理由を考えた時、最初のキータッチが面倒であることを思いつきました。よって、入力がなくて一定時間経過した時にvim-easymotion
で設定した最初のキー(easymotion-bd-wl)を実行するプラグイン?を作ってみました。
~/.vim/plugged/vim-easymotion-auto/plugin/vim-easymotion-auto.vim
""" setting {{{"" on plugin"let g:air_vim_easymotion_auto = 1"" set keymap"nm <Leader>f <Plug>(easymotion-auto-start)"nm <Leader>ff <Plug>(easymotion-auto-stop)"" }}}if!exists("g:air_vim_easymotion_auto")letg:air_vim_easymotion_auto =0enifg:air_vim_easymotion_auto >=1setupdatetime=3000lets:air_get_line = getline('.')lets:count=0lets:two_count =1enfu!s:air_easy_test()ifmode()=="n"lets:count+=1lets:air_test_line=getline('.')ifs:air_get_line !=s:air_test_line
call feedkeys("\<Plug>(easymotion-bd-wl)")lets:air_get_line=getline('.')enenendffu!s:air_vim_easymotion_auto_start()
aug air_easy_test
au!auCursorHold,CursorHoldI * calls:air_easy_test()
aug END
endfcom! EasyMotionAutoStart call<SID>air_vim_easymotion_auto_start()com! EasyMotionAutoStop au! air_easy_test
nn <Plug>(easymotion-auto-start) :EasyMotionAutoStart<CR>
nn <Plug>(easymotion-auto-stop) :EasyMotionAutoStop<CR>ifg:air_vim_easymotion_auto >=1call<SID>air_vim_easymotion_auto_start()en
内容に関してはvim-pluginとしての出来は全然よくありません。
一つは、call feedkeys("\<Plug>(easymotion-bd-wl)")
の部分で、feedkeys
を使わないやり方をあまり思いつきませんでした。
他にも良くないアンチパターンがたくさんあると思います。コメントにて指摘していただけるとうれしいです。
あと、このプラグイン、作ったもののあまり使いませんでした...。