五指操控Firefox的「仿Vim」擴充套件: Vimperator/Pentadacty...

来源:百度文库 编辑:神马文学网 时间:2024/06/03 11:43:01
五指操控Firefox的「仿Vim」擴充套件: Vimperator/Pentadactyl
2010/11/18 |分類:Mozilla軟體,網路衝浪  | 點擊數: 35 / 2098
文章目錄:
瀏覽器畫面設定
頁面操作
鍵盤映射範例與說明
分頁操作
特定網址直接進入穿越模式
Pentadactyl小資訊
這幾天都在試用一個超級犀利變態的Firefox擴充套件:Vimperator,能讓我們以超強編輯器Vim的編輯模式來操控Firefox。Vim是流行於Unix/Linux作業系統裡、或程式設計師們偏好使用的一種文字編輯器,主要以鍵盤的操作與輸入來進行文件的檢視與修改,因為雙手都在鍵盤上而大幅減少了鍵盤與滑鼠切換的次數,熟練以後就能快速的操作。當我們在不方便使用滑鼠的狀態下(例如坐在沙發或捷運上時),使用Vimperator就非常便利;可惜我太晚知道這個擴充,否則也不用自己以AutoHotkey寫了小工具(詳見AutoHotkey:在FireFox裡用鍵盤瀏覽網頁一文)。
 
