日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

文本三巨頭zsh、tmux 和 vim

 昵稱14979747 2015-05-08

公元前62年,凱撒 組建了一個(gè)包含了他自己, 政治家克拉蘇,以及軍事領(lǐng)袖龐培三人的政治聯(lián)盟。 這三個(gè)人一起組成了一個(gè)秘密政治小組,稱為 Triumvirate(三巨頭),來統(tǒng)治羅馬共和國(guó)。 而文本三巨頭則是 zsh、vim 和 tmux。 這三個(gè)令人尊敬的工具本身已經(jīng)非常強(qiáng)大,然而它們的組合卻更加所向披靡,把其他文本編輯組合甩開了 N 條街。本文旨在向剛接觸各類工具的新手們簡(jiǎn)述如何建立一個(gè)既強(qiáng)大又容易配置的文本三巨頭。我想把主要的篇幅放在如何將 zsh、vim 和 tmux 整合起來,并主要講述了我如何解決兩個(gè)常見的問題——復(fù)制/粘貼功能和顏色配置。

(題圖來自:deviantart.net)

跟Rands一樣,我對(duì)工具非常癡狂。我認(rèn)為文本三巨頭是最強(qiáng)大的文本編輯的工具鏈。如果你不使用這個(gè)工具鏈,那么我會(huì)建議你先干了這杯酒,然后嘗試使用文本三巨頭。如果你每天花費(fèi)大量的時(shí)間在文本中糾纏,那么你更應(yīng)該接受我的建議。一開始換工具或許會(huì)有些不習(xí)慣,但是你的努力會(huì)得到回報(bào)的。使用 zsh、vim 和 tmux 的好處就在于免費(fèi)使用,速度快,可任意定制,在任何操作系統(tǒng)上都能使用,可在遠(yuǎn)程環(huán)境中使用,還在于可以實(shí)現(xiàn)遠(yuǎn)程結(jié)對(duì)編程,以及互相之間,和與 Unix 之間深度的整合。最終純文本編輯的效率和組織性將會(huì)得到很大提升。該工具鏈可以完全由 git 管理,并且可以再幾秒鐘的時(shí)間內(nèi)克隆到一臺(tái)遠(yuǎn)程服務(wù)器或是一臺(tái)新的機(jī)器上。總的來說,它們的這些優(yōu)點(diǎn)讓使我在寫作和編程上變得更快,更有效率。

文本三巨頭的一個(gè)巨大的優(yōu)勢(shì)在于對(duì)用于管理工作環(huán)境的分屏模型的普遍使用。分屏模型管理允許tmux像粘合劑一樣組織工作流。通常在一天的結(jié)尾,我會(huì)發(fā)現(xiàn)我留下了一些shell窗口和一大堆的臨時(shí)文件,數(shù)據(jù)文件,源代碼文件,文檔文件,還有打開的數(shù)據(jù)庫。把這些窗口一個(gè)個(gè)關(guān)掉然后第二天再把它們打開是非常痛苦的一件事。tmux和vim支持對(duì)一個(gè)特定的項(xiàng)目打開大量的窗格和窗口,如果你希望轉(zhuǎn)換到另一個(gè)完全不同的項(xiàng)目,你可以從這些窗口分離出來轉(zhuǎn)向另外一個(gè)項(xiàng)目,然后再按原樣返回這些窗口。在一時(shí)間段內(nèi),我通常同時(shí)在多個(gè)工作和個(gè)人的項(xiàng)目上進(jìn)行工作。在多個(gè)工作環(huán)境中來回切換的能力對(duì)我來說非常重要。(Thoughtbot blog 中有對(duì) tmux 中窗口和窗格的使用的講解)

下面是——包裝在tmux中的zsh和vim:

0?wx_fmt=jpeg

