明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

在Linux系統(tǒng)中怎么把tmux與vim打造成IDE

[摘要]在Linux系統(tǒng)中tmux 和 vim兩個(gè)工具可以用來開發(fā)項(xiàng)目,很多人寧愿使用tmux 和 vim 也不用鍵盤和鼠標(biāo)說明這兩個(gè)工具有著獨(dú)到之處。本文就來介紹一下在Linux系統(tǒng)中把tmux和vim打...

  在Linux系統(tǒng)中tmux 和 vim兩個(gè)工具可以用來開發(fā)項(xiàng)目,很多人寧愿使用tmux 和 vim 也不用鍵盤和鼠標(biāo)說明這兩個(gè)工具有著獨(dú)到之處。本文就來介紹一下在Linux系統(tǒng)中把tmux和vim打造成IDE。

在Linux系統(tǒng)中如何把tmux和vim打造成IDE

  很多人習(xí)慣于將終端工具與代碼編輯器平鋪在一起。在 web 開發(fā)工作通常需要一個(gè)控制臺(tái)用于輸入 ad-hoc 命令,一個(gè)控制臺(tái)操作數(shù)據(jù)庫(kù),以及一個(gè)控制臺(tái)查看日志。同時(shí)我的一些項(xiàng)目還會(huì)使用測(cè)試工具來對(duì)有修訂的文件進(jìn)行自動(dòng)化測(cè)試,因此我也希望同時(shí)能看到這些測(cè) 試執(zhí)行的狀態(tài)。

  vim 提供了很多插件可以將上述功能集成在一起,但我更喜歡 vim/tmux 這個(gè)組合。這是個(gè)可視化的操作工具。

  通用這種方式使用命令行工具,我們可以高效地打造一個(gè)輕量級(jí)、可定制化 IDE 。我還發(fā)現(xiàn)在 tmux 的多個(gè)控制臺(tái)窗格(pane)中輸入 Unix 命令的方式很好用,因?yàn)檫@種方式可以很容易地將命令結(jié)合起來從而提供復(fù)雜的腳本化操作,而不需要臃腫的IDE工具。

  這種使用方法與使用傳統(tǒng)的IDE的區(qū)別在于其提供的界面非常契合我當(dāng)下的工作,且它僅受限于我所安裝命令行工具以及腳本語言。我可以按需創(chuàng)建 tmux 窗格(pane)以及 vim 分割(split)窗口,而不要開發(fā)什么模板。盡管 Eclipse 和 Xocde 有提供一些以任務(wù)為中心( task-foruce) 的界面,我還是覺得這些有些礙事。尤其是 Xcode,它所提供的快捷鍵感覺像是后面才補(bǔ)上去的,我還是得不停地使用鼠標(biāo)進(jìn)行操作。

  支持任務(wù)間快速切換則是另一個(gè)優(yōu)點(diǎn)。我是一個(gè)自由職業(yè)者,通常一天中我需要在 3、4 個(gè)項(xiàng)目間進(jìn)行切換。在使用 tmux 之后, 我可以先斷開(detach)一個(gè)會(huì)話稍后再切回來繼續(xù),這使我能夠?qū)W⒂诋?dāng)前工作。我覺得這個(gè)是控制臺(tái) vim 工具相比于 GUI vim 或是同時(shí)開一堆控制臺(tái)工作而言的一個(gè)極大優(yōu)勢(shì),因?yàn)?Eclipse 以及 Xcode 總是在關(guān)閉工程時(shí)嘗試保存界面狀態(tài)(不過最新的版本的 Xcode 在關(guān)閉工程貌似總是將我打開的分割窗口關(guān)閉掉)。

  為什么使用 hjkl 鍵

  這種操作方式看起來可能很別扭,不過如果你能夠熟練地盲打,vim 和 tmux (配置成 vim 鍵風(fēng)格)可以很容易讓手指遠(yuǎn)離鼠標(biāo)而只保持在鍵盤主鍵區(qū)(home row)進(jìn)行操作。(譯者注:home row 指的是鍵盤上的 “A、S、D、F、J、K、L、;” 這 8 個(gè)按鍵。)

  這正是 hjkl 鍵的秘密:對(duì)于哪些盲打正確率高的人而言。 對(duì)于那些不習(xí)慣使用這些按鍵的人,可以先慢慢嘗試幾天。并先專注于打字的正確性,充分利用好你的十個(gè)手指。

  使用 hjkl 鍵的道理讓我想起說服游戲初學(xué)者去使用 wasd 鍵而不使用方向鍵情況。 起初 wasd 的確會(huì)覺得不太直觀,但這使得同時(shí)使用鍵盤以及鼠標(biāo)操作變得更加容易。當(dāng)適應(yīng)這種操作方式之后,其優(yōu)點(diǎn)是顯而易見的。

  配置提示

  在 ~/.tmux.conf 文件中做如下的配置:

  set-window-option -g mode-keys vi

  bind h select-pane -L

  bind j select-pane -D

  bind k select-pane -U

  bind l select-pane -R

  這個(gè)能讓我在 tmux 中使用 vim 的快捷鍵。

  如果你正在努力掌握 vim 的快捷鍵,請(qǐng)?jiān)?vim 的編輯模式下關(guān)閉方向鍵,具體可以參考:Vim: Making those Arrow Keys Work With You 。

  如果你是個(gè) vim 新手,這里值得一提的是 vim 支持 ctags。同時(shí)還有 TagHighlight 插件可以在 pane 中動(dòng)態(tài)地顯示當(dāng)前文件編輯緩存區(qū)的多個(gè)標(biāo)簽(tags),這是個(gè)類似于 IDE 的功能。

  Dotfiles文件

  你的 IDE 配置文件是否能夠在多臺(tái)電腦間同步?

  我有一個(gè)名為 dotfiles 的私個(gè) git 庫(kù),專門用于存儲(chǔ) vim 和 ctags 配置以及插件。我寫了一個(gè)安裝腳本用于自動(dòng)為本地 dotfiles 庫(kù)創(chuàng)建配置文件的符號(hào)鏈接。一旦我使用一臺(tái)新電腦時(shí),我首先做的是檢出(check out)這個(gè) git 庫(kù)。之后當(dāng)我再開項(xiàng)目進(jìn)行編輯時(shí),vim 和 tmux 就已按我習(xí)慣的使用方式配置好了。

  拷貝與粘貼

  我經(jīng)常需要使用 tmux 的拷貝與粘貼命令將控制臺(tái)的輸出拷貝到 vim 中; tmux 的不同配置,快捷鍵有很大差異,因此非常值得去閱讀一下 tmux 的手冊(cè)并了解其工作原理。默認(rèn)是使用 “ctrl-b [“ 進(jìn)入拷貝模式,使用空格鍵(space)開始內(nèi)容選取,回車鍵(Enter)進(jìn)行拷貝,然后使用 ”ctrl-b ]” 進(jìn)行粘貼。

  快捷鍵

  如果想要高效地使用 vim,對(duì)于重度依賴鍵盤的操作一定要思考是否有相關(guān)的快捷鍵。舉個(gè)例子,當(dāng)我第一次使用 ~ 快捷鍵時(shí)(用于大小寫轉(zhuǎn)換),我覺得“這個(gè)真是搞笑了,我肯定再不會(huì)使用它”。哈,實(shí)際上在我寫這篇文章時(shí),我已經(jīng)使用三次了。

  以上就是在Linux系統(tǒng)中把tmux和vim打造成IDE的教程了,因?yàn)閠mux和vim有很多快捷鍵,所以完全可以取代鼠標(biāo)的作用。


Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng)