Linux Mint下oh MyZsh
Oh My Zsh 是一款社区驱动的命令行工具,是基于 Zsh 命令行的一个扩展工具集,提供了丰富的扩展功能,如:主题配置,插件机制,内置的便捷操作等,可以给我们一种全新的命令行使用体验。下文对 Oh My Zsh 的安装及配置方法进行总结,只总结最佳的实践。
1. 安装 Oh My Zsh
第一步:安装 Zsh
1 | # 安装 Zsh |
第二步:安装 Oh My Zsh
1 | # 安装 Oh My Zsh |
2. Zsh 的配置
2.1 字体的安装
推荐在终端使用 Powerline 类型的主题,该类型主题可以使用图形表示尽可能多的信息,方便用户的使用。推荐安装用户量最大的 Powerlevel9k。
Powerlevel9k 中需要使用较多的图形符号,字体大多不会自带这些符号,所以需要使用专门的 Powerline 字体。
2.2 主题及字体的配置
安装
该主题可以被 Oh-My-Zsh, Prezto, Antigen, and many others 使用。
使用 Oh-My-Zsh 安装
从 Github 上克隆项目到 Oh-My-Zsh 的主题目录下,一般都在 ~/.oh-my-zsh/theme/
目录。
1 | git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k |
修改 ~/.zshrc
中的 ZSH_THEME
:
1 | ZSH_THEME="powerlevel9k/powerlevel9k" |
然后重新打开终端就变成了 PowerLine 的形式了。但是由于没有安装相应的字体,导致符号显示不完全。
安装 awesome-terminal-fonts
这是一款可以在终端界面显示 awesome 图标的工具。
- 获取该项目
1 | git clone https://github.com/gabrielelana/awesome-terminal-fonts |
- 进入该项目,将
build/
目录里的所有文件拷贝到~/.fonts/
目录(没有就创建一个)下
1 | cp -R build/* ~/.fonts/ |
- 执行以下命令让 freetype2 知道这些字体
1 | fc-cache -fv ~/.fonts |
自定义
config/10-symbols.conf
配置文件里的字体,改成自己喜欢的。当然不改就是默认的。拷贝
config/10-symbols.conf
配置文件到~/.config/fontconfig/conf.d
目录(没有就创建一个)下
1 | cp config/10-symbols.conf ~/.config/fontconfig/conf.d |
- source 所有
.fonts
目录下的字体到你的 shell 启动脚本
1 | source ~/.fonts/*.sh |
至此安装完成,再重启一下终端,效果是不是跟上面一样了。
配置
powerlevel9k 提供了丰富的个性化配置功能。
两行提示符
powerlevel9k 默认只有一行提示符。
如果你想另起一行,在 ~/.zshrc
中加入以下定义即可
1 | POWERLEVEL9K_PROMPT_ON_NEWLINE=true |
如果你想让右边的提示符也显示到下一行,只需在以上基础上再加以下定义即可
1 | POWERLEVEL9K_RPROMPT_ON_NEWLINE=true |
如果你想自定义多行连接的符号,定义以下方式即可
1 | POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="↱" |
命令执行完新加一行
1 | POWERLEVEL9K_PROMPT_ADD_NEWLINE=true |
禁用右边的提示符
1 | POWERLEVEL9K_DISABLE_RPROMPT=true |
浅色主题
1 | POWERLEVEL9K_COLOR_SCHEME='light' |
自定义左边提示符的元素
默认的元素只有提供了 context 、 root_indicator,可添加以下元素
元素 | 介绍 |
---|---|
os_icon | 系统标识 |
battery | 电量 |
context | 用户 |
dir | 路径 |
dir_writable | 目录读写状态 |
load | 加载 |
rspec_stats | 统计 |
status | 状态 |
symfony2_tests | 测试 |
user | 当前用户 |
vcs | 版本控制 |
vi_mode | vi 模式 |
通过以下定义方式添加,例如:
1 | POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon root_indicator dir vcs) |
更多
它的配置还有更多,点击进入 wiki 查看。
进入终端“首选项”,“自定义字体”里选择“meslo lg m dz regular for powerline”这个字体就可以了。
2.3 另一个字体
不推荐安装官方默认的 Powerline Fonts,理由是图形符号不全,符号处会有乱码。推荐安装 Nerd-Fonts 系列字体,因为该系列字体附带有尽可能全的符号,并且更新非常频繁,项目地址在这里。例如直接下载 Ubuntu Font Family 中的 Ubuntu Nerd Font Complete.ttf ,然后直接在Ubuntu下安装。
方法同上,还是先git clone.然后sudo mv 到字体目录,然后font-cache -fv刷新字体。然后终端改字体为Droid Sans Mono Dotted for Powerline
3. 插件配置
3.1 autojump
更快地切换目录,不受当前所在目录的限制。
安装:
1 | sudo apt install autojump |
用法:
1 | # 跳转到目录 |
3.2 fasd
快速访问文件或目录,功能比前一个插件强大。
安装:
1 | sudo apt install fasd |
用法:
1 | alias f='fasd -f' # 文件 |
3.3 zsh-autosuggestions
命令行命令键入时的历史命令建议插件
按照官方文档提示,直接执行如下命令安装:
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions |
3.4 zsh-syntax-highlighting
命令行语法高亮插件
按照官方文档提示,直接执行如下命令安装:
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
3.5 插件最终配置
1 | # autojump 功能弱,fasd 功能强,但是没 autojump 实用 |
4.「.zshrc」文件完整修改
Oh My Zsh 配置文件的完整修改结果,只有对配置文件进行如下修改,才能使上述配置生效。
1 | # 设置字体模式以及配置命令行的主题,语句顺序不能颠倒 |
常用命令
下面总结 Oh My Zsh 配置相关的其他 bash 命令:
1 | # 查看当前所用的 Shell |