phoenix-powereasymotionが新しくなったということで、本格的に運用を考えてみる

この前、キーボードのjが壊れました。自己修理しましたが、自己修理なので、またいつ何時壊れるかわからないし、jのキー入力に違和感が少しだけあります。

そんなこともあり、最近、easymotionを本格的に使って行こうかなと考えています(何度目?)。

https://github.com/easymotion/vim-easymotion

今まで何故使ってなかったのかというと、移動するのに、わざわざモード移行が面倒なのでは?と考え、そこら辺を自動化するスクリプトを書きました。

~/.vimrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
nmap <CR> H<Plug>(easymotion-j)

let s:air_get_line = getline('.')
set updatetime=5000
let s:count = 0
let s:two_count = 1
fu! s:air_easy_test()
  if mode() == "n"
      let s:count += 1
      let s:air_test_line=getline('.')
      if s:air_get_line != s:air_test_line
          if s:two_count==1
              "execute "normal \<Plug>(easymotion-j)"
              call feedkeys("\<CR>")
              let s:air_get_line=getline('.')
              let s:two_count = 0
          el
              let s:two_count = 1
          en
      en
  en
endf

aug air_easy_test
    au!
    au CursorHold,CursorHoldI * call s:air_easy_test()
aug END

一定時間経過後、入力がなければ、CRする設定です。私は、CRH<Plug>(easymotion-j)を設定してますので、どの行に移動するかのeasymotionが発動します。

ちなみに、vim scriptは書くの久しぶりだし、すごく適当です。

もともとそういう機能があるかもしれませんが、ドキュメント読んでいません。

V3では、ウィンドウ間の移動が出来るようになったとかで、今までほとんどtmuxでやってたウィンドウ管理をvimに変更してみようかなと考えています。