伯樂線上注:本文來自文章作者張佳偉(@ghosert)的投稿(原文連結)。
Ubuntu常用效率軟體簡介
之前的一系列部落格(①、②、③、④)裡,基本上我們夯實了使用Ubuntu系統所需的基礎知識,這一篇裡我們來談談在這個低調而強大的平臺上,如何使得操作者遵循系統的設計理念,通過恰當的選用軟體,從而達到人機合一的化境,將這個平臺的潛能發揮到極致,進而十倍,百倍的提升操作者的生產效率。我們就接著聊聊Ubuntu/Linux下的常用效率軟體,網路上常常有Linux使用者在學習,使用了這個平臺上的軟體以後發出這樣的感嘆:“幾乎每一個Linux軟體都可以寫成一本書”。這基本上就是Linux系軟體強大到令人敬畏的最好註腳。也因此在有限的篇幅裡不可能涵蓋那麼多軟體的方方面面,更何況筆者本人視野有限,故以下文字只做提綱挈領的引介,希望起到拋磚引玉,啟示讀者的作用。這一篇裡先對常用軟體做簡介,考慮到Linux作為一個開發者系統的角色,我們在下篇裡再介紹針對開發者需要的軟體。大體上我會按以下思路介紹每個軟體:
1. 軟體背景
2. 安裝配置
3. 入門與心得
編輯器之神:GVim
Vi/Vim是Linux系機器預設標配的編輯器軟體,基本上我認為你可以不需要Linux上的任何其它軟體,但是你不可以說:“我想學Linux,但是我不想學Vi/Vim”。Vi/Vim的學習曲線很高,但是你一定需要學會的理由是:
1. 文字系統
Linux系統是基於命令,文字配置的系統,更別說如果你還是一個開發者需要寫程式碼,不能熟練使用世人尊稱編輯器之神的殺手級應用,你在這個GUI不友好的世界裡其實寸步難行。
2. 無處不在
如果你使用Linux,意味著你不會安心的只使用自己的本地桌面,裝上Vi/Vim替代品假裝不需要學習Vi/Vim,你更有可能需要遠端登入到一個陌生環境去操作另一臺Linux,而那個機器上80%的可能只有預設標配的Vi/Vim,這種狀況下任誰都會感到很侷促,也有變通的方法:我看到很多Windows下的開發者使用ftp客戶端從遠端機器上去拖拽幾個G的日誌檔案到本地,然後再使用Windows上的編輯器花幾分鐘時間載入這個巨大的檔案,這還沒有結束,如果問題沒有解決,這個痛苦費力的過程會繼續一而再,再而三的重複下去。這個時候我常常想他們為什麼不把這些時間花在學習Vi/Vim上呢?
3. 高效編輯
作為編輯器,Vi/Vim發展至今,再配合精良的外掛機制,其功能的豐富和強悍已經超越了人類可以做到想到的極限。在最初,滑鼠出現以前,人類只能依靠鍵盤操作電腦,碼字,尤其是如何高效碼字是其中重要的一項操作,Vi/Vim就是被設計成高效使用鍵盤碼字的工具。所以它分了三種編輯模式,在細節上,規定所有擊鍵行為只發生在主鍵盤區:只是為了避免雙手哪怕多幾個釐米間的位移產生的效率損耗。還是為了向效率妥協,它設計了種種反人類的操作方式來實現各種編輯功能,為了追求編輯效率,它向人類施加操作成本和記憶負擔。在滑鼠出現以後,理應只為鍵盤服務的碼字軟體卻因為它的高效設計在程式設計師中間依然有很高的接受度。這種現象其實更應該讓我們反思今天所謂討好普通使用者的人機設計中到底存在哪些問題。
4. 一勞永逸
學習Vi/Vim並不是在學習Vi/Vim本身,而是在學習一套使用鍵盤操控計算機的規範(例如:hjkl表示左下上右),由於這套規範被很多人認可接受已經成為一種標準規範,所以這套標準規範被嫁接到其它許多的軟體上諸如:Vimperator, w3m, Eclipse, 甚至是GVim的死敵Emacs。可見作為一種約定成俗的標準,學習Vi/Vim的邊際效益十分可觀,你只要學會這種規範,就可以在許多地方——不止於編輯器本身,發揮學習成果的威力,我們在下面的文字中會看到許多這樣的案例,先講一個小例子,在終端中輸入:
1 |
$ set -o vi |
可以開啟以相容vi的快捷鍵操作bash命令,此時你可以在終端使用Esc切換到命令模式,在命令模式下,按 h,l 可以左右移動游標,按 j,k 可以切換前一條後一條命令。x可以修改字元,”$, ^”可以返回命令尾部或頭部,i 可以返回編輯模式。
軟體安裝配置
Vi/Vim 本身不需要安裝,但是如果你更樂衷於視覺效果更好,功能更豐富的GUI版本可以安裝GVim:
1 |
$ sudo apt-get install vim-gnome |
安裝完畢以後,在終端介面中隨時鍵入以下命令就可以開始編輯檔案:
1 2 |
$ vi filename $ gvim -f filename # Ubuntu 12.04 和 gvim 有衝突,需要加 -f 引數,否則啟動gvim後有假死現象。 |
配置檔案位於:
- ~/.vimrc 主要用於編輯器本身相關的設定,例如:字型,快捷鍵,外掛相關設定。
- ~/.vim 目錄用於存放設定前後背景色,語法高亮等主題檔案,第三方外掛檔案等。
外掛管理:
由於傳統的Vim外掛只需要在下載後拷貝進上述 ~/.vim 目錄,一來不方便管理:每個外掛都會有三四個子目錄散落在~/.vim這個主目錄裡,二來不方便更新外掛:如果外掛有更新,需要重複拷貝外掛至~/.vim目錄的步驟。為了解決這兩個問題,最近比較流行的外掛管理方法是首先安裝另一個名為 pathogen 的管理外掛的外掛,然後新建目錄
1 |
$ mkdir -p ~/.vim/bundle |
以後所有的外掛都可以通過 git clone 的方式(關於 git,有興趣的同學可以先參考這裡: github),拷貝到 ~/.vim/bundle 例如:安裝名為 vim-css-color 的外掛用於高亮css中的顏色程式碼,只需要:
1 2 |
$ cd ~/.vim/bundle $ git clone https://github.com/skammer/vim-css-color.git |
這樣外掛檔案會被集中管理在~/.vim/bundle/vim-css-color,同時只需要在外掛目錄中執行 git pull 就可以一鍵更新,vim-css-color 外掛效果圖如下。
入門與心得
Vi/Vim 縱使有諸多好處,阻礙人類使用它的最大障礙在於陡峭的學習曲線。我在網路上聽到過哀鴻遍野的聲音:“學不會快捷鍵,學了就忘,太難用了,放棄了”。因為沒有循序漸進的階梯,所以希望學會Vi/Vim的初學者需要集中一段時間的精力反覆操練,好像一道坎一樣,跨過去別有洞天,過不去就放棄了。再打個鯉魚躍龍門的比方,你需要卯足了氣力使勁跳,跳過去成龍,跳不過去放棄了就始終是條魚,這就是學習Vi/Vim的真實寫照。所以這個事情首先取決於練習者的決心,其次我們再來講一些學習技巧。
關於學習Vi/Vim的資源,在網路上不計其數,我看到過各種書籍,文章,部落格,有同學很認真的在閱讀,翻看,甚至記錄筆記,還有許多同學,把所有快捷鍵的圖片作為背景設定在桌面上,甚至彩打在紙張上,貼在自己的電腦邊。這裡面其實有一些問題:
- 隻言片語的文章部落格並不能系統的告訴你到底哪些Vim操作是最基本需要掌握的。
- 反過來,煞有其事的找來一本書看,你又迷失在“知識”的海洋裡。
- 因為知道學習Vi/Vim這個事情是有記憶成本的,而採用設背景,貼牆紙的方法試圖能時常提醒自己不要遺忘各種鍵法。
看上去邏輯很完備,但是對於一個強調操作和手感的工具,大多數同學的努力實際上找錯了方向:找手感需要鍛鍊的是肌肉記憶而不是腦力記憶。關鍵的問題不在於你看了多少關於 Vi/Vim 的文章,書,記了多少筆記,腦子是否記住了那些快捷鍵,關鍵的問題在於你對最基礎的操作有過多少次反覆的練習,通過這些大量的練習是否建立起了適用情景和鍵法之間的條件反射,我這裡稱其為肌肉記憶。你需要的是通過大量的基礎練習強化神經脊髓質的厚度,訓練自己建立情景<->鍵法的條件反射,把這種反射刻在肌肉記憶裡,一旦通過訓練形成這種反射,在某種程度上,就是比思考或者回憶更有效的應激反應,也就是說你可以省去思考或者回憶的過程,直接對某個場景做出編輯操作,例如:拷貝一段文字到另一端文字後面,刪除替換某個詞語,回到檔案頭部等等,你不用去想我該按哪些快捷鍵去做這些操作,你的雙手很自然的就會敲擊出正確的鍵法,省略了耗時的思考,回憶鍵法的過程,操作者的效率自然倍增。
Vi/Vim 的使用者往往會有這樣神奇的體驗:小白在你邊上看你編輯文字,螢幕上的游標彷彿可以跟隨人的眼睛和意念四處遊走,操作者沒有使用滑鼠,完全用鍵法掌控編輯過程,這個時候小白經不住打斷你,詢問你怎麼複製指定的段落,你往往不能馬上回答,你需要重新把雙手放回主鍵盤區,讓你的手自然擊鍵給出正確的答案,這就是我們之前說的條件反射替代了思考回憶,記住這個操作的是通過反覆訓練的肌肉而不是你的大腦,所以手可以迅速地給出答案,但是大腦沒辦法馬上回答,它需要回憶動作,分解操作步驟,最後確認無誤,再告訴你答案。通過刻苦的訓練建立條件反射從而提高效率,提升技能水平,這其實和世界上其它的技能修行例如:樂器演奏,書法,外語沒有任何區別。引申開去,如果你可以在日常生活中更多的運用這個技巧:建立更多的條件反射替代腦力決策,你就可以更高效,更輕鬆的完成任務。但是這其中又要有適應場景的辨別能力,經典條件反射其實連狗都可以做到,但是聽到鈴聲沒見到肉就開始流口水就上當受騙了。
壞訊息是你仍舊需要刻苦的訓練,好訊息是比起樂器,外語等其它技能,練習Vi/Vim建立條件反射的時間並不很長大約在七天左右,花費七天的時間,換取受益一輩子高效編輯的能力,這實在是一筆合算的交易。況且這裡面也沒有智力差異的成分,如果覺得自己做不到,想想經典條件反射的實驗物件其實是條狗,這個比喻雖然讓人不好受,但是真的會很激勵人,我自己當時在2006年的一個七天長假裡練習Vi/Vim的時候基本就沒把自己當人對待。練習的學習資料也唾手可得,很多同學滿世界找書,找教程,素不知最有用的教程GVim已經自帶了,安裝完GVim以後,直接鍵入:
1 |
$ vimtutor |
巧妙的地方在於,這份文字既是一個包含七個章節的學習指南,又是一份可以遍學遍練的習題冊,你只需要通讀這份文件並按要求操作即可,能夠熟練的操作這份文件以後,練習者就具備了使用Vi/Vim編輯文字的基本能力,可以比較從容的使用Vi/Vim應對80%左右的編輯任務。但是在建立反射的初期一定要保證投入足夠的時間和練習次數,否則功虧一簣,因此可以在第一遍通讀練習完這份教程以後,反覆練習這份教程七天左右。無論何時感到百無聊賴的時候,就調出這份教程從頭到尾練一遍,保持手熱的狀態。 有了這個基礎做保障以後,你應該嘗試沉浸式的學習方法,也就是說,在編輯文字的時候,拒絕除了Vi/Vim以外所有的工具。不要有任何理由接觸任何其它的編輯器,如果你是開發者,一定要使用某個IDE,那你也應該看看有沒有這個IDE對應的Vim外掛:對於主流IDE來說這都不是問題。隨後練習者就會步入正軌,漸入佳境:用的越多就越熟練,越熟練就會更高效,更高效就越離不開Vi/Vim,直至開始學習更多Vi/Vim的高階功能,或者引入更多外掛滿足更多的編輯需求。形成良性迴圈以後,一兩年裡就可以鍛鍊成高手,這個技能也會伴隨你終生,隨著時間的推移,你自己都忘記這是一項“很了不起的,很多人沒學會”的技能。
以下是裝上若干外掛以後的效果圖:
搜尋的藝術:find & grep
我們在前面的部落格裡反覆強調了搜尋的重要性,搜尋優於導航是提升操作效率的一個關鍵問題。這裡就介紹幾個Linux下的常用搜尋命令。回憶一下本機搜尋的需求大致可以分為兩大類:
●按檔名搜尋檔案
●按檔案內容中的關鍵字搜尋檔案
在開始解說如何滿足這些需求以前,我其實更想強調讀者將搜尋這個衝動根植在心裡,沒有這個衝動或者觀念你就不會產生想要搜尋的需求,大體上你也可以使用滑鼠去到處翻資料夾完成等價的工作,區別在於你是想帶著目的,付出一些記憶關鍵字的成本,用最快的速度找到想要的東西,還是漫無目的的瀏覽,心急火燎的到處亂竄。這裡再提一個搜尋的小技巧,可以讓你直觀的感受搜尋的強大:在終端介面裡有時不可避免的需要重複輸入一串很長的命令,這個可能是使用終端的使用者相對於GUI最大的抱怨,“反覆輸入這麼長的命令很煩人”,“我怎麼可能記得住那麼長的命令”,這個時候,你可以只記住這串命令中的某幾個關鍵字,然後在終端介面上按Ctrl-r進入搜尋模式,鍵入你剛才記住關鍵字譬如gvim:
1 |
(reverse-i-search)`gvim': gvim 2013-01-07-ubuntu-efficient-software.markdown |
這樣系統會自動提示你之前輸入過的和gvim相關的命令,如果不是你想要的,繼續按Ctrl-r提示下一條命令,直至找到你想要的命令,按回車即執行,如果最終都沒有找到按Ctrl-c退出搜尋模式即可。這個技巧雖然很小但是非常實用,解決了我自己剛入門時一個很大的困惑:)。
find: 檔名搜尋
find 命令可以按許多搜尋條件來進行搜尋檔案,最常用的就是按檔名搜尋:
1 2 3 4 |
$ find -name readme ./Dropbox/backup/eclipse/readme ./Dropbox/backup/windows/EnsoLauncher/readme ./TestProject/web-workspace/TestStruts/readme |
上述命令指在當前目錄下查詢檔名是readme的檔案,如果檔名過長你無法完全記住,可以選加萬用字元減小記憶負擔例如:
1 2 3 4 |
$ find -name read* ./Dropbox/backup/eclipse/readme ./Dropbox/backup/windows/EnsoLauncher/readme ./TestProject/web-workspace/TestStruts/readme |
更多用法參考 man:
1 |
$ man find |
grep: 檔案內容搜尋
grep 是很多有經驗的開發者最常用的一個命令,如果你不知道檔案在哪裡,但是你知道檔案中的幾個關鍵字,你就可以把它找出來:
1 2 |
$ grep 搜尋的藝術 * -r source/_posts/2013-01-07-ubuntu-efficient-software.markdown:## 搜尋的藝術:find & grep |
這個是我在本機搜尋這篇部落格當前小標題的結果, * 是指搜尋當前目錄的所有檔案, -r 是指遞迴當前目錄進行搜尋。更多用法參考 man:
1 |
$ man grep |
砍掉使用滑鼠最後的藉口:keynav
使用一個Linux系統雖然在80%的狀況下你可以沒有障礙地使用鍵盤完成所有操控,但是仍然可能會有一些只能使用滑鼠的狀況出現,例如:某個GUI軟體沒有提供相應的快捷鍵,或者即使提供了,你還不清楚。這個時候可以調出 keynav 這個軟體,砍掉使用滑鼠的最後一個藉口。keynav 被用來替代滑鼠點選螢幕上的任意一個畫素。它的設計思想是這樣的:運用鍵盤快捷鍵,它可以顯式的將整個螢幕分割成四個區域,然後輸入hjkl代表左下上右(很耳熟?)像兩分法那樣,把整個螢幕分割成左一半或者下一半或者上一半或者右一半,在當前的半個螢幕內重複輸入hjkl持續進行螢幕的兩分操作,這樣顯式高亮的區域會越來越小(多一次分割面積縮小一半),一直小這個區域的中心點和你想點選的目標區域重合,這個過程就是模擬滑鼠從當前位置移動到目標位置的過程,此時再次鍵入快捷鍵完成模擬滑鼠點選的動作即可,這樣理論上,在沒有更好選擇的情況下,你就可以使用鍵盤模擬滑鼠完成任意點選工作,進而避免雙手在主鍵盤區和滑鼠之間的來回切換,節省寶貴的操作時間。那麼這樣做效率如何?根據計算,在一塊解析度為 1920×1200 的螢幕上(適用螢幕尺寸在24英寸以上),點選螢幕上任意一個畫素的最壞情況是擊鍵21次做兩分法分割螢幕的動作,這個結果有點糟糕,但是實際上,不是每個人都有那麼大的螢幕(適合文字工作的顯示器大小是22英寸,可以得到最佳字點距,此時解析度大小為 1680×1050),再者,就算是滑鼠,也沒有認定需要精確到一個畫素的大小才可以點選,我們點選的物件往往是一個畫素區域,例如:一個工具欄,一個按鈕,一個文字框,這樣以點選按鈕為例:按鈕佔據60×25個畫素區域,在1920×1200的螢幕上最差需要擊鍵11次完成定位。這個只是最差情況,以筆者22英寸顯示器的使用經驗來說,4到5次擊鍵即可完成定位,效率不會比滑鼠更高,但是完成定位點選的耗時絕對不會比省下切換滑鼠的時間更多。至此,我們完成了使用 keynav 替代滑鼠的理論驗證和實踐證明,讀者不妨可以大膽拔掉滑鼠。
安裝配置與入門
Ubuntu 的官方源預設自帶這個軟體:
1 |
$ sudo apt-get install keynav |
配置檔案位於:~/.keynavrc 可自行修改快捷鍵。
另外你可以設法讓這個軟體隨機啟動:
1 |
$ vi ~/.xprofile |
加入一行:
1 |
keynav |
重新登入系統即可。
首次啟動後,按 “ctrl + ;” 啟用顯式高亮區,再按hjkl移動定位,最後按空格鍵模擬滑鼠點選。掌握這個軟體並不需要太長時間,可以參考 官網 和 demo 演示。
更多用法參考 man:
1 |
$ man keynav |
文字瀏覽器:w3m
在這個GUI橫行的世界,筆者推薦一個相容中文的文字瀏覽器:w3m,你需要一個文字瀏覽器的理由:
1. 速度和專注
無需載入圖片,載入速度更快,使使用者專注文字內容本身,適合比較純粹的文字閱讀,特別是文件查閱。
2. 執行在終端介面
它很酷,只需要 bash shell 終端就可以執行,也就是說你是在命令列裡上網,即使沒有GUI圖形系統,也不能阻礙你訪問 Web,在許多場合這很重要:
●無法進入圖形介面需要上網搜尋方案
●ssh遠端登入到某個主機的時候需要直接在那臺主機上下載檔案,或許那臺主機的網速比較給力也沒有牆,你也可以避免先在本地下載,再把檔案傳送到遠端機,所以你需要在遠端機的終端裡直接訪問 Web。
3. 全鍵盤操作
終端介面的另一大好處是無法使用滑鼠,這就迫使你使用鍵盤操控文字瀏覽器,提升瀏覽效率。而且如果你會使用 Vi/Vim,那麼操控 w3m 的體驗和 Vi/Vim 高度相似(使用hjkl移動游標,/keyword 查詢關鍵字等等)。
4. 格式渲染,中文支援完善
使用 w3m 的 web 渲染效果很美觀,用 w3m 訪問 gmail 的效果圖:
安裝配置與入門
安裝 w3m 非常簡單:
1 |
sudo apt-get install w3m |
如果想更改部分快捷鍵,例如:更改上下翻頁的快捷鍵和 Vi/Vim 的翻頁快捷鍵一致(Ctrl-d,Ctrl-u),可以新建檔案:
1 |
vi ~/.w3m/keymap |
輸入以下內容,重新繫結快捷鍵:
1 2 |
keymap C-d NEXT_PAGE keymap C-u PREV_PAGE |
安裝完畢以後,開啟終端輸入:
1 |
$ w3m http://www.example.com |
即可訪問,hjkl:移動游標,/keyward回車:搜尋關鍵字並定位游標到目標物件,如果目標是一個連結,直接回車即可跳轉。持續的按Tab鍵則可以自上而下的切換當前頁面上的連結,回車可以跳轉,按Tab+Shift則自下而上反向切換。最最基本的功能就是這些,如果想檢視更詳細的功能,開啟 w3m 後按 Shift+h 檢視快捷鍵。
螢幕管理器:tmux
作為一個以命令列終端為基礎的作業系統,有效率的Linux使用者會花費大約30%以上的時間在自己的終端介面上,一個功能強大,使用者友善的終端介面管理軟體會顯得很貼心。這裡筆者介紹一下 tmux 這個軟體。tmux 是一款用於管理終端介面的程式,主要功能有以下幾個:
1. 可分割,多Tab的終端視窗
在一個整塊的螢幕終端介面上切分出任意多個子視窗,例如:你可以在螢幕的左半個區域裡編輯文字,右半個區域裡檢視資料,提高螢幕空間的利用率,使用者可以在一屏的空間裡同時看到兩個終端的內容,節省切換終端的麻煩,這個功能在大螢幕時代相當實用。好像現代瀏覽器的Tab概念類似,tmux裡也可以方便的新建,切換,關閉不同的Tab代表不同的終端。有了可分割和多Tab的終端,這樣你就無需為了不同的目的開啟多個終端介面,尤其在登入到遠端主機的時候很有用:避免反覆開啟本地終端遠端連線主機或者不停將前臺程式切換到後臺執行為了騰出當前終端的控制權,你只需要一個遠端連線就可以隨意開啟任意多個終端,並且在這些終端裡快速切換。
2. 複製終端文字
傳統的終端介面,只能使用滑鼠複製介面上的文字,tmux 的一個附加福利是允許你用鍵盤進入編輯模式,複製貼上終端上的任何文字。例如你正在終端裡編輯一個文件,裡面需要一個很長的路徑,你可以劃分出一個新終端,執行獲取路徑的命令,然後把結果複製到原先終端的編輯器裡。期間的游標移動和搜尋命令仍然是Vi/Vim類似的hjkl/等。
3. 保留終端螢幕會話
使用ssh遠端登入到一個主機上使用終端的同學如果正在跑一個非常耗時的命令,這個時候除非你把它切換到後臺執行,否則當你登出主機的時候這個任務也會被自動停止,非常不方便,你可使用tmux的dettach功能將螢幕會話儲存起來,然後登出主機,下次重新登入到主機的時候使用tmux attach命令把上次儲存的會話恢復回來。又假設你在辦公室裡終端上的工作仍然沒有結束,但是下半時間到了,需要去趕班車,這個時候你還是可以dettach當前的螢幕狀態,等到家以後ssh遠端連線到公司電腦,tmux attach恢復離開公司時候的終端狀態,繼續當時的工作,就好像你又回到了辦公室的機器前一樣。
安裝配置與入門
執行安裝:
1 |
$ sudo apt-get install tmux |
配置檔案位於:~/.tmux.conf,可以編輯此檔案,將其中的 set -g prefix C-b 改作 set -g prefix C-aC-a代表了Ctrl+a,是一個字首鍵,所有的tmux快捷鍵都需要先按這個字首鍵才能工作,因為Ctrl+a比起預設的Ctrl+b更方便按鍵,所以有了這個微調。
啟動tmux,在終端裡執行:
1 |
$ tmux |
即可進入tmux介面,按下 C-a v 做垂直方向的分屏,C-a s 做水平方向的分屏,這個分屏動作可以一直持續。C-a h,j,k,l 移動游標至左下上右四個方向上的相鄰分屏,鍵入 exit 退出某個分屏,最後 C-a d 可以dettach整個tmux會話,如果需要恢復這個會話,只需要在終端鍵入:tmux attach
以下是一個分割出四個區域三個Tab的 tmux 效果圖,注意圖片左下角綠色狀態列的三個單詞代表了三個Tab,帶*號的Tab表示當前Tab,黑色高亮的那兩個單詞表示另外兩個非當前Tab的終端內容有變化,例如你在當前Tab內編輯文字,在另外的Tab裡如果有log輸出,那麼就會有黑色背景提醒你需要檢視變化。圖片右下角的狀態列上同樣很貼心的給出了當前系統時間和計算機的hostname:
火狐的瑞士軍刀:Vimperator
除了終端以外,另一個使用率超高的軟體非瀏覽器莫屬,在我們這個時代,很多人開機恐怕就是為了開啟瀏覽器,如果你會有50%的時間生活在瀏覽器裡,那就應該想想怎麼在瀏覽器裡提高自己的生活質量了:好在我們有Vimerator。Vimperator是一個由 Vim 獲取靈感的 FireFox 外掛,完全顛覆了使用瀏覽器的傳統觀念。它的設計目標就是像Vim那樣使用鍵盤操控瀏覽器,並且相容Vim操控的標準規範:你可以使用Vim的快捷方式。只是想象一下使用鍵盤無須滑鼠你就可以操控瀏覽器,這有多炫目!個人認為無論怎麼讚美這個外掛的偉大都不會過分,它存在的意義已經超過了火狐瀏覽器本身,許多使用者可能會對火狐瀏覽器本身頗有微詞,但是這個外掛的出現使得火狐本身的缺陷不再那麼重要,無論是chrome或者IE,在沒有同等分量的外掛出現以前,很難說服習慣Vimperator的使用者遷移到其它瀏覽器。
希望chrome的粉絲可以壓住自己的火氣,我們再講一些道理。
我在前面的博文裡提到過這樣一個觀點:我們不是在一個茹毛飲血的矇昧年代,幾十年前電腦低下的計算能力甚至都無法滿足紙帶輸入的速度,人有充裕的輸入頻寬,而計算機的接收頻寬則相當狹窄,無法提高效率的責任和瓶頸在機器那邊,人往往需要等待機器。今時今日則大不一樣,人和機器的地位逆轉,一代一代的晶片技術革新,使得機器有足夠的處理頻寬完成人類給定的任務,並不是機器太慢無法處理足夠多的任務,而是我們人類的思維速度,反應速度和操作速度無法餵飽機器強大的處理能力。如果覺得效率有問題,那麼責任在我們這邊,我們才是瓶頸。你應該讓自己更聰明,更快的思考,更準確的思考,更有效率的操作。提升自己的一個方法就是付出腦力成本,刻苦的訓練,建立適應場景的條件反射。也許火狐的渲染載入速度確實不如chrome,但是如果它的任何操作都無需導航或者滑鼠導向,那麼一個訓練有素的使用者,仍然可以從每一次點選,關閉,新建,搜尋,複製,跳轉這些最基礎的操作速度上受益,積累效率優勢,最後不但彌補了火狐本身的效能問題,還可以用十倍以上的工作效率完勝chrome。
想清楚這個道理,這個是我們進行選擇的前提。下面談談 Vimperator 的幾個特色功能:
1. Vim 相容
所以討論火狐快還是chrome快沒有意義,軟體對於渲染速度的差別微乎其微。關鍵在於哪個平臺可以提供讓人更快的工具。Vimperator就是火狐給出的答案–火狐再不好,好在它有強大的外掛系統,外掛生態圈和開發者的歷史積累。Vimperator最聰明的做法還是遵守相容了Vim對於鍵盤操作計算機的規範。降低了使用者的學習成本。你還是可以例如:使用 h,j,k,l來翻頁,/ 來搜尋。
2. 快速訪問常用網站
在當前網站的頁面上你只需要下shift+m,然後再按下某個字母數字鍵,比如:你在新浪首頁,按下shift+m後,再輸入s,這樣s就指帶了新浪的網站,下次你需要訪問新浪的時候,無需輸入網址,只需要按三個鍵:gns 瀏覽器隨即開啟新的Tab載入新浪頁面。
3. 革新的瀏覽器人機互動
Web 最重要的特徵就是可以跳轉的連結。Vimperator 充分考慮了瀏覽器的人機互動特徵,如果你沒有使用過類似的工具,你也許可以想象使用快捷鍵在瀏覽器裡翻頁,滾屏,前進,後退,但是你可能無法想象如何使用鍵盤點選網頁上的連結。看看 Vimperator 的做法,這是一個很討巧,很聰明的做法:
裝完這個外掛以後,按下 f 鍵,頁面上所有可以點選的物件包括:連結,圖片,文字,按鈕都被顯式高亮,並且標上數字記號。這個時候你只需要在鍵盤上按下相應的數字就代表了一次滑鼠點選。你也可以使用搜尋關鍵字的方法,定位到一個連結,然後直接回車跳轉。這遠比一次滑鼠導航要高效。
4. 整合的垂直搜尋
再來看看Vimperator的搜尋功能:強大到恐怖的搜尋。傳統搜尋引擎的需求實際上正在被更垂直的搜尋請求取代:如果我想買個手機,我可能會去淘寶的搜尋欄進行搜尋。如果我想了解某個專業問題的答案,我可能想去社群問答網站比如:知乎,quora 尋找專業意見。書評或者影評可能在豆瓣上會更靠譜。搜尋一個英文單詞的含義用法可能在dictionary.com 雲詞這類線上詞典上更好,它無需本地詞庫還可以反覆複習。科普知識我會用維基百科查詢。我們需要一個工具統一解決這麼多的垂直搜尋需求請求!Vimperator這樣給出答案:無論你在哪個當前頁面,按下 t 鍵進入命令模式:
:tabopen t galaxy note回車
瀏覽器隨即跳轉至淘寶的的galaxy note搜尋結果頁面,你無需敲擊淘寶網址,無需在搜尋框裡輸入,你只要記住命令中的 t 代表了淘寶。而且這種搜尋引擎可以無限擴充套件內建,你可以將任意需要垂直搜尋的網站加入,附上t這樣的關鍵字即可。(注:淘寶系我手工加入的搜尋引擎,預設情況下你未必可以實現淘寶搜尋)如果你仍然需要最常用 Google 搜尋,則更簡單一些:按下 t 鍵進入命令列模式:
:tabopen galaxy note回車
以上只是 Vimperator 眾多令人炫目的功能中的幾個,讀者可以依據幫助文件自行學習挖掘。使用火狐瀏覽器點選vimperator-addon安裝外掛,重啟瀏覽器後輸入:
:help回車
想成為一個更有效率的人?從閱讀使用指南開始:)
未完待續……