mac终端设置(iterm2+zsh)

笔者对自己电脑安装软件的规划是工具类软件都由brew管理,服务类软件都由docker管理,所以本文所有安装都通过brew安装管理。

最终效果

安装清单:iterm2+zsh+oh-my-zsh+powerlevel10k+zsh插件(zsh-syntax-highlighting+zsh-autosuggestions+fzf)


设置iterm2

  1. 其实自带终端也挺好的,用iterm2的原因是cmd+d直接分屏、cmd+光标能直接在finder中打开目录
  2. iterm2有选中既复制、自动记录复制记录的功能。不过已经有了alfred的自动记录剪切板功能,iterm2的这个卖点基本用不到
  3. 安装完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设置删掉

    1. zsh的主题很影响使用体验,好看+提示信息有用+顺畅三者总是不能兼具,根据https://zhuanlan.zhihu.com/p/65483976 和个人对主流的的robbyrussell、ys、agnoster、purl、powerlevel10k使用体验最终选择了powerlevel10k,powerlevel10k是powerlevel9k的增强,具体可以看github说明 https://github.com/romkatv/powerlevel10k
    2. 安装后重新打开iterm2会进入powerlevel10k的交互配置界面,推荐的字体MesloLGS NF最好安装一下,否则最终效果图中的小图标显示不出来。安卓MesloLGS NF后iterm2默认就已经将字体设置成这个了,如果没有就手动设置一下。其他根据自己喜好设置,后续想改执行p10k configure重新设置就行
    3. brew安装powerlevel10k的时候因为依赖关系,会自动安装最新版zsh
  • 高版本macos中已经将默认shell从bash改为了zsh,笔者是macos10.14.6,所以需要自己更改默认bash

    1. 自带的/bin/zsh是5.3版本,上面安装powerlevel10k时安了最新的zsh到/usr/local/bin/zsh(当前5.8)
    2. chsh -s /usr/local/bin/zsh修改默认shell,注意要先在/etc/shells中增加一行/usr/local/bin/zsh,否则会提示non-standard shell修改不成功
    3. 设置.zshrc中HIST_STAMPS="yyyy-mm-dd",这样history命令会显示历史上输入命令的时间
    4. 设置.zshrc中DISABLE_AUTO_UPDATE="true",否则每周都会自动检查更新oh my zsh。想要更新可以手动omz update
    5. 设置.zshrc中unsetopt share_history,禁用不同tab共享历史命令。setopt inc_append_history 让新开tab拥有之前其他tab的全部历史命令

安装最常用的zsh插件(高亮+自动提示)

  • 安装fzf brew install fzf,并在.zshrc的plugins中添加fzf
  • 安装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
    1. 默认是按→补全命令行,可以在.zshrc中设置bindkey ';' autosuggest-accept将;也作为补全命令行按键,这样不用移动手掌,直接小拇指按
    2. 使用zsh-autosuggestions插件后,会造成命令行复制文字变慢,可以根据https://github.com/zsh-users/zsh-autosuggestions/issues/238在.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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容