1. 程式人生 > >Ubuntu桌面生存指南 --- Ubuntu常用效率軟體簡介

Ubuntu桌面生存指南 --- Ubuntu常用效率軟體簡介

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後有假死現象。

配置檔案位於:

  1. ~/.vimrc 主要用於編輯器本身相關的設定,例如:字型,快捷鍵,外掛相關設定。
  2. ~/.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 外掛效果圖如下。

vim css color

入門與心得

Vi/Vim 縱使有諸多好處,阻礙人類使用它的最大障礙在於陡峭的學習曲線。我在網路上聽到過哀鴻遍野的聲音:“學不會快捷鍵,學了就忘,太難用了,放棄了”。因為沒有循序漸進的階梯,所以希望學會Vi/Vim的初學者需要集中一段時間的精力反覆操練,好像一道坎一樣,跨過去別有洞天,過不去就放棄了。再打個鯉魚躍龍門的比方,你需要卯足了氣力使勁跳,跳過去成龍,跳不過去放棄了就始終是條魚,這就是學習Vi/Vim的真實寫照。所以這個事情首先取決於練習者的決心,其次我們再來講一些學習技巧。

關於學習Vi/Vim的資源,在網路上不計其數,我看到過各種書籍,文章,部落格,有同學很認真的在閱讀,翻看,甚至記錄筆記,還有許多同學,把所有快捷鍵的圖片作為背景設定在桌面上,甚至彩打在紙張上,貼在自己的電腦邊。這裡面其實有一些問題:

  1. 隻言片語的文章部落格並不能系統的告訴你到底哪些Vim操作是最基本需要掌握的。
  2. 反過來,煞有其事的找來一本書看,你又迷失在“知識”的海洋裡。
  3. 因為知道學習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的高階功能,或者引入更多外掛滿足更多的編輯需求。形成良性迴圈以後,一兩年裡就可以鍛鍊成高手,這個技能也會伴隨你終生,隨著時間的推移,你自己都忘記這是一項“很了不起的,很多人沒學會”的技能。

以下是裝上若干外掛以後的效果圖:

gvim-editor

搜尋的藝術: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持續進行螢幕的兩分操作,這樣顯式高亮的區域會越來越小(多一次分割面積縮小一半),一直小這個區域的中心點和你想點選的目標區域重合,這個過程就是模擬滑鼠從當前位置移動到目標位置的過程,此時再次鍵入快捷鍵完成模擬滑鼠點選的動作即可,這樣理論上,在沒有更好選擇的情況下,你就可以使用鍵盤模擬滑鼠完成任意點選工作,進而避免雙手在主鍵盤區和滑鼠之間的來回切換,節省寶貴的操作時間。那麼這樣做效率如何?根據計算,在一塊解析度為 1920x1200 的螢幕上(適用螢幕尺寸在24英寸以上),點選螢幕上任意一個畫素的最壞情況是擊鍵21次做兩分法分割螢幕的動作,這個結果有點糟糕,但是實際上,不是每個人都有那麼大的螢幕(適合文字工作的顯示器大小是22英寸,可以得到最佳字點距,此時解析度大小為 1680x1050),再者,就算是滑鼠,也沒有認定需要精確到一個畫素的大小才可以點選,我們點選的物件往往是一個畫素區域,例如:一個工具欄,一個按鈕,一個文字框,這樣以點選按鈕為例:按鈕佔據60x25個畫素區域,在1920x1200的螢幕上最差需要擊鍵11次完成定位。這個只是最差情況,以筆者22英寸顯示器的使用經驗來說,4到5次擊鍵即可完成定位,效率不會比滑鼠更高,但是完成定位點選的耗時絕對不會比省下切換滑鼠的時間更多。至此,我們完成了使用 keynav 替代滑鼠的理論驗證和實踐證明,讀者不妨可以大膽拔掉滑鼠。

相關推薦

Ubuntu桌面生存指南 --- Ubuntu常用效率軟體簡介

Ubuntu常用效率軟體簡介 之前的一系列部落格裡,基本上我們夯實了使用Ubuntu系統所需的基礎知識,這一篇裡我們來談談在這個低調而強大的平臺上,如何使得操作者遵循系統的設計理念,通過恰當的選用軟體,從而達到人機合一的化境,將這個平臺的潛能發揮到極致,進而十倍,百倍的提升操作者的生產效率。我們就接著聊

Ubuntu------不得不知的【Ubuntu桌面入門指南

剛發現一個好東西,探索一番後,發現不僅可以學習Linux的基礎命令: 常用命令 檢視目錄: ls ls (List) 用不同顏色、經過排列的文字列出目錄下的檔案。 建立目錄: mk

ubuntu 桌面環境出現異常常用的解決方法

Compiz 是一套自由的桌面特效(desktop effects)軟體,能夠替基於 Linux 的桌面環境加上視覺效果,類似於 Windows Vista 的 Aero 與 Mac OS X 的 Quartz。 Ubuntu桌面環境下,遇到的大部分情況可能就