我建議給文本三巨頭設(shè)置兩種顏色主題——一個(gè)主題給工作上的項(xiàng)目而另外一個(gè)給個(gè)人項(xiàng)目。我是情景依賴記憶的重度使用者,因此使用兩個(gè)主題在認(rèn)識(shí)和區(qū)分工作項(xiàng)目和個(gè)人項(xiàng)目上給予我很大的幫助。如圖,下面是我的個(gè)人主題(左),以及工作主題(右)。兩個(gè)主題都是Ethan Schoonover 的solarized 項(xiàng)目中的版本。我在玩的時(shí)候使用暗調(diào)主題,是因?yàn)槲彝ǔT谇宄炕虬硖炜者€處在黑暗中時(shí)搞自己的項(xiàng)目。暗調(diào)主題可以在這些時(shí)候讓我的眼睛得到舒緩。關(guān)于字體,我用的是 14 point 的 Inconsolata。

0?wx_fmt=jpeg

首先要做的事將大寫鎖定鍵(Caps Lock)重映射到Control 鍵上。大寫鎖定鍵是個(gè)歷史遺留問題,這個(gè)在鍵盤上的黃金位置的鍵需要被更好的利用。在tmux中對(duì)Control鍵的使用非常頻繁,因此將Control鍵重映射到一個(gè)符合人體工程學(xué)的位置對(duì)我們很有幫助。

想要給三巨頭創(chuàng)建一個(gè)強(qiáng)大的工作環(huán)境,我們可以下載 iTerm2 終端模擬器。iTerm2 比普通的終端應(yīng)用具有更強(qiáng)的性能,更多的特性和更靈活的定制化。當(dāng)你開始使用iTerm2時(shí),請(qǐng)回頭閱讀全部文檔看看它能為你做什么。其中一個(gè)特性是Command-?,顯示出一個(gè)視窗幫助你快速地找到你當(dāng)前的光標(biāo)位置。大部分iTerm2非??犰诺墓δ鼙疚亩紱]有提及。請(qǐng)確保你了解了iTerm2的即時(shí)回放,正則查詢,點(diǎn)擊打開URL,以及標(biāo)記跳轉(zhuǎn)的功能。

當(dāng)iTerm2安裝完成,即可添加亮調(diào)和暗調(diào)主題。solarized 庫中含有iTerm2調(diào)色板和 配置iTerm2主題的說明,所以它的安裝簡(jiǎn)潔明了。另一項(xiàng)對(duì)使用iTerm2有用的配置是啟用系統(tǒng)級(jí)別的綁定鍵,通過該鍵可以讓iTerm2轉(zhuǎn)為最前面的窗口。我發(fā)覺設(shè)置一個(gè)具體的綁定比使用應(yīng)用切換器(Command-Tab)要快的多。該設(shè)置在Preferences > Keys中,而我使用的綁定鍵是Option-t。關(guān)于自定義,我還有一個(gè)建議,那就是在 Profiles > Terminal > Notifications中撤銷選中iTerm2 的響鈴聲。

由于文本三巨頭的操作高度集中在鍵盤上,因此,在你配置和形成自己的肌肉記憶之前,將iTerm, zsh, vim, tmux,和其他任何你之前使用的工具之間的快捷鍵沖突消除是非常明智的選擇。做窗口移動(dòng)時(shí),我使用Option 鍵。Option-t將iTerm2移到屏幕前,而Option-i將Twitter移到屏幕前,等等。我還使用Moom 作為我在OS X上的平鋪式窗口管理器,并將所有的快捷鍵配置為使用Option 鍵將窗口移至屏幕上特定的展示窗口或位置上。

接下來,安裝Homebrew 然后使用它去安裝git,MacVim,tmux和reattach-to-user-namespace(返回用戶命名空間)。安裝MacVim有兩個(gè)原因。第一,默認(rèn)的OS X自帶的vim似乎對(duì)很多人來說很慢。我發(fā)現(xiàn)使用MacVim中的vim比OS X版本的vim要快很多。另外一個(gè)安裝MacVim的好處是你的系統(tǒng)將得到一個(gè)更新版本的vim。第二個(gè)原因則是復(fù)制/粘貼的使用在OS X版本的vim中并沒有得到優(yōu)化。

