easymotion為一個可快速將游標(cursor)跳到指定位置的Vim插件。
在Vim中已有數種快速跳轉游標的方式,舉例如下:
- 輸入
:列號
,可快速跳至指定的列 - 按下
^
或$
可分別跳至該列的頭尾 - 將左側顯示的列數設成相對列號(
:set relativenumber
),如欲往上或往下跳10列,輸入10k
、10j
即可快速跳過去。可再搭配zz
、zt
、zb
指令將游標所在的列移至畫面中不同位置 - 使用
w
、b
或ctrl+方向鍵
可快速在word之間移動 - 左右跳動方式也可輸入
5h
、5l
快速往左或右跳5行 - 懶惰時直接用滑鼠滾輪+左鍵XD
基本上這些在不同列間的移動已經相當夠用了,但不同行之間的移動速度還可以稍微加強,使用easymotion可快速跳至某個字所在的位置,也就是能夠直接跳去指定的列與行。
安裝
在init.vim
中插入下面的代碼(以Vim-plug
為例),並用:PlugInstall
安裝
1 | Plug 'easymotion/vim-easymotion' |
基本配置
基本配置我只加了一條,即搜尋指定字元時不分大小寫
快捷鍵的部份我都維持default的設置
1 | # easymotion |
如何使用
完整指令可參考VSCode-Vim的文檔或easymotion的文檔。
我自己只記以下三種,視自己的需求可記其他指令(例如搜尋限定在word的開頭或結尾等等)
假如我想跳至畫面中的某個字,我可以鎖定那個字的任何一個字母(假設鎖定l
),首先輸入,,sl
(我已把<leader>
綁定到,
,預設是\
),此時按下你想跳去的位置所顯示的字母,即可快速跳到那個位置。
原本的畫面顯示如下:
輸入,,sl
後的畫面:
可觀察到畫面中出現各種Target key
,只要輸入欲跳去的位置顯示的字母,即可直接跳過去該位置。另外兩個指令,,,fl
會顯示游標後面的所有l,而,,Fl
會顯示游標前面的所有l,功能幾乎一樣,只是畫面可稍微簡潔一點。快捷鍵記熟之後游標會用跳躍的而不用再慢慢ㄌㄨ。
附註
- VSCode中的Vim也具備此功能