隐藏侧边栏

MacOS iterm2 配置 「zsh」 + 「oh my zsh」 +「powerlevel10k」定制您的终端环境,极大提高体验以及效率

 邱少羽梦
2022-07-06 / 0 评论 / 0 点赞 / 136 阅读 / 7,130 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-08,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系博主删除。

iTerm2简介

Mac OS自带的终端,用起来有些不太方便,界面也不够友好, iTerm2是一款相对比较好用的终端工具,也可以说是 Terminal 的替代品,它适用于 macOS 10.12 或更高版本的 macOS。iTerm2常用操作包括主题选择、声明高亮、自动填充建议、隐藏用户名和主机名、分屏效果等,这些功能极大的提高我们敲命令的效率,强烈推荐每一个程序员都尝试和习惯使用这款工具。

效果图如下:

截屏2022-07-05 21.24.45

安装 iTerm2

  • brew 方式安装: brew install iterm2
  • 通过 MacWk 下载安装,博主采用这种方式,这里面有很多破解软件哦,下载地址
  • 通过官网下载安装,下载地址

安装以及配置 Oh My Zsh

  • 官网方式,该方式可能因为网络原因安装不成功,那请换其他方式安装【不推荐】

sh -c "$(curl -fsSL https://gcore.jsdelivr.net/gh/qiushaocloud/ohmyzsh@master/tools/install.sh)"

  • git 仓库方式

    # 下载 oh-my-zsh 源码
    git clone https://gitee.com/qiushaocloud/ohmyzsh.git ~/.oh-my-zsh
    # git clone https://github.com/qiushaocloud/ohmyzsh.git ~/.oh-my-zsh
    # 并且把 .zshrc 配置文件拷贝到根目录下
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    # 让 .zshrc 配置文件生效
    source ~/.zshrc
    ## shell换成zsh
    chsh -s /bin/zsh
    
  • oh-my-zsh GitHub 上下载 zip -> 解压 -> 移动 oh-my-zsh 目录到根目录

    cd ~/Downloads
    mv ohmyzsh-master ~/.oh-my-zsh
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    source ~/.zshrc
    

下载以及配置 solarized 配色主题【有些 item2 已经有这个主题,直接用就好了】

cd ~/Downloads
# 下载 solarized 主题源码
git clone https://gitee.com/qiushaocloud/solarized.git
# git clone https://github.com/qiushaocloud/solarized.git

然后打开 iTerm2, 按 Command + , 键, 打开 Preferences 配置界面, 然后 Profiles -> Colors -> Color Presets -> Import , 在弹出的窗口中, 定位到 Downloads > solarized > iterm2-colors-solarized , 双击 Solarized Dark.itermcolors 导入暗色的 Solarized 配色方案. 就可以了.

img

如果你有强迫症, 下载的文件可以删除

安装以及配置神器 Powerlevel10k

Powerlevel10k 简单来说就是一个 ZSH 的主题,只不过它的功能很强大,以下简称 p10k

git clone  https://gitee.com/qiushaocloud/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k
# git clone  https://github.com/qiushaocloud/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k

然后需要打开 ~/.zshrc 设置 ZSH_THEME:

ZSH_THEME="powerlevel10k/powerlevel10k"

安装以及设置字体 Nerd Fonts

打开 https://github.com/ryanoasis/nerd-fonts/releases,滑动页面找到 Assets 区域,如图:

img

我们只要下载箭头所指的 Hack.zip 这个字体包,解压缩之后就会获得一些 ttf 字体文件,双击安装即可。如果您没办法打开下载,您也可以使用此地址下载:https://gcore.jsdelivr.net/gh/qiushaocloud-cdn/cdn_static@master/Hack.zip

zshrc 设置字体
POWERLEVEL9K_MODE="nerdfont-complete"
ZSH_THEME="powerlevel10k/powerlevel10k"

注意,需要设置在 ZSH_THEME 之前。

iTerm2 设置字体

操作路径:菜单栏 -> Profiles -> Open Profiles -> Edit Profiles -> 选择 Text

img

这样,所有的图标就都可以正常显示了。

VS Code 字体配置

如果你用的是 VS Code,需要再配置一下字体,settings.json 内容设置如下:

{
  "terminal.integrated.fontFamily": "Hack Nerd Font"
}

自动配置【作者直接忽略废除 p10k 的配置,废除方式下面有介绍】

如果你指定了 ZSH_THEME="powerlevel10k/powerlevel10k" 但是在 zshrc 里没进行任何手动的配置,打开 iTerm2 的时候就会触发自动配置的流程。

