Vimperator是什麼?從虛來說,它是一種信仰,一種生活方式;從實來說,它是一個把Firefox(fx)的操作變成Vim式的fx擴展,它給fx提供了與Vim相似的快捷鍵,使fx變成了有“模”的瀏覽器。從而無論是 fx 的外觀,還是 fx 的行爲,都像極了 Vim。詳情可以查看它的官方網頁:http://vimperator.mozdev.org。可以說,有了Vimperator,就有了幾乎完控fx的一切。當然,要耍酷,得付出點代價,得記住各種命令和快捷鍵,若你是vim的熟手,那就太容易不過了;若不是,估計你安裝完vimperator,重啓fx後就會傻眼:面對既沒有菜單欄,也沒有工具欄的 Firefox,可能會感到無所適從。開啓方法是輸入:set guioptions=mT。m表示menu(菜單),T表示Toolbar(工具欄)。如果需要顯示狀態欄的話,就輸入:set laststatus=2。即使這樣,你也會發覺以前熟悉的fx快捷鍵幾乎都沒啦,咋辦:按下Ctrl-q,你就會發現fx默認的快捷鍵又可以用了。要重新回到vimperator下,只需要按下Esc鍵;也可以先按Ctrl-v,這樣執行一個fx默認快捷鍵後,又自動回到vimperator下。這裏以vimperator1.1版來詳細介紹下它的用法!先約定下表達方式:
¨ Ctrl-x的另一種表示<C-x>;Alt-x 表示爲 <A-x>;Shift-x 表示爲 <S-x>
¨ 很多操作既可以在normal mode下運行,又可以在command mode下運行,這裏用“/”來表示,如:u對應的是:undo,就表示爲 u/:undo
¨ 有些操作有相反兩個方向,這裏用<-->表示,如:左右移動滾軸 h <--> l
¨ 命令前後的數字,都可以換成任何數字
1. 打開鏈接,文件,或使用搜索引擎
:o[pen]/o /*在當前標籤頁打開*/ |/ /frome/to/file.txt /*打開本地文件*/
:t[abopen]/t /*在新標籤頁裏打開*/ | |==> [engine] keyword /*在引擎裏搜索關鍵詞*/
:winopen /*新開窗口實例打開*/ |/ bbs.newsmth.net /*打開一個網頁*/
例子:
:o ../user/file.txt /*打開$HOME目錄下的file.txt文件*/
:t google 水木 /*在新的標籤頁打開谷歌並搜索“水木”*/
:o 水木社區 /*在fx默認搜索引擎裏搜索“水木社區”,由’defsearch’來設定默認引擎 */
:t bbs.newsmth.net, bbs.lqqm.net, news.sina.com.cn /*用3個新標籤後臺打開這三個網頁*/
2. 關掉或重新打開標籤頁
:2bd/:2tabc/2d /* 關掉當前標籤及右邊緊鄰的標籤;2D是關掉當前及左邊的標籤 */
:3u[ndo]/3u /* 重新打開最近關掉的3個標籤;恢復全部被關掉的標籤用 :undoall,最多恢復10個*/
:qall/:winclose/ZQ /* 退出fx,不保存各tab地址 */
:xall/ZZ /* 保存tab地址退出,重啓fx後可以重新打開這些標籤 */
注:文中的tab、標籤、buffer、緩衝區指的都是同一個東西
3. 移動
卷屏: <C-f> <--> <C-b> /* 上下捲動一屏 */
<C-d> <--> <C-u> /* 上下捲動半屏;可由’scroll’來定製 */
gg <--> G /* 到頁面頂部/尾部;45gg/45G 指到頁面45%處*/
0 <--> $ /* 到頁面最左端/最右端 */
h,j,k,l /* 上下左右移動頁面 */
gg
3k
|
0, 3h ----+----- 3l, $
|
3j
G
Element:2gi /* 光標定位到當前frame的第二個輸入框 */
]f/[f /* 前進後退一個frame */
]]/[[ /* 瀏覽一些論壇時的“下一頁/上一頁”,可由’nextpattern’定製 */
標籤欄: g0/:tabfirst <--> g$/:tablast /* 到第一個或最後一個標籤 */
gT/<C-p>/:tabp <--> gt/<C-n>/:tabn /* 到前一個或後一個標籤 */
b5<CR> /* 到第五個標籤,<CR>指回車,這個結合我的
“給tab編個號”一文,那簡直是絕配 */
<C-o>/:ba <--> <C-i>/:fo /* 當前標籤頁的前後一個歷史標籤 */
<C-6> /* 可在標籤欄上來回切換最近瀏覽過的兩個標籤 */
i /* caret mode,fx默認快捷鍵是F7;此時按下v,就可以選擇文本,然後按下y,就把選擇的文本拷貝到系統粘貼板上了 */
4. 搜索當前頁面
/pattern<CR> <--> ?pattern<CR> /* 往下/上搜索pattern,支持正則 */
* <--> # /* 往下/上搜索當前光標處的詞,最好進入caret mode,好操作 */
注:上面兩種情形都可以用 n/N來下/上尋找下一個匹配
5. 鏈接地址:URL
gu /* 到URL的上一層目錄 */
gU /* 到URL的根目錄 */
<C-a>/<C-x> /* 把URL最後一個數字增加/減少1,然後打開 */
例如:
2gu 是指從http://www.example.com/dir1/dir2/file.htm到 http://www.example.com/dir1/
<C-a>是指從 http://www.example.com/2008.htm 到 http://www.example.com/2009.htm
y/p /* 把當前URL拷貝到粘貼板或把粘貼板上的URL在當然頁打開 */
P /* 大寫的P是在新標籤頁打開粘貼板裏的URL */
6. 頁面
g<C-g>/:pageinfo /* 查看當前頁面信息 */
gf/:viewsource /* 查看當前頁源代碼 */
zi <--> zo /* 放大/縮小當前頁,zoom in/out */
r/:reload <--> <C-c>/:stop /* 重新載入當前頁或停止載入當前頁 */
7. 調用fx的各種屬性
:pref /* 調出fx的option對話框 */
:pref! /* 調出fx的about:config */
:addon /* 調出fx的擴展對話框 */
addons /* 調出fx的擴展對話框 */
:dialog checkupdates /* 調出升級對話框 */
console /* 調出控制檯 */
downloads /* 調出歷史下載列表 */
8. 怎麼打開鏈接?
在一個頁面按f鍵,進入QuickHint mode(作者給取了這個名字),就會發現所有的鏈接都被數字編號了,此時只要你輸入那個數字或者鏈接中部分關鍵詞,就可以在當前頁進入那個鏈接了(F是在新標籤裏打開)。Vimperator1.0之前的版本是用一個或者幾個字母來編號的,如果你喜歡這樣子的編號,可以下載個vimperator的插件:char-hints.js。
除此之外,作者還給出了另外一種“模”: ExtendedHint mode,它在一些情況下,如保存圖片,拷貝鏈接地址等方面很有用,形式是: ;{mode}{hint}
例如:
;y23 /* 拷貝編號爲23的鏈接地址到粘貼板 */
;t35 /* 後臺在新標籤中打開編號爲35的鏈接 */
9. ex命令、選項、配置文件及插件
A) ex命令,也就是按下冒號後輸入的命令,下面介紹幾個最常用的
:cd /* 切換當前目錄 */
:pwd /* 顯示當前目錄 */
:restart /* 重啓fx */
:saveas /* 保存頁面 */
:hardcopy /* 打印當前頁面 */
:set /* 設置選項 */
:mkv /* 建立配置文件 */
:!cmd /* 可以執行系統命令 */
B) 選項設置
l 有5種數據類型:
布爾型 例如: set ic /* 忽略大小寫;反之則set noic */
數字型 例如: set ls=2, /* 總是顯示狀態欄 */
字符串型 例如: set titlestring=fx /* 把標題欄名字改爲“fx” */
單字符串型 例如: set go=mT /* 顯示菜單欄和工具欄 */
串列表型 例如: set act=tabopen / paste* 自動激活:tabopen和y,Y命令 */
l set命令的幾種用法
:set /* 顯示所有和默認不同的設置 */
:set all /* 顯示所有設置 */
:set {option}? /* 顯示option的值 */
:set {option}& /* 重新設定option的值爲默認的 */
:set all& /* 重新設定所有option的值爲默認的 */
:set {option}+={value} /* 把option的值在原來基礎上加value */
:set {option}-= {value} /* 把option的值在原來基礎上減value */
注:在配置文件裏set命令前的冒號可以省略
C) 配置文件和插件
Vimperator可以有配置文件,文件名是.vimperatorrc或者_vimperatorrc,該文件所在的目錄是系統變量$HOME所定義的位置
在unix/linux下一般爲: ~/
在Windows下一般爲: C:/Documents and Settings/user/
並且還可以設置一個用戶變量或者系統變量$VIMPERATOR_HOME來改變vimperatorrc所在目錄的位置,並且$VIMPERATOR_HOME優先度大於$HOME
(強烈建議作者把vimperator擴展所在的相對目錄也可存放配置文件,這樣把fx放在U盤裏,就不用麻煩還要拷貝配置文件到另外一臺機子上的$HOME目錄)
Vimperatorrc裏可以是ex命令,也可以是js腳本。你既可以新建這個文件,也可以在fx裏用命令 :mkv來自動建立這個文件。並且vimperator還可以擁有插件,全放在vimperator目錄下,插件都是些js腳本。而“vimperator目錄”與配置文件所在目錄一樣。例如如果你需要hint mode下的鏈接編號爲字母的話,就需要在http://vimperator.mozdev.org/scripts.html 下載插件char-hints.js 放入vimperator目錄中,然後重啓fx,或者用:source命令使之生效。目前絕大多數網上的插件都是日本人寫的。
Vimperator擴展還在快速發展中,作者開發也非常積極。這裏只介紹了vimperator一些主要用法,如autocommand命令,宏等都沒有涉及,主要覺得離瀏覽器遠了些;另外書籤也“忘”了說,個人覺得其添加/編輯書籤的方式實在太笨拙了,還是用fx默認的方法方便。另外,使用中若遇到迷惑的地方,一定要勤看幫助,用F1或者:h調出,至於如何使用幫助以及如何在幫助裏調出那些關鍵詞,可以看本人在水木社區vim版置地文章:“細說如何使用幫助”,雖然是vim的,但完全通用(http://vim.board.newsmth.net/)
注意:本文適合對vim至少有一點點了解,並且對用鍵盤操縱fx感興趣的人士閱讀
附錄我的簡單vimperatorrc文件:
"------------------------------------------file begin-----------------------------------------------------
"About:.vimperatorrc for Vimperator 1.1
"Author:runsnake
"Date:June 12, 2008
set wildmode=list:longest
set visualbell
set laststatus=0
set history=1000
set titlestring=
set showmode
set nextpattern+=^下一頁$
set previouspattern+=^上一頁$
map <BS> gu
map <C-Up> :set go=mT<CR>
map <C-Down> :set go=<CR>
map <A-Up> :set ls=2<CR>
map <A-Down> :set ls=0<CR>
map ,s :so _vimperatorrc<CR>
" vim:set sw=2 ts=2 sts=0 syntax=vimperator:
"------------------------------------------file end-----------------------------------------------------