原文連接: http://ju.outofmemory.cn/entry/57244git
tmux安裝http://www.javashuo.com/article/p-ytolfbko-mh.htmlgithub
mac上的Terminal + bash + screen組合如今已經很是好用了,可是仍是經不起iterm+zsh+tmux的衝擊。在同事的強烈推薦下,趁着升級mac系統的機會,順便也切換到iterm+zsh+tmux的環境下了。shell
我爲何要要iterm2vim
切換過來也是腦殼一熱的衝動,我也調查過一些資料,看了下iterm的一些優勢:緩存
* 兼容性好,遠程服務器 vi 什麼的低版本能很好兼容,Terminal 則會出問題 (我是長時間在服務器上混的人,但其實並無這種感受~~)
* 支持 xterm-256 色,方便在終端中配置 vim/emacs 代碼配色 (其實Terminal如今已經支持256色了)
* 快捷鍵豐富,自帶/本身定義都很方便 (這個是關鍵,快捷鍵都我很是重要)
* 分屏簡單方便,能夠根據本身須要同時搭配上 tmux,大屏用起來爽到爆 (分屏只須要 command +(shift)+ d)bash
我的經常使用的快捷鍵和功能:服務器
1. ⌘ + 數字 : 各 tab 標籤切換
2. ⌘ + f : 查找 ,所查找的內容會被自動複製 ,輸入查找的部分字符,找到匹配的值按tab,便可複製
3. ⌘ + d : 橫着分屏
4. ⌘ + shift + d : 豎着分屏
5. ⌘ + r = clear : 換到新一屏,而不是 相似clear ,會建立一個空屏
6. ctrl + u :清空當前行,不管光標在什麼位置
7. (**) + ⌘ + ; : [(**) 輸入的命令開頭字符],會自動列出輸入過的命令
8. ⌘ + shift + h : 會列出剪切板歷史
9. ⌘← / ⌘→ : 到一行命令最左邊/最右邊
10. ⌘ + enter : 全屏框架
至少在我看來,zsh是兼容bash,對現有的操做是沒有任何的影響。並且還帶來來很多新的特性來減小咱們的輸入:curl
1. 連續tab,給出全部的補全列表並直接進入到選擇列表 cd <tab><tab>
2. 不記得命令的參數?不要緊,輸入命令直接tab給出就能給出參數說明,zsh後還用得着man函數嗎??? tar – <tab>
3. kill進程,還須要先查進程嗎?用zsh,只需tab就能把全部進程展現給你,很強大的一個功能。 kill <tab>
4. 智能查找歷史命令,在用<ctrl-p>或者方向上鍵查找歷史命令時,zsh支持限制查找。好比,輸入ls 而後再按方向上鍵,則只會查找用過的ls命令。
5. 多個終端會話共享歷史記錄。多個窗口,tab,tmux。全部的命令歷史均可以共享。
6. zsh還支持後綴alias,即以什麼命令打開特定的後綴名文件。例如alias -s js=mvim,輸入hello.js,會以vim打開該文件,而不在須要vim hello.js。
7. 遞歸搜索,ll **/*.log,find命令大部分場景被取代了。函數
至於安裝和配置zsh,得感謝robbyrussell開發得oh-my-zsh,這玩意就是一個開源的zsh配置管理框架,提供了大量實用的功能,主題等。
使用brew來安裝zsh
brew install zsh
設置zsh爲默認,在/etc/shells文件末尾添加
/usr/local/bin/zsh
執行:
chsh -s /usr/local/bin/zsh
最後記得將~/.bash_prorile或者~/.profile等配置拷貝到~/.zshrc中。
安裝oh-my-zsh
自動安裝:
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
能夠選擇本身喜歡的主題。只須要修改~/.zshrc文件中的ZSH_THEME便可。
1. 掉線仍然能保證工做現場
2. tmux徹底使用鍵盤控制窗口,實現窗口的切換
固然還有其它不少得優勢,暫時我沒還用上,對我而已,跟風瞭解下而已。安裝也很是得簡單:
brew install tmux
蒐集到得一些快捷鍵:
Ctrl+b // 激活控制檯;此時如下按鍵生效 系統操做 ? // 列出全部快捷鍵;按q返回 d // 脫離當前會話;這樣能夠暫時返回Shell界面,輸入tmux attach可以從新進入以前的會話 D // 選擇要脫離的會話;在同時開啓了多個會話時使用 Ctrl+z // 掛起當前會話 r // 強制重繪未脫離的會話 s // 選擇並切換會話;在同時開啓了多個會話時使用 : // 進入命令行模式;此時能夠輸入支持的命令,例如kill-server能夠關閉服務器 [ // 進入複製模式;此時的操做與vi/emacs相同,按q/Esc退出 ~ // 列出提示信息緩存;其中包含了以前tmux返回的各類提示信息 窗口操做 c // 建立新窗口 & // 關閉當前窗口 數字鍵 // 切換至指定窗口 p // 切換至上一窗口 n // 切換至下一窗口 l // 在先後兩個窗口間互相切換 w // 經過窗口列表切換窗口 , // 重命名當前窗口;這樣便於識別 . // 修改當前窗口編號;至關於窗口從新排序 f // 在全部窗口中查找指定文本 面板操做 」 // 將當前面板平分爲上下兩塊 % // 將當前面板平分爲左右兩塊 x // 關閉當前面板 ! // 將當前面板置於新窗口;即新建一個窗口,其中僅包含當前面板 Ctrl+方向鍵 // 以1個單元格爲單位移動邊緣以調整當前面板大小 Alt+方向鍵 // 以5個單元格爲單位移動邊緣以調整當前面板大小 Space // 在預置的面板佈局中循環切換;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled q // 顯示面板編號 o // 在當前窗口中選擇下一面板 方向鍵 // 移動光標以選擇面板 { // 向前置換當前面板 } // 向後置換當前面板 Alt+o // 逆時針旋轉當前窗口的面板 Ctrl+o // 順時針旋轉當前窗口的面板