對於常用 Vim 的人來說,Easy Motion 絕對是一個好用的插件,它可以讓你在使用 Vim 時更快速且方便的將遊標移動到螢幕上任何想要的位置。不過,對於 Easy Motion 不少人也有一些意見,例如太久沒人維護(筆者寫本文當下最後一筆 commit 是 2022 年,且只是修改文件)、實現方式老舊、慢…
為了有一個更現代、快速的類-Easy Motion 體驗,我開始轉而使用 Flash。目前已經用了半年,我認為 Flash 可以完全取代 Easy Motion,而且可以做得更好。
安裝
Flash 使用 Lua 寫成,需要有 LuaJIT 的環境(例如 Neovim)。
如果你是使用 Lazy Nvim 的話,可以在 init.lua
內加入:
如果你是用 AstroNvim 的話,可以在 plugins
資料夾下新增 flash.lua
,並加入內容:
操作
我最常使用的操作有 2 種。第一種是 s
+ 搜尋文字,這個操作就很類似 Easy Motion 的 <leader><leader>
,不過 Flash s
後面的搜尋文字不限數量,如果你要跳轉的目標字串開頭重複性很高的話,你可以打 2~3 個字符來匹配,被匹配的文字會高亮顯示,這時你只要再鍵入各個匹配項後的 label 就可以跳轉,而且 Flash 的跳轉可以跨分隔畫面(可以設定)。
第二個常用的是 f
和 F
。f
只會搜尋並配對目前遊標以下的範圍,而 F
則只會搜尋以上的範圍。後面一樣鍵入要匹配的字符,成功匹配的文字會高亮,你可以透過重複按 f
來移動到下一個匹配項,或使用 ;
或 .
來移動到下/上一個匹配項目。匹配範圍超過螢幕顯示,即會捲動螢幕繼續搜尋。
延伸
Flash 還有其它功能和設定我就不一一細講了。
還有一個 vim-sneak 也是可以達成類似 Easy Motion 的操作,不過它好像只能限定向下或上搜尋,沒辦法全螢幕搜尋(Flash 的 s
),所以我試用一下後就改成用 Flash 了。
附帶一提,如果有人想看我的完整 Neovim 配置,可以參考 ziteh/vim-config,透過 branch 切換。
留言可能不會立即顯示。若過了幾天仍未出現,請 Email 聯繫:)