最原始版本的Vim名稱是Vi(應該是代表Visual),Vim是Vi的加強版(Vi IMproved),我猜測Vimperator是取Vi與imperator的合體:Vi大將軍(imperator //,是大將軍;羅馬皇帝的意思,翻譯請見dict.tw)。
另外由Wikipedia看到了在今年9月原有的Vimperator開發團隊另立門戶而釋出了Vimperator的分支:Pentadactyl(// 五指的,五趾的),代表意義是「A Vim-like five-fingered interface for Firefox and other xulrunner-based apps」,像Vim的Firefox五指介面,可能是說透過Pentadactyl能讓你的五根手指頭在Firefox裡「鍵」步如飛吧。稍稍比較了主幹與分支版本後,我決定使用更新得較頻繁的Pentadactyl來使用。
我由Pentadactyl下載了比較新的版本來試用(http://dactyl.googlecode.com/files/pentadactyl-20101118.xpi),並且安裝到我的Firefox 3.6裡,以下是簡要的介紹。請注意所有的按鍵與指令都是大小寫嚴格區分的,b和B是兩個不同的功能。
瀏覽器畫面設定
安裝後第一次進入Firefox可不要被嚇到,怎麼畫面都不一樣了?首先用設定指令把畫面樣式變更回來:
輸入冒號(:)與set,空一格後再輸入go與=,接著是mTBnrs,最後按下〔Enter〕,功能表、工具列與書籤列等就會出現了。 :set go=mTBnrs 或 :set guioptions=mTBnrs 冒號進入Pentadactyl的命令模式,在命令模式裡可以輸入多項命令,例如:set就是設定各式系統參數 go是GUIOptions的縮寫,是用來設定圖形介面的選項 GUIOptions能接受的參數有下面幾種: m是功能表 T是工具列 B是書籤列 n是分頁編號,使用n參數的話分頁圖示後面會多出分頁的編號(如下圖分頁上的紅框);如果是N則是在分頁圖示疊上編號 r是右側的垂直捲軸,l(小寫的L)是左側的捲軸,若用b則是顯示底部的水平捲軸 s是最底部的狀態列
瀏覽器底部左側的綠框的+-?代表的意義是: +表示目前分頁還有下個網頁 -表示是目前分頁歷史的第一頁 ?表示本網頁被加入到書籤(我的最愛所以用心形符號
瀏覽器底部右側的黃框的[1/5]2%代表的意義是: [1/5]表示目前分頁是5個分頁裡的第一個分頁 2%表示目前顯示位置是在整個頁面的2%位置
設定好的選項必須用:mkp!寫入系統設定檔,設定檔存放於C:\Users\使用者\_pentadactylrc(Windows 7)或C:\Documents and Settings\使用者\_pentadactylrc(Windows XP)

頁面操作
在Pentadactyl裡的常用頁面操作整理如下:
按鍵 說明 其他相同按鍵
空白 向下一頁 同〔PgDn〕
Ctrl+B 向上一頁 同〔PgUp〕
j 向下一列 同〔↓〕
k 向上一列 同〔↑〕
h 向左一行 同〔←〕
l
 
(小寫的L)
向右一行 同〔→〕
Ctrl+O 回目前分頁歷史的上一頁面 同〔Alt+←〕
Ctrl+I 回目前分頁歷史的下一頁面 同〔Alt+→〕
y 複製目前網址到剪貼簿
/ 搜尋,在 / 後輸入要搜尋的文字,再按〔Enter〕開始搜尋,找到第一個符合的文字後:
 
用n向下找第二個 按N則往上找下一個
gg 到網頁最開頭 同〔Ctrl+Home〕
G 到網頁最末端 同〔Ctrl+End〕
gi 將游標移到頁面的第一個輸入欄位裡
d 關閉目前分頁
r 重新整理 同〔F5〕
M英數字 英數字是指小寫的a到z、A到Z、0到9等62個單個符號。M再加一個符號就能把目前的網址存入QuickMarks,例如目前網頁是http://www.google.com,按Mg將之存入QuickMarks,之後就能用gog或gng來開啟
以上按鍵中的Ctrl+B、Ctrl+O是組合按鍵,而為了減少按鍵數,我們可以用:map指令把〔Ctrl+B〕映射為〔v〕(或任何與預設按鍵不重覆的按鍵),設置後按〔v〕就等同於〔Ctrl+B〕(用來表示),也就是往上一頁;要取消按鍵映射則用:unmap指令:
:map v " 以下取消v鍵的mapping:unmap v
另外一個常用的按鍵映射命令是:noremap-不循環映射,表示某個按鍵不會重覆映射,如下例把往下一列的 j 鍵改成10個 j,即往下10列,如果不使用:noremap則會重覆映射而進入無窮迴圈:
:noremap j 10j
Pentadactyl的組合按鍵表示方法如下,知道按鍵表示式後才方便做map:
按鍵表示法 對應按鍵
〔Ctrl+按鍵〕
〔Alt+按鍵〕
〔Shift+按鍵〕
〔Win+按鍵〕
為了能完全控制Firefox的鍵盤輸入,Pentadactyl針對網頁裡的各個區域都能分別做:map設定。Pentadactyl有下列幾個模式,用:<模式代碼>map就能針對特定的模式做按鍵設定,例如:imap就是設定插入模式的映射(簡體中文的模式圖示參考請按這裡):
模式代碼 代表區域 說明
c 命令行模式(Command-line) 最底部的命令列
i 插入模式(Insert) 游標移入瀏覽器裡的輸入欄位時即進入插入模式,例如網址、搜尋欄位,或網頁內的輸入欄位
v Visual模式 選取文字後即進入Visual模式
n 一般模式(Normal) 一般的瀏覽模式
t TEXTAREA模式(Normal) 針對TextArea區域的特別模式
上面介紹過的:noremap其實就是:nnoremap與:vnoremap的組合,適用於一般模式(n)與Visual模式(v)。
鍵盤映射範例與說明
接著我們來做幾個鍵盤映射,修改操作以適應以前的操作習慣或減少按鍵次數:
按鍵 功能
Ctrl+F 原本Ctrl+F是向下捲動,用下列指令修改成Firefox預設的搜尋: 用將按鍵直接交給Firefox來處理(這稱為Pass Through,就是按鍵直接穿越給Firefox處理)。以下指令中,跟在〔Ctrl+V〕後面的按鍵不會被Pentadactyl處理而是直接給Firefox執行,因此會在底部出現Firefox的搜尋對話窗:
 
:noremap
Ctrl+C 剪貼簿操作按鍵〔Ctrl+C〕、〔Ctrl+V〕等在Pentadactyl裡都有不同的用法,我們可以用以下映射來變更成慣用按鍵:
 
:noremap noremap :cnoremap :inoremap
Ctrl+C的處理我測試仍有些問題,必須按兩次才能正確複製,還在尋找解決方法
Ctrl+V 把〔Ctrl+V〕改成剪貼簿的貼上:
 
:noremap noremap :cnoremap :inoremap
Ctrl+A 把〔Ctrl+A〕改成全選:
 
:noremap noremap :cnoremap :inoremap
Ctrl+X 把〔Ctrl+X〕改成剪下:
 
:noremap noremap :cnoremap :inoremap
Ctrl+O 把返回歷史頁面的上一頁面由組合按鍵〔Ctrl+O〕改成逗點(,):
 
:noremap noremap ,
Ctrl+I 把返回歷史頁面的下一頁面由組合按鍵〔Ctrl+I〕改成點(.):
 
:noremap noremap .
分頁操作
用鍵盤來開網頁比起滑鼠似乎有種說不出的快感,例如前面用M指令做好的QuickMarks,就能很快速的開啟:
指令 說明
go英數字 將設定好的QuickMarks對應的網址開啟在目前分頁
gn英數字 和上列用途相同,但開啟在新分頁
gt 切換到下一個分頁,要輸入兩個字母,我們可以〔Ctrl+N〕或者用:noremap c gt改用字母 c
gT 切換到上一個分頁,可以〔Ctrl+P〕或者用:noremap x gT改用字母 x
b 等於:buffer!指令,輸入分頁編號與〔Enter〕直接切換到指定分頁,也可以按〔Ctrl+號碼〕切換。其中〔Ctrl+6〕特別被設定成在前一分頁和目前分頁間來回切換的按鍵
用M指令是記錄目前分頁的網址,透過:qmark指令則可以直接指定網址,設定後同樣能用go與gn來開啟:
:qmark 英數字 網址" 例如::qmark j htp://jdev.tw/blog:qmark p http://www.plurk.com
要列出所有已經設定的QuickMarks只要使用:qmarks就可以了。輸入:qmarks時你可以發現Pentadactyl有自動完成的功能,輸入部份文字後在命令區上方會顯示符合的命令,按下〔Tab〕就會找出最符合的指令,因此用〔Tab〕的自動完成功能可以節省很多輸入的時間。
▼按〔Tab〕可以做自動完成

開啟網頁的方法有很多種:
按鍵 指令 說明
o : open 網址 將網址開啟在目前分頁
t :tabopen 網址 將網址開啟在新分頁
w :winopen 網址 將網址開啟在新視窗
f 頁面上的連結會被標上號碼,再輸入號碼就會把網址開啟在目前分頁
F 頁面上的連結會被標上號碼,再輸入號碼就會把網址開啟在新分頁
▼用輸入號碼的方法開啟連結

特定網址直接進入穿越模式
Google Reader與Gmail網站都提供了熱鍵,為了能繼續使用網站原有的按鍵,我們必須暫停Pentadactyl的處理,讓按鍵直接進入穿越模式,用Pentadactyl的AutoCommand觸發指令就能順利達成了:
:autocmd LocationChange (www|mail)\.google\.com/(reader|mail) -js modes.set(modes.PASS_THROUGH)Pentadactyl小資訊
有了上面的簡單介紹應該就能順利的操作Pentadactyl了,更詳細的內容可以用:help指令來查詢。由Pentadactyl網站上看,也將推出Thunderbird電郵軟體的Vim介面,希望能盡快推出。
Pentadactyl官方網站:http://dactyl.sourceforge.net/pentadactyl/index Pentadactyl開發版下載:http://dactyl.sourceforge.net/nightlies Pentadactyl論壇:http://groups.google.com/group/pentadactyl?pli=1 Vimperator官方網站:http://vimperator.org/vimperator 簡體中文資源:Vimperator中文百科豆瓣網 Vimperator小組