mac工做软件推荐-iterm + zsh + tmux

原文连接: 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?

至少在我看来,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便可。

为何要选择tmux

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  // 顺时针旋转当前窗口的面板

相关文章
相关标签/搜索