Ubuntu桌面入門指南

Ubuntu 桌面指南 Ubuntu 桌面指南簡介 歡迎閱讀 Ubuntu 桌面指南,這是一份 Ubuntu 桌面環境使用的詳盡指南。 本指南包含以下章節: 新手上路 - 對 Ubuntu 世界的介紹以及一些有助於您開始使用 Ubuntu 的基本概念。新增、刪除和更新應用程式 - 在 U

ubuntu 16.04 刪除不常用軟體

新建指令碼檔案,編輯加入以下內容: #! /bin/bash sudo apt-get purge -y libreoffice-common sudo apt-get purge -y unity-webapps-common sudo apt-get purge -y thunder

Ubuntu 16.04 LTS 刪除不常用軟體

軟體包清單libreoffice-common libreoffice(可以換 WPS)unity-webapps-common Amazon 連結thunderbird 雷鳥郵件客戶端totem 自帶的播放器rhythmbox 自帶的音樂播放器empathy 自帶的即時聊天

Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解決一些依賴 Windows 的痛點問題

格式混亂 技術分享 以及 箭頭 隔離性 程序 好的 gnome ubunt 原文:Linux 桌面玩家指南:17. 在 Ubuntu 中使用 deepin-wine,解決一些依賴 Windows 的痛點問題 特別說明:要在我的隨筆後寫評論的小夥伴們請註意了,我的博客開啟了

ubuntu桌面版最新版本安裝

ubuntu 桌面版本文出自 “大李子” 博客,謝絕轉載!ubuntu桌面版最新版本安裝

Ubuntu 16.04安裝Ubuntu After Install工具實現常用軟件批量安裝

批量安裝 一段 設置 nbsp 軟件集 安裝ubuntu 技術 log 常用 這個軟件集成了常用且好用的軟件,且只需要選擇需要的軟件之後自動安裝好,不需要額外設置。 安裝: sudo add-apt-repository ppa:thefanclub/ubuntu-

windows 遠程到ubuntu桌面

技術分享 startx port 宋體 sta config oca then bsp Windows remote connect ubuntu desktop 1. install xRDP sudo apt-get update sudo apt-ge

windows遠程桌面連接ubuntu 16.04

Ubuntu 遠程桌面1、安裝xrdp root@LinuxServer:~#sudo apt-get install xrdp 2、安裝vnc4server root@LinuxServer:~#sudo apt-get install vnc4server 3、安裝xubuntu-desktop root

Ubuntu sudo apt-get install *** 無法安裝軟體

簡介 windows下安裝軟體,我們只需要雙擊EXE檔案。但在Linux下每個Linux的發行版,比如Ubuntu,都會維護一個自己的軟體倉庫,我們常用的幾乎所有軟體都在這裡面。 在Ubuntu下,維護一個源列表,源列表裡面都是一些網址資訊,這每一條網址就是一個源,這個地址指向的

Ubuntu的基本用法:常用指令,控制流程和重定向

常用指令 接下來我將舉例闡述以下常用的基本指令: /!\ 記住要正確的按照下面寫的輸入,後面還得帶上回車鍵! 查詢檔案列表 [email protected]:~ $ ls file1.txt file2.pdf file3.mp3 file1.pdf another_fi

Ubuntu中新增和刪除PPA的軟體源(轉)

文章轉自:https://blog.csdn.net/luckydarcy/article/details/55803500 PPA,英文全稱為 Personal Package Archives,即個人軟體包檔案。是 Ubuntu Launchpad 網站提供的一項源服務,允許個人使用者上傳軟

關閉Ubuntu桌面版GUI

個人用於實驗的Ubuntu虛擬機器不需要GUI,且要複製多個,但是又懶得重新裝個Ubuntu,打算把現有的帶桌面的直接裝好克隆起來用,但是多個GUI一起開電腦吃不消,思前想後找了下關閉GUI的方法如下: 永久關閉 sudo systemctl set-default multi-user.target

ubuntu桌面的環境變數

ubuntu控制桌面上的環境變數 檔案位置 ~/.xprofile 例如 在.xprofile檔案新增 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=xim" export

windows 如何遠端ubuntu桌面

首先安裝遠端連線協議rdp,使用下面的命令。 sudo apt-get install xrdp   然後安裝vncviewer協議,使用下面的命令。 sudo apt-get install ti

ubuntu 和 centos 可用的 kubernetes 國內軟體

ubuntu 可用源: cat <<EOF > /etc/apt/sources.list.d/kubernetes.list deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main EOF

ubuntu首次安裝後必裝的軟體(by 星空武哥)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ubuntu桌面環境

轉:web http://blog.csdn.net/azuresn/article/details/6419437 在安裝了 ubuntu 後,可以新增多個桌面環境,例如: sudo apt-get install ubuntu-desktop ubuntu-netbook kubuntu