安裝完git,就可以新建一個(gè)存儲(chǔ)庫來放置文本三巨頭的設(shè)置文件。我的存儲(chǔ)庫命名為dotfiles 并存儲(chǔ)了我的所有zsh, vim, and tmux配置文件。如果你不知道怎么為你的文件設(shè)置版本控制,請(qǐng)閱讀Pro Git 或者 Git Immersion。

已經(jīng)有很多文章寫到了如何使用zsh以及為什么zsh比bash強(qiáng)大。基本上,bash有的功能zsh都有,而且zsh的一些特性bash是沒有的。我使用zsh而不是bash是因?yàn)樗袛U(kuò)展的globbing(通配符),更好用的tab補(bǔ)全,內(nèi)建的拼寫糾正,一個(gè)更好的計(jì)算器(zcalc),以及一個(gè)內(nèi)建的批重命名文件工具(zmv)。zsh的另外一個(gè)殺手級(jí)特色是oh-my-zsh——一個(gè)zsh的社區(qū)驅(qū)動(dòng)的框架。oh-my-zsh預(yù)先打包好了很不錯(cuò)的主題,插件,以及讓zsh極度強(qiáng)大的配置。如果你想學(xué)習(xí)本文的話,請(qǐng)安裝iTerm2并將zsh作為你的默認(rèn)shell。

我將我的 .zshrc、 .vimrc 和 .tmux.conf 配置文件保存在 dotfiles 目錄中,并用 symlink 在 home 目錄下創(chuàng)建鏈接。這樣我就能只在一個(gè)目錄里做zsh、vim 和tmux的配置的版本控制了。文本三巨頭使用了vim,那么我們應(yīng)該讓zsh和tmux也使用vim以及它的綁定鍵并將vim設(shè)置為默認(rèn)編輯器。將下面的文本加到.zshrc文件中,讓zsh支持vim:

export EDITOR="vim"

bindkey -v

# vi style incremental search

bindkey '^R' history-incremental-search-backward

bindkey '^S' history-incremental-search-forward

bindkey '^P' history-search-backward

bindkey '^N' history-search-forward

zsh不僅支持大多數(shù)bash命令,還支持更多的智能命令。比如,如果你想在bash中移動(dòng)到一個(gè)目錄里,你可能會(huì)輸入cd foo。而在zsh中如果你將下面一行加入到.zshrc中,你只需要輸入foo即可。

setopt AUTO_CD

為了設(shè)置一個(gè)好的命令行提示,我參考了Steve Losh’s excellent prompt然后做了一些小改動(dòng)。只需要簡(jiǎn)單地在oh-my-zsh/themes/中創(chuàng)建一個(gè)新的主題文件并在你的zshrc文件中添加一行對(duì)應(yīng)你的主題文件的文本(ZSH_THEME=bunsen)。這是我的修改后的Steve的命令行提示:

function virtualenv_info {

[ $VIRTUAL_ENV ]&& echo '('`basename $VIRTUAL_ENV`') '

}

function box_name {

[-f ~/.box-name ] && cat ~/.box-name || hostname -s

}

PROMPT='

%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}$(box_name)%{$reset_color%} in %{$

fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info)

$(virtualenv_info)%(?,,%{${fg_bold[blue]}%}[%?]%{$reset_color%} )$ '

ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"

ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"

ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"

ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"

ZSH_THEME_GIT_PROMPT_CLEAN=""

local return_status="%{$fg[red]%}%(?..?)%{$reset_color%}"

RPROMPT='${return_status}%{$reset_color%}'

原文:http://www./the-text-triumvirate/
譯文:http://blog./86571/譯者: 鴨梨山大

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多