作為 Emacs 的忠實粉絲, 還是喜歡默認 Emacs 的按鍵風格, 不喜歡 Vi 那種頻繁切換模式的玩法.
不過如果Emacs buffer是只讀模式時(比如 help mode, pdf view mode 等), 用單鍵進行導航還是比較方便的.
原來一直用 lazy-set-key.el 配合 key-alist 來實現類似的功能, 今天把這些配置文件重新整理成一個獨立的插件 vi-navigate 即可享受同樣的便利.
安裝方法
- 下載 vi-navigate 里面的 vi-navigate.el 放到 ~/elisp 目錄
- 把下面的配置加入到 ~/.emacs 中
(add-to-list 'load-path (expand-file-name "~/elisp"))
(require 'vi-navigate)
(vi-navigate-load-keys)
使用
vi-navigate-hook-list
這個變量的值是
'(eww-mode-hook
help-mode-hook
package-menu-mode-hook
top-mode-hook
benchmark-init/tabulated-mode-hook
benchmark-init/tree-mode-hook
emms-playlist-mode-hook
emms-browser-mode-hook
emms-stream-mode-hook
apt-utils-mode-hook
man-mode-hook
apropos-mode-hook
less-minor-mode-hook
info-mode-hook
doc-view-mode-hook
w3m-mode-hook
pdf-view-mode-hook
irfc-mode-hook
)
當Emacs打開上述模式的buffer時, vi-navigate 會自動加載, 并可立即使用下面單鍵進行操作:
按鍵 | 按鍵解釋 |
---|---|
j | 下一行 |
k | 上一行 |
h | 向后移動一個字符 |
l | 向前移動一個字符 |
J | 向上滾動一行 |
K | 向下滾動一行 |
H | 向后移動一個單詞 |
L | 向前移動一個單詞 |
e | 向下滾動一屏 |
SPC | 向上滾動一屏 |
y | 用 tooltip 顯示當前光標的翻譯 (需要安裝 sdcv 插件) |
Y | 用 buffer 顯示當前光標的翻譯 (需要安裝 sdcv 插件) |
i | 用 tooltip 顯示輸入的翻譯 (需要安裝 sdcv 插件) |
I | 用 buffer 顯示輸入的翻譯 (需要安裝 sdcv 插件) |
f | 顯示下一個 help 歷史 (只在 help mode 有效) |
b | 顯示上一個 help 歷史 (只在 help mode 有效) |
TAB | 跳轉到下一個幫助連接 (只在 help mode 有效) |