shayne's blog

Vim 插件介紹 - easymotion

2019/02/18 Share

easymotion為一個可快速將游標(cursor)跳到指定位置的Vim插件。

在Vim中已有數種快速跳轉游標的方式,舉例如下:

  1. 輸入:列號,可快速跳至指定的列
  2. 按下^$可分別跳至該列的頭尾
  3. 將左側顯示的列數設成相對列號(:set relativenumber),如欲往上或往下跳10列,輸入10k10j即可快速跳過去。可再搭配zzztzb指令將游標所在的列移至畫面中不同位置
  4. 使用wbctrl+方向鍵可快速在word之間移動
  5. 左右跳動方式也可輸入5h5l快速往左或右跳5行
  6. 懶惰時直接用滑鼠滾輪+左鍵XD

基本上這些在不同列間的移動已經相當夠用了,但不同行之間的移動速度還可以稍微加強,使用easymotion可快速跳至某個字所在的位置,也就是能夠直接跳去指定的列與行


安裝

init.vim中插入下面的代碼(以Vim-plug為例),並用:PlugInstall安裝

1
Plug 'easymotion/vim-easymotion'

基本配置

基本配置我只加了一條,即搜尋指定字元時不分大小寫

快捷鍵的部份我都維持default的設置

1
2
# easymotion
let g:EasyMotion_smartcase = 1

如何使用

完整指令可參考VSCode-Vim的文檔easymotion的文檔

我自己只記以下三種,視自己的需求可記其他指令(例如搜尋限定在word的開頭或結尾等等)

Motion Command
Description
` s `
Search character
` f `
Find character forwards
` F `
Find character backwards

假如我想跳至畫面中的某個字,我可以鎖定那個字的任何一個字母(假設鎖定l),首先輸入,,sl(我已把<leader>綁定到,,預設是\),此時按下你想跳去的位置所顯示的字母,即可快速跳到那個位置。

原本的畫面顯示如下:

輸入,,sl後的畫面:

可觀察到畫面中出現各種Target key,只要輸入欲跳去的位置顯示的字母,即可直接跳過去該位置。另外兩個指令,,,fl會顯示游標後面的所有l,而,,Fl會顯示游標前面的所有l,功能幾乎一樣,只是畫面可稍微簡潔一點。快捷鍵記熟之後游標會用跳躍的而不用再慢慢ㄌㄨ。


附註

  • VSCode中的Vim也具備此功能
CATALOG
  1. 1. 安裝
  2. 2. 基本配置
  3. 3. 如何使用
  4. 4. 附註