如何配置Vimperator
簡介
Vimperator是Firefox的一個擴展,讓人以Vim的方式,進行瀏覽器的各種操作。它是一個開源工具。
這個工具,和Vim類似,也屬於Life Changing級別的工具。絕不僅僅是看上去比較黑客,而是實實在在地大幅提高效率。
每一個鼠標操作,看上去比較簡單易懂,但實際上都是成百上千個Event的手動操作,如果能用快捷鍵替代,那麼對精力的節省,都是潛移默化的。
每一個常用操作,如果能少按一個按鍵,比如Ctrl,那對效率的提升,都是可以累計的。
能按鍵的,不動鼠標;能少按一個鍵的,就少按一個鍵。
閒話少敘,進入正題。
Vimperator的默認設置裏,常用操作包括:
按鍵 | 效果 |
---|---|
j | 向下滑動 |
k | 向上滑動 |
h | 網頁向左滾動 |
l | 網頁向右滾動 |
H | 網頁後退 |
L | 網頁前進 |
c-d | 向下翻半頁 |
c-u | 向上翻半頁 |
c-f | 向下翻一頁 |
c-b | 向上翻一頁 |
t | 在右邊打開新標籤頁(可直接輸入關鍵字搜索) |
o | 在當前頁面打開新標籤頁 |
d | 關閉當前標籤頁(並跳轉到右邊) |
D | 關閉當前標籤頁(並跳轉到左邊) |
gt | 移動到右TAB頁 |
gT | 移動到左TAB頁 |
f(進入hint模式),然後輸入對應數字 | 打開當前網頁上某鏈接 |
]] | 自動點擊next之類的按鈕,向後翻網頁 |
[[ | 自動點擊prev之類的按鈕,向前翻網頁 |
表中c-即Ctrl+(c-d即Ctrl+d)。這是一種通用的表達方式,也是Vim和Vimperator的表達方式。(後面會用到。)
更多信息,請在Vimperator中輸入
:help
雖然是英文,也就忍忍吧。
習慣英文,總比找中文資料的效率高。從某種意義上來說,英文也是一種Life Changing級別的工具。
不順之處
它在Vim的key binding的基礎上,做出了一定的修改,使其更適合瀏覽器,比如t、d、H和L。
但是,在某些地方仍然過度地模擬了Vim的,導致實際瀏覽時的不便。
j和k,在瀏覽網頁時,這樣一行一行地向下滾動,看久了眼暈,按久了手抽。
至於 c-d 和 c-f 這種向下翻頁的方式,對小指的摧殘,在Vim中也就罷了,因爲用得不多;在瀏覽器中,則令人完全不能忍!h和l,可以左右滾動、並且需要左右滾動的網頁,畢竟是少數。這倆幾乎無用。
gt和gT,即使在Vim中,它們也在大多數情況下不順手。它們的威力,更多地發揮在超多標籤頁的情況下。
但是大多數情況下,只是需要跳轉到左邊或右邊一個標籤頁。這時,gt和gT就變得格外地不順手了。
按鍵 | 效果 |
---|---|
ngt | 跳轉到第n個標籤頁 |
ngT | 向左跳轉n個標籤頁 |
- 此外,還有hint模式。默認爲數字,而且字體很小。數字畢竟在鍵盤第二行,和8指所在的第四行隔了一行。而且某些數字,如5、6等,按的時候需要看一眼、或者慢一點,否則容易按錯。
這些不順之處,其實並非作者的失誤。而是爲了保持和Vim的類似,與Vimperator最初的設計哲學保持一致。
衆口難調,自己的需求,只能自己來滿足。
自行定製
好在,Vimperator也擁有類似Vim的可定製自由度。在用戶主文件夾下,可以通過編輯.vimperatorrc的方式,來改變不順手的key binding。其語法,類似.vimrc。
改變的思路是:
- 把j和k改爲最常用的翻頁方式,翻半頁
- 把h和l改爲最常用的切換標籤頁方式
- 把hint模式的符號,改爲英文26字母,以便敲擊
- 把hint模式的字體改大
參考了網上的一些配置後,又新增了:
- 把下方命令模式的字體改大
- 給]]、[[翻頁指令,添加中文支持
有改動的配置如下:
按鍵 | 效果 |
---|---|
j | 向下翻半頁 |
k | 向上翻半頁 |
h | 跳轉到左邊那個標籤頁 |
l | 跳轉到右邊那個標籤頁 |
nh | 向左跳轉n個標籤頁 |
nl | 向右跳轉n個標籤頁 |
改變的方法
一個是編輯文件的方式,在以下文件中,
~/.vimperatorrc
添加以下代碼:
highlight Hint::after content: attr(number); font-size:13pt
highlight Normal color: black; background: white; font-size:14pt
noremap j <C-d>
noremap k <C-u>
noremap J 10j
noremap K 10k
noremap h <C-p>
noremap l <C-n>
set hintchars=abcdefghijklmnopqrstuvwxyz
set nextpattern=s*下一頁|下一張|next|下一篇|下一頁|後一頁|下頁|後頁s*,^bnextb,bnextb,bsuivantb,^>$,^(>>|??|?)$,^(>|?),(>|?)$,bmoreb
set previouspattern=s*上一頁|上一張|prev|上一篇|上一頁|上頁|前一頁|前頁s*,^bprev|previousb,bprev|previousb,^<$,^(<<|??|?)$,^(<|?),(<|?)$
還有一種就是,在使用Vimperator時,進行實時設置。
例如,輸入
:noremap l <c-n>
等自定義key binding。然後查看效果。如果滿意,則可以輸入
:mkvimperatorrc!
這樣,新的配置,就會自動寫入.vimperatorrc,並且覆蓋之前設置過的同一配置。
推薦用這種方式,這比複製一大段看不懂或者不樂意看的牛人.vimperatorrc,然後一輩子只會用其中一小部分,要好得多。
後記
暫時就是這樣,以後再更新。