Terminal 配置+美化 iTerm + zsh
基本配置
终端软件用 iTerm2 https://iterm2.com/
shell 用 zsh,macOS 默认
cat /etc/shells
查看有哪些,echo $SHELL
查看用的是哪个解释器- 更改 shell 指令
chsh -s /bin/zsh
配合用 oh-my-zsh https://ohmyz.sh/
1
2
3
4# 安装
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 卸载
uninstall_oh_my_zsh很多人用的
powerline
https://github.com/powerline/powerline- 是啥?「Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, fish, tmux, IPython, Awesome, i3 and Qtile.」
- 但原来的样式似乎也很好看,不准备折腾了
- 注意需要配合字体
Meslo
https://github.com/powerline/fonts - 参见这里
zsh
关于 zsh
摘自 MacTalk 的一篇介绍文章 终极 Shell
- 兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。
- 强大的历史纪录功能,输入 grep 然后用上下箭头可以翻阅你执行的所有 grep 命令。
- 智能拼写纠正,输入gtep mactalk * -R,系统会提示:zsh: correct ‘gtep’ to ‘grep’ [nyae]? 比妹纸贴心吧,她们向来都是让你猜的……
- 各种补全:路径补全. 命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全
- 智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。
- 目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。
- 在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。
- 通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find,文件太多就歇菜了。
- 更强的别名:请参考配置一节。
- 插件支持:请参考插件一节。
zsh/oh-my-zsh
oh-my-zsh GitHub https://github.com/ohmyzsh/ohmyzsh wiki https://github.com/ohmyzsh/ohmyzsh/wiki ###TODO
zsh 主题
目前用了(默认的?) robbyrussell
也挺好看
插件
Github: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/
总论
- 基本
- 可以看到上面的GitHub列表或者 wiki 中查看好用的插件;
- 其实在
oh-my-zsh/plugins
目录下也可看到,并且可以看到一些底层实现的影子;
- 安装
- 部分插件需要额外安装,思路:
- 首先看 wiki;
- 根据插件官网的方式进行安装,注意安装后(应该)可以不必根据那上面的指南 source 或者修改
.zshrc
;- 目前倾向于可以直接安装的通过
brew
(或者如pip
安装) 进行 👍; - 部分直接支持
zsh
,可通过git
下载,将其放在.oh-my-zsh/custom/plugins
下;
- 目前倾向于可以直接安装的通过
- 因为若是在
oh-my-zsh/plugins
中的插件,里面应该有激活的指令,因此只需要在配置中的plugins
中添加名字即可。
- 部分插件需要额外安装,思路:
需要安装的
zsh-syntax-highlighting
地址 https://github.com/zsh-users/zsh-syntax-highlighting
(似乎也可以 brew 安装之后 source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
) 但如果用的是 Oh-my-zsh,这样安装似乎更方便:先 clone 到 zsh 的插件目录,然后进行配置
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
在 ~/.zshrc
中配置
1 | plugins=( [plugins...] zsh-syntax-highlighting) |
zsh-autosuggestions
地址 https://github.com/zsh-users/zsh-autosuggestions
试了下超级好用!
可以 git
安装到上述目录下,也可用brew:brew install zsh-autosuggestions
然后配置开启
autojump
plugin https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/autojump GitHub https://github.com/wting/autojump
安装一
安装根据官网 brew install autojump
,然后根据提示将下面这样加入配置即可
1 | [ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh |
安装二
实测,可以 brew install autojump
之后,直接配置 .zshrc
,在 plugins
中加入 autojump
即可; 机制应该是在 .oh-my-zsh/plugins/autojump/autojump.plugin.zsh
中进行了检测。
语法
试用:autojump 会记录你浏览过的目录列表,对于每个目录建立一个索引/权重,然后使用指令的时候跳转到匹配的权重最大的那一个。
1 | j foo # 打开包含 foo 的目录 |
无需安装的
git
默认开启,GitHub https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git。 记录一下常用的指令快捷键:
1 | g git |
extract
默认安装仅需要开启即可;并且配置了 x: aliased to extract
。 试用:直接 x filename
即可
sudo
连按两下 ESC
在命令行首加上 sudo
。
iTerm
快捷键
1 | command + t 新建标签 |