Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vim-easymotionに慣れたいので最初のキーを自動化してみた

$
0
0

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を使わないやり方をあまり思いつきませんでした。

他にも良くないアンチパターンがたくさんあると思います。コメントにて指摘していただけるとうれしいです。

あと、このプラグイン、作ったもののあまり使いませんでした...。


Viewing all articles
Browse latest Browse all 5608

Trending Articles