Neovim 外掛 hardtime.nvim 因其改善 Vim 導航技能的獨特方法而在開發者社群引起關注。該外掛旨在透過限制重複按鍵並建議更高效的導航命令來糾正使用者的不良習慣,但社群反應揭示了關於什麼構成最佳文字編輯工作流的哲學分歧。
透過限制來糾正不良習慣
hardtime.nvim 透過在短時間內阻止重複按鍵來工作,本質上迫使使用者放棄低效的導航模式,如重複按 h、j、k 或 l 鍵來移動。相反,該外掛鼓勵使用更高階的 Vim 動作,如相對跳轉(例如,5j
向下移動五行)、單詞移動(w
、b
、e
)和水平移動命令如 f
、t
和 $
。當外掛檢測到次優的導航模式時,還會提供有用的提示,創造一個逐步提高使用者 Vim 熟練度的學習環境。
一位使用者分享了他們使用外掛報告功能的經驗:
「儘管我使用 vim 和 neovim 已超過20年,但在導航方面我顯然仍然像個原始人。我既喜歡又討厭這個外掛指出我的問題。Hardtime Report 是一個很棒的功能,真正展示了我的不良習慣有多麼普遍。」
hardtime.nvim 的主要特點
- 在短時間內阻止重複按鍵
- 提供更快速 Vim 移動的提示
- 報告最常見的不良習慣
- 可自定義的限制和提示
- 需要 Neovim >= v0.10.0
- 可以停用滑鼠支援
- 可配置的通知系統
- 可選的在一段時間不活動後強制退出插入模式
推薦的 Vim 導航技巧
- 使用相對跳轉(例如
5j
)在螢幕內垂直移動 - 使用
CTRL-U
、CTRL-D
、CTRL-B
、CTRL-F
、gg
、G
在螢幕外垂直移動 - 使用單詞移動(
w
、W
、b
、B
等)進行短距離水平移動 - 使用
f
、t
、F
、T
、;
、,
、0
、^
、$
進行中長距離水平移動 - 儘可能使用運算子 + 移動/文字物件(例如
ci(
、y5j
、dap
) - 使用
%
和括號命令在括號之間跳轉
關於導航效率的哲學分歧
評論揭示了 Vim 社群對什麼構成高效導航的有趣分歧。雖然該外掛提倡相對跳轉和專門的動作,但一些有經驗的 Vim 使用者質疑這種方法。一位有超過10年 Vim 經驗的使用者認為,重複按方向鍵並不一定低效,特別是在正確配置了按鍵重複延遲的情況下。他們認為計算相對跳轉(如 15j
)實際上可能比簡單地點選幾次鍵更容易打斷他們的思路流。
其他人也呼應了這一觀點,他們指出計算相對跳轉需要精神努力,可能會使他們脫離編輯狀態。一些使用者指出了替代導航解決方案,如 easymotion 外掛,它允許透過輸入字元序列直接跳轉到可見位置,表明高效文字導航沒有一刀切的方法。
自定義和可訪問性
社群討論強調了文字編輯器中自定義的重要性。一些使用者提到他們更喜歡在插入模式下使用 Home/End 等鍵,因為這些鍵與不同應用程式中的其他文字輸入介面協調一致。外掛開發者澄清說 hardtime.nvim 確實允許這種自定義,並指出一些發行版配置可能會覆蓋這些預設設定。
儘管可能會遇到挫折,但一些使用者表示對嘗試該外掛感到興奮,甚至有一位使用者表示這可能是他們最終從 Vim 轉向 Neovim 的推動力。其他人提出了有趣的替代方法,例如人為增加終端延遲以阻止重複按鍵,而不依賴特定的外掛功能。
超越 Neovim
討論還引發了對將類似功能引入其他編輯器的興趣。一位使用者想知道這個概念是否可以推廣為一個可以在不同編輯平臺上工作的最佳化引擎,特別提到了 Helix 編輯器。另一位使用者推廣了他們相關的專案 vimgolf.ai,該專案似乎將 Vim 技能提升遊戲化,儘管幾個回覆表明使用者在註冊前想要更多資訊。
圍繞 hardtime.nvim 的對話表明開發者們非常關心他們的文字編輯工作流程。雖然一些人接受強制紀律和最佳模式的工具,但其他人則更喜歡自由發展自己的導航風格。顯而易見的是,追求編輯效率仍然是開發者社群中一個充滿激情的話題,像 hardtime.nvim 這樣的工具既是實用工具,也是關於我們如何與文字互動的對話起點。