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