本文主要介绍mac下iTerm2的基本配置,包括两方面内容:主题和快捷键。写这篇的目的是为自己电脑的配置做个记录,以备不时之需。
主题
在配置完主题后,当你打开iTerm2时,会显示如下界面
这个主题会让你的光标提示符之前的内容一目了然,尤其是当你进入git目录之后,还会提示git本地代码库相关的状态,例如:它会提示你所在的分支,以及文件是否有变化。下面我们一步步来配置吧。
安装oh-my-zsh
oh-my-zsh是mac下shell(zsh)的开源配置管理框架,从本文中,你将会看到可以用它来配置zsh的字体、主题、配色等。
首先我们检查下自己默认的shell是否是zsh
$ echo $0
-zsh
如果你的输出不是-zsh
,需要手动切换一下
chsh -s /bin/zsh
安装oh-my-zsh
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
修改主题
zsh的配置文件是~/.zshrc
,每次打开终端时,这个脚本都会执行,修改该文件的ZSH_THEME
字段,配置主题
ZSH_THEME="agnoster"
同时将agnoster
主题下载下来,拷贝到~/.oh-my-zsh/themes
目录下
$ wget https://gist.githubusercontent.com/agnoster/3712874/raw/c3107c06c04fb42b0ca27b0a81b15854819969c6/agnoster.zsh-theme
$ mv agnoster.zsh-theme ~/.oh-my-zsh/themes/agnoster.zsh-theme
修改配色
我使用的是solarized配色方案,你可以从这里下载:
将solarized.zip
解压缩后,请在 iTerm 里按command+,
(逗号)快捷键,打开Preferences(选项)对话框
Preferences -> Profiles -> Colors -> Color Presets -> Import
导入iterm2-colors-solarized
目录下的两个.itermcolors
文件,修改配色方案
Preferences -> Profiles -> Colors -> Color Presets
选择Solarized Dark
。
配置字体
首先配置字体编码,修改~/.zshrc
文件,将字体编解码方式修改为UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
下载并安装Powerline
字体,继续打开iTerm2的选项
Preferences -> Profiles -> Text -> Change Font
换成Menlo
字体,字号14
新打开一个iTerm2 Tab,就可以看到效果了。
快捷键设置
这里说的快捷键主要是光标移动的快捷键,因为熟练使用这些快捷键会提升工作效率。iTerm2需要配置的地方不多,我就设置了两个地方,使光标可以以单词为单位移动:
- 使光标移动到右边单词的首字符
- 使光标移动到左边单词的首字符
依然是打开iTerm2的选项
Preferences -> Profiles -> Keys -> 添加快捷键(+号)
设置光标前进一个单词的快捷键
继续添加快捷键,设置光标回退一个单词的快捷键
于是,当你需要敲一串很长的命令时,不巧其中某个选项需要修改,在配置完以上快捷键后,你可以键入option + f
或option + b
完成以单词为单位的移动,这样移动速度会快很多。
其他常用的快捷键
- Ctrl + a:将光标移动到命令行首
- Ctrl + e:将光标移动到命令行尾
- Ctrl + w:删除光标前的一个单词
- Ctrl + u:删除所有内容
- Ctrl + y:粘贴上次删除的内容
- Ctrl + f:光标向右移动一个字符
- Ctrl + b:光标向左移动一个字符
- Ctrl + r:搜索历史命令
以上是我常用的一些快捷键,赶紧练练手吧。也欢迎在留言区补充其他Tips。
补充
ssh保活(keepalive)配置
当你使用ssh客户端连接公司服务器时,很有可能会出现闲置一段时间后,被服务器断开的情况,这是运维部门的一种安全策略。但这种被动断开很可能会影响到自己的工作上下文,例如你运行了一个耗时较长的脚本,或用vim打开了一个文本文件,如果此时远程服务器断开了你的连接,你的工作就被中断了,且无法恢复,这种体验非常糟糕。
怎样才能让iTerm2帮你保持连接呢?其实这事儿也不是iTerm2来完成的,而是ssh客户端本身来完成的,修改~/.ssh/config
文件,如下
Host *
ServerAliveInterval 10
上述设置意为对任何一个ssh连接,每10秒发送一个no-op
包,意思是即使你不做任何操作,也可以起到心跳保活的效果。
参考:
微信公众号:程序员在深圳(studycode)
交流微信:jingwumen777