也可以通过以下命令再次进入自动配置的流程:

p10k configure

img

问题大致如下:

  1. 这个符号看起来像钻石(旋转的正方形)吗?
  2. 这个符号看起来像锁吗?
  3. 这个符号看起来像 Debian logo 吗?
  4. 这些图标都交叉分布在 X 之间吗?
  5. 风格
  6. 编码
  7. 是否显示时间
  8. 目录层级分隔符
  9. 头部(左边)
  10. 尾部(右边)
  11. 是否换行
  12. 左边和右边是否有连接线
  13. 命令行和提示是否连接
  14. 两行命令之间分布稀疏还是松散
  15. 是否需要图标

后面几个选项随意,执行完命令之后,就会初始化 p10k:在根目录下生成 ~/.p10k.zsh,并且在 ~/.zshrc 底部写入:

img

如果想废除 p10k 的配置,只需要删除 ~/.p10k.zsh,并且删除上面这条命令即可。

自定义配置

如果你想当高玩,也可以在 ~/.zshrc 里手动配置 p10k,或者在 ~/.p10k.zsh 基础上进行修改。

这个得要自己看文档摸索啦,这里我简单说几个配置:

  • POWERLEVEL9K_LEFT_PROMPT_ELEMENTS
  • POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS
  • POWERLEVEL9K_VCS_GIT_GITHUB_ICON

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS

显示在命令行左边区域的元素:

img

和上图相对应的配置为:

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(user dir vcs newline)

POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS

显示在命令行右边区域的元素:

img

和上图相对应的配置为:

POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(time)

可以在 POWERLEVEL9K_LEFT_PROMPT_ELEMENTSPOWERLEVEL9K_RIGHT_PROMPT_ELEMENTS 里用的字段有:

字段含义user用户名dir当前目录名vcs远程仓库信息os_icon系统图标date日期host主机名status上一条命令的执行状态time当前时间......

如果还想了解更多,自行前往**文档**查看。

POWERLEVEL9K_VCS_GIT_GITHUB_ICON

如果它是一个 Github 目录,就会显示这个图标:

img

所以出现在窗口里的图标都可以自定义,可以通过命令查看目前正在使用的图标:

get_icon_names

img

找到想要修改的 KEY 就可以修改图标了。

注意:需要使用 Nerd Fonts 才能收获这满满的快乐。

有人问,这个图标的代码该去哪找呢?

在这里:https://www.nerdfonts.com/cheat-sheet

这是 Nerd Fonts 能够支持的所有图标,可以直接使用关键字进行搜索。

比如,我想修改 Git 的图标:

img

找到喜欢的图标之后,右下角的 f113 就是这个图标的值,只需要这样就了:

POWERLEVEL9K_VCS_GIT_GITHUB_ICON=$'\uf113'

快造作起来~

好用到极致的插件

colorls

Color LS 是一个使用颜色和图标对 ls 输出进行着色的 Ruby 脚本。 这是一个文件目录美化插件,如图所示:

img

gem install colorls

然后执行 colorls 就好了,你也可以设置 alias 更高效一点:

alias lc='colorls -lA --sd'
alias lcd='colorls -d'
alias lcdt='colorls -d --tree'
alias lcad='colorls -lA -d'
alias lcat='colorls -lA --sd --tree'

设置了别名之后,就像我一样,输入 lc 就好了。

  • autojump 插件

autojump 插件会记录你所有的访问记录,不同单独配置,直接访问即可。

安装
brew update
brew install autojump
配置

打开 ~/.zshrc 加一行代码:

