Mac终端改造计划

Mac终端(Terminal)凭借Unix特性让用户爱不释手,但作为程序员们频繁使用的软件,其默认界面的文字阅读常令人感到吃力。我将借助oh-my-zsh对其进行界面上的美化,让Terminal更加美观易读。

未改造之前的Terminal

Figure 1. 原本的Terminal界面

0. 准备:安装Homebrew

后续的部分插件安装需要用到homebrew,所以可以提前安装。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果你的macOS版本早于Catalina,你需要手动安装zsh:

1
2
3
4
# 安装 zsh
brew install zsh
# 设置zsh为你的默认shell
chsh -s /usr/local/bin/zsh

1. 配置Mac终端主题

  1. OSX主题的项目主页 里面选择自己喜欢的主题;
  2. 把项目Clone或者Download下来;
  3. themes/ 文件夹下,双击相应的*.terminal 文件。一个对应主题的终端窗口将会弹出;
  4. 将当前主题设置为默认:菜单里找到 Shell -> Use Settings as DefaultShell -> 将设置用作默认设置

2. 安装 oh-my-zsh

参考 Oh My Zsh 主页。Oh My Zsh 是一个令人愉快的、开源的、社区驱动的管理zsh配置的框架,安装十分简单,在Mac终端下输入如下代码即可。

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

3. 安装 oh-my-zsh 主题

如果不想鼓捣第三方主题,oh-my-zsh内置的主题其实也完全足够。只需要:

  1. 内置主题列表寻找你想要的主题;
  2. ~/.zshrc配置文件里设置ZSH_THEME为你想要的主题名称;如果你不想使用任何内置主题,也可以把这个字段设置为空:ZSH_THEME=""
  3. 激活设置source ~/.zshrc

当然,如果想要安装第三方主题,也可以在 这里 查看。

4. 安装oh-my-zsh插件

Oh-my-zsh提供了丰富的插件,你可以通过查看Github上地 plugins目录或者 wiki来获知哪些插件是可用的。除了许多自带的插件可以直接在~/.zshrc 文件的 plugins字段按如下方式使用,也可以便捷地安装其他的插件。下面列举5个插件,更多地插件可以自行寻找。

1
2
3
4
5
# ~/.zshrc:
plugins=(
git
zsh-syntax-highlighting
)

git

自带插件。可以使用缩写命令, 比如 gaa -> git add --all, 通过alias | grep git查看所有支持缩写命令。直接按上面的方式加入plugins字段。

extract

自带插件。不用再使用复杂的tar来解压。直接按上面的方式加入plugins字段。

sublime

自带插件。可以使用sublime text打开文件/文件夹,用 st 指令直接打开sublime text (前提是已经安装),用 st + 文件/文件夹 可以用sublime打开指定文件夹 。直接按上面的方式加入plugins字段。

autojump

非自带插件。使用j命令直接快速进入某个目录, 比如 j Downloads -> cd ~/Downloads

brew install autojump 安装之后,按照提示在~/.zshrc配置文件添加:

1
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh

zsh-syntax-highlighting

非自带插件。命令高亮,让命令五彩缤纷。

brew install zsh-syntax-highlighting 完成安装。按照安装完成后的提示,在~/.zshrc文件中进行相应的配置。

zsh-autosuggestions

非自带插件。输入时按右方向键→自动补全命令。

brew install zsh-autosuggestions 完成安装。按照安装完成后的提示,在~/.zshrc文件中进行相应的配置。

5. 完成

至此, 你应该可以拥有一个美观易用的terminal了。开始coding吧!

image-20201221150157035

Figure 2. 配置之后的Terminal界面

(Optional) zsh安装后的conda使用:报错与解决

在安装完zsh,开始要使用原本环境中conda相关指令的时候出现错误,以下是错误内容和相应的解决方案。

  1. zsh:command not find:conda

    • 首先检查是否安装了conda。在anaconda安装的文件夹下的bin文件夹查看是否有conda指令,没有的话就是尚未安装。

    • 如果已经安装了conda,但是仍然报这个错,应该是因为环境变量配置文件没有更新。对于zsh来说,配置文件是 ~/.zshrc。

      简单来说.zshrc是linux文件夹的一个配置文件,这个文件主要保存个人的一些个性化设置,比如命名别名、路径等。

    • vi ~/.zshrc 打开配置文件。

    • 在文件末尾加入一行export PATH=/path/to/anaconda/bin:$PATH 。注意这里的路径需要改成自己电脑上的anaconda的路径。比如我的电脑上装的是miniconda3,路径是 /Users/bing/miniconda3/,那么这一句就应该是export PATH=/Users/bing/miniconda3/bin:$PATH。添加完成后保存退出。

    • source ~/.zshrc 使配置文件的修改立即生效。

    • 再次查看conda指令,输入conda --version,如果可以正常显示版本号,说明问题已经解决。

  2. CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

    解决:用source activate 重新激活一下activate,这时候当前环境会变更到(base),说明activate指令可以正常运行了。

(Optional) zsh自定义快捷指令

平时使用terminal的时候,我们输入很长的指令往往会感到繁琐头疼。我们可以通过修改zshrc文件来设置快捷指令。

比如想要用安装的Typora软件来打开某个Markdown文件,我们需要命令行输入:

1
open -a "Typora" filename.md

前摇过长,不能忍。

要实现类似 st filename.md 这种用Sublime Text快捷打开文件的操作,我们需要向~/.zshrc文件添加一行alias指令替换:

1
2
3
4
# 把 tp 指定为 open -a "Typora",并添加到 ~/.zshrc 文件末尾
echo "alias tp="open -a "Typora" " " >> ~/.zshrc
# 执行立即生效
source ~/.zshrc

然后试试

1
tp filename.md	

可以发现已经可以快捷打开某文件。同理可以自行设置其他的快捷指令。:-)

Reference

  1. Oh My Zsh - 官网
  2. Oh My Zsh - Github主页
  3. 程序员的Mac终端(oh-my-zsh)终极美化及必备插件推荐 | Tony Xu 博客

Mac终端改造计划
http://bingcs.com/2020/12/21/macTerminalRebuild/
Author
Bing
Posted on
December 21, 2020
Licensed under