< 返回技术文档列表

mac终端设置(iterm2+zsh)

发布时间:2022-11-15 22:15:43⊙投诉举报

笔者对自己电脑安装软件的规划是工具类软件都由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说明 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插件后,会造成命令行复制文字变慢,可以根据 zsh-users/zsh-autosuggestions/issues/238在.zshrc中增加如下设置:
# This speeds up pasting w/ autosuggest#  zsh-users/zsh-autosuggestions/issues/238pasteinit() {  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 pasteinitzstyle :bracketed-paste-magic paste-finish pastefinish

/template/Home/Zkeys/PC/Static