mac终端设置(iterm2+zsh)
2021-02-27 本文已影响0人
江江的大猪
笔者对自己电脑安装软件的规划是工具类软件都由brew管理,服务类软件都由docker管理,所以本文所有安装都通过brew安装管理。
最终效果
安装清单:iterm2+zsh+oh-my-zsh+powerlevel10k+zsh插件(zsh-syntax-highlighting+zsh-autosuggestions)
设置iterm2
- 其实自带终端也挺好的,用iterm2的原因是cmd+d直接分屏、cmd+光标能直接在finder中打开目录
- iterm2有选中既复制、自动记录复制记录的功能。不过已经有了alfred的自动记录剪切板功能,iterm2的这个卖点基本用不到
- 安装完iterm2打开发现和自带终端差不多,黑乎乎一片,进行设置
- 设置配色,个人喜欢Tango dark
- 取消下面的勾选,否则执行一些交互型命令后,滚动的时候会发现之前的历史输入输出会被覆盖了
- 设置自己喜欢的背景图
安装设置zsh
-
zsh的配置很麻烦,所以大家都是通过oh-my-zsh设置zsh,根据oh-my-zsh官网可以通过curl或wget安装
-
安装zsh主题powerlevel10k:
brew install romkatv/powerlevel10k/powerlevel10k
,并根据brew提示,在.zshrc中添加source /usr/local/opt/powerlevel10k/powerlevel10k.zsh-theme
并将之前的ZSH_THEME设置删掉- zsh的主题很影响使用体验,好看+提示信息有用+顺畅三者总是不能兼具,根据https://zhuanlan.zhihu.com/p/65483976 和个人对主流的的robbyrussell、ys、agnoster、purl、powerlevel10k使用体验最终选择了powerlevel10k,powerlevel10k是powerlevel9k的增强,具体可以看github说明 https://github.com/romkatv/powerlevel10k
- 安装后重新打开iterm2会进入powerlevel10k的交互配置界面,推荐的字体MesloLGS NF最好安装一下,否则最终效果图中的小图标显示不出来。安卓MesloLGS NF后iterm2默认就已经将字体设置成这个了,如果没有就手动设置一下。其他根据自己喜好设置,后续想改执行p10k configure重新设置就行
- brew安装powerlevel10k的时候因为依赖关系,会自动安装最新版zsh
-
高版本macos中已经将默认shell从bash改为了zsh,笔者是macos10.14.6,所以需要自己更改默认bash
- 自带的/bin/zsh是5.3版本,上面安装powerlevel10k时安了最新的zsh到/usr/local/bin/zsh(当前5.8)
-
chsh -s /usr/local/bin/zsh
修改默认shell,注意要先在/etc/shells中增加一行/usr/local/bin/zsh,否则会提示non-standard shell修改不成功 - 设置.zshrc中HIST_STAMPS="yyyy-mm-dd",这样history命令会显示历史上输入命令的时间
- 设置.zshrc中DISABLE_AUTO_UPDATE="true",否则每周都会自动检查更新oh my zsh。想要更新可以手动omz update
- 设置.zshrc中unsetopt share_history,禁用不同tab共享历史命令。setopt inc_append_history 让新开tab拥有之前其他tab的全部历史命令
安装最常用的zsh插件(高亮+自动提示)
- 安装zsh命令行高亮插件
brew install zsh-syntax-highlighting
,并根据brew提示在.zshrc中添加source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
- 安装zsh自动提示插件
brew install zsh-autosuggestions
,并根据brew提示在.zshrc中添加source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
- 默认是按→补全命令行,可以在.zshrc中设置
bindkey ';' autosuggest-accept
将;也作为补全命令行按键,这样不用移动手掌,直接小拇指按 - 使用zsh-autosuggestions插件后,会造成命令行复制文字变慢,可以根据https://github.com/zsh-users/zsh-autosuggestions/issues/238在.zshrc中添加如下设置:
- 默认是按→补全命令行,可以在.zshrc中设置
# This speeds up pasting w/ autosuggest
# https://github.com/zsh-users/zsh-autosuggestions/issues/238
pasteinit() {
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
}
pastefinish() {
zle -N self-insert $OLD_SELF_INSERT
}
zstyle :bracketed-paste-magic paste-init pasteinit
zstyle :bracketed-paste-magic paste-finish pastefinish