用oh my zsh & powerlevel10k打造个性化舒适终端

前言

工欲善其事,必先利其器。学生时代,一拿到书就先包上漂亮的书皮,准备学习前先拿出一堆自己觉得可能用的笔的往往是学习一般的学生;而将这个习惯延续至现在就演变成为,好好提升技术和钻研科研之前先把各种工具整的好看且舒适。(功能方面,主要实现了代码高亮和代码补全)

先上预览图:

terminal效果图

iterm2效果图

前情提要:

  • terminal本身就可以在偏好设置里修改主题、字体、光标等,我之前选择的是homebrew;
  • 默认可以科学上网;

  • 下面的所有操作首先先默认已经安装好了git;

  • iterm2可以安装也可以不安装,下面会展开讲。

安装oh my zsh

首先需要切换成zsh:

1
chsh -s /bin/zsh

当然,以后如果需要的话也可以切换回bash:

1
chsh -s /bin/bash

安装方式有两种,可以使用curl或wget。

  • curl安装方式:
1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • wget安装方式:
1
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

另外附上oh-my-zsh开源地址

安装命令补全插件

这是oh my zsh的一个插件,执行脚本安装。

1
2
cd ~/.oh-my-zsh/custom/plugins/
git clone https://github.com/zsh-users/zsh-autosuggestions

这时我们再次打开zshrc文件进行编辑。

1
vi ~/.zshrc

找到plugins,此时plugins中应该已经有了git,我们需要把代码补全zsh-autosuggestions也加上:

image-20210420192318838

加好后执行命令使修改生效:

1
source ~/.zshrc

另外附上代码补全插件的开源地址)

安装代码高亮插件

我们的口令是:代码可以不写,高亮得先整好!

和上面代码补全插件一样的安装方式,执行脚本安装,而后打开zshrc文件进行编辑。

1
2
3
cd ~/.oh-my-zsh/custom/plugins/
git clone https://github.com/zsh-users/zsh-autosuggestions
vi ~/.zshrc

找到plugins,此时plugins中应该已经有了git,我们需要把代码高亮zsh-syntax-hignlighting也加上。

注意:代码高亮插件一定要是在最后一行。

image-20210420193412909

安装喜欢的主题

其实完成到这里,已经可以更好地使用terminal了!但是如果想要让你的终端更好看的话,可以安装喜欢的主题和字体~

安装agnoster主题

agnoster主题的效果图如下:

agnoster主题

为了正确显示以上效果,需要安装powerline和power fonts。

安装powerline

Powerline使用几种特殊的字形来获得箭头效果,并为开发人员提供一些自定义符号。这需要在系统中安装符号字体或修补字体。使用过的应用程序(例如终端仿真器)也必须配置为使用修补字体。

Powerline官网

安装powerline的指令:

1
pip install powerline-status --user

安装Power Fonts

将项目git clone至本地,然后执行源码中的install.sh来安装字体库。

首先在你习惯的位置新建一个文件夹,如:~/opensource/

1
2
3
4
5
6
7
8
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

安装好字体库之后,我们来设置terminal的字体,具体的操作是终端 -> 偏好设置 -> 描述文件 -> 文本 -> 字体。找到Meslo LG字体。有L、M、S可选。

备注:如果是iterm2则为:iTerm2 -> Preferences -> Profiles -> Text,在Font区域选中Change Font,然后更换字体。