[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh

然后就是 source 一下就生效了。

使用

使用 j 命令就可以执行 auto-jump,比如 j articles

img

前提是你访问过 articles 目录,也就是你得让它记住。

  • zsh-autosuggestions

这个插件的作用很简单,就是像它名字一样,会在你输入命令的时候提示并且自动完成:

img

git clone https://gitee.com/qiushaocloud/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
#git clone https://github.com/qiushaocloud/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

在 ~/.zshrc 插件处配置 zsh-autosuggestions,具体看下面的完整配置

  • 安装 zsh-syntax-highlighting

插件功能:这个包为shell zsh提供语法突出显示。它允许高亮显示在zsh提示符下输入到交互式终端的命令。这有助于在运行命令之前检查它们,特别是在捕获语法错误方面。
例:在你输入某个命令时,如果该命令不存在,那么它显示为红色;否则,它会变成绿色。

git clone https://gitee.com/qiushaocloud/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
#git clone https://github.com/qiushaocloud/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

在 ~/.zshrc 插件处配置 zsh-syntax-highlighting,具体看下面的完整配置

完整 ~/.zshrc 配置

# Prompts
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0C0'
#POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0C0'
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0C2'
#POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0C2'
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_writable vcs virtualenv)
#POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_time ip)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
POWERLEVEL9K_SHORTEN_DELIMITER=..
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=$'\n'
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="\uF460%F{073}\uF460%F{109}\uF460%f "
export ZSH="/Users/qiushao/.oh-my-zsh"
POWERLEVEL9K_MODE='nerdfont-complete'
ZSH_THEME="powerlevel10k/powerlevel10k"
export UPDATE_ZSH_DAYS=13
HIST_STAMPS="yyyy/mm/dd"
plugins=(
    git
    colored-man-pages
    colorize
    github
    brew
#   osx
    docker
    docker-compose
    autojump
    zsh-autosuggestions
    zsh-syntax-highlighting
    autopep8
    python
)

source $ZSH/oh-my-zsh.sh

[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh

alias zshconfig="vim ~/.zshrc"
alias vimconfig="vim ~/.vimrc"
alias grep='grep --color=auto'
alias lc='colorls -lA --sd'
alias lcd='colorls -d'
alias lcdt='colorls -d --tree'
alias lcad='colorls -lA -d'
alias lcat='colorls -lA --sd --tree'

iTerm2 快捷命令

命令说明
command + t新建标签
command + w关闭标签
command + 数字 / command + 左右方向键切换标签
command + enter切换全屏
command + f查找
command + d垂直分屏
command + shift + d水平分屏
command + ;查看历史命令
command + shift + h查看剪贴板历史
ctrl + u清除当前行
ctrl + l / command + r清屏
ctrl + a到行首
ctrl + e到行尾
ctrl + f/b前进后退 (相当于左右方向键)
ctrl + p上一条命令
ctrl + r搜索命令历史
ctrl + d删除当前光标的字符
ctrl + h删除光标之前的字符
ctrl + w删除光标之前的单词
ctrl + k删除到文本末尾
ctrl + t交换光标处文本
Command + /查看当前终端中光标的位置

iTerm2 特殊技巧

选中即复制

iTerm2 有 2 种好用的选中即复制模式.

  • 一种是用鼠标, 在 iTerm2 中, 选中某个路径或者某个词汇, 那么, iTerm2 就自动复制了.
  • 另一种是无鼠标模式, command+f, 弹出 iTerm2 的查找模式, 输入要查找并复制的内容的前几个字母, 确认找到的是自己的内容之后, 输入 tab, 查找窗口将自动变化内容, 并将其复制. 如果输入的是 shift+tab, 则自动将查找内容的左边选中并复制.

智能选中和打开

双击选中, 三击选中整行, 四击智能选中

选取某一部分, 按住 Shift, 再点击某处, 可以选取整个矩形内的文本(类似 Windows 下按住 Shift 可以批量选取图标)

按住 ⌘ 键

  1. 可以拖拽选中的字符串;

  2. 点击 url: 调用默认浏览器访问该网址;

  3. 点击文件: 调用默认程序打开文件;

  4. 如果文件名是 filename:42, 且默认文本编辑器是 MacVim 将会直接打开到这一行;

  5. 点击文件夹: 在 finder 中打开该文件夹;

  6. 同时按住 opt 键, 可以以矩形选中.

在 Finder 里打开 iTerm2 并定位到当前目录

安装 iTerm 后, 会在系统设置的服务中自动生成两条服务, 如下图一:

img

在文件夹-右键-服务中可以找到:

img

这样, 只要点击这个服务就可以在 iTerm 中打开当前路径

为了避免每次都要右键选择服务, 可以为这个服务设置一个快捷键. 如上图一所示, 我设置的快捷键是 Ctrl + Opt + i , 这样只需要选中文件夹, 再执行快捷键, 就可以在 iTerm 中打开当前路径

注意事项:

  1. 这个服务必须选中文件夹或文件才能执行. 选中文件夹会在 iTerm 中打开该文件夹的路径; 选中文件, 会打开该文件所在的文件夹的路径

  2. 快捷键在重启系统或 Finder 后, 需要手动激活才能生效. 手动激活方法:

    img

    点击一下需要激活的服务即可

0

评论区