跳过正文
Zsh

Zsh

··
目录

zsh
#

参考来源
#

安装
#

在开始之前,用户可能想看看当前正在使用什么 shell:

$ echo $SHELL
sudo pacman -S zsh

初始配置
#

通过在终端中运行以下命令确保 Zsh 已正确安装:

$ zsh

现在您应该会看到zsh-newuser-install,它将引导您完成一些基本配置。如果您想跳过此步骤,请按q。如果您没有看到它,您可以使用以下命令手动调用它:

$ autoload -Uz zsh-newuser-install 
$ zsh-newuser-install -f

注意:确保您的终端尺寸至少为 72×15,否则zsh-newuser-install将无法运行。

将zsh设置为默认shell
#

要列出所有已安装的 shell,请运行:

$ chsh -l

并将其设置为用户的默认设置:

$ chsh -s /full/path/to/shell

提示:如果替换bash,用户可能需要将一些代码从~/.bashrc移到~/.zshrc(例如提示符和别名)以及从~/.bash_profile移到~/.zprofile(例如启动 X Window System 的代码)。

oh-my-zsh
#

参考来源
#

安装
#

由于我使用arch linux,我使用pacman来管理包,所以我使用AUR仓库来安装oh-my-zsh

AUR地址:

https://aur.archlinux.org/packages/oh-my-zsh-git

除了使用包管理器,也可以使用官方安装脚本进行安装,详见:

更新
#

如果使用包管理器安装的ohmyzsh,只能通过包管理器自己手动更新。

如果使用官方安装脚本安装的ohmyzsh,可以使用官方说明的更新方式

使用oh-my-zsh
#

使用插件
#

你可以在wiki中了解当前可用的插件。

一旦发现想要在 Oh My Zsh 中使用的插件(或多个插件),就需要在.zshrc文件中启用它们。您会在$HOME目录中找到 zshrc 文件。使用您最喜欢的文本编辑器打开它,您会看到一个列出所有要加载的插件的位置。

vi ~/.zshrc

例如,这可能看起来像这样:

plugins=(
  git
  bundler
  dotenv
  macos
  rake
  rbenv
  ruby
)

请注意,插件之间以空格(空格、制表符、换行符……)分隔。请勿在它们之间使用逗号,否则会中断。

另外,每个内置插件都有一个README文件,需要了解的话可以看看。

使用主题
#

你可以在wiki中了解当前可用的主题。

找到想要使用的主题后,您需要编辑~/.zshrc文件。您将在其中看到一个环境变量(全部大写),如下所示:

ZSH_THEME="robbyrussell"

要使用其他主题,只需更改值以匹配所需主题的名称。例如:

ZSH_THEME="agnoster" # (this is one of the fancy ones)
# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster

笔记

您会多次看到 zsh 主题的屏幕截图,并尝试一下,却发现它看起来不一样。

这是因为许多主题需要安装Powerline 字体或Nerd 字体才能正确呈现。如果没有它们,这些主题将呈现奇怪的提示符号。查看常见问题解答了解更多信息。

另外,请注意主题仅控制提示符的外观。这是您在光标前或光标后看到的文本,您将在其中键入命令。主题不控制诸如终端窗口的颜色(称为配色方案)或终端字体之类的内容。这些是您可以在终端仿真器中更改的设置。有关更多信息,请参阅什么是 zsh 主题。

oh-my-zsh常见问题
#

我如何重新加载 zshrc 文件?
#

有两种方式:

  • 重启终端
  • exec zsh

如何重置完成缓存?
#

完成缓存文件(也称为 zcompdump 文件)是启动 zsh 会话时找到的完成函数的缓存。此文件在调用compinit时写入,并在 Oh My Zsh 启动时自动完成。它可以在$ZSH_COMPDUMP找到,通常在您的主目录中,名为.zcompdump-<host>-<zsh-version>

如果该位置已经有一个文件,compinit则将读取它,而不是重新创建它,以获得更好的性能。当某些完成设置发生更改但完成缓存未发生更改时,这有时会造成问题,例如启用插件时。这就是为什么大多数完成问题都是通过重置缓存并重新启动 zsh 会话来解决的。

要重置它,您必须删除它并重新启动 zsh 会话以便再次重新创建它:

# Delete the completion cache
rm "$ZSH_COMPDUMP"
# Restart the zsh session
exec zsh

个人使用的主题和插件
#

主题
#

  • macovsky

插件
#

  • git
  • z

starship
#

安装 starship 包:

sudo pacman -S starship

将以下内容添加到 ~/.zshrc 的末尾:

eval "$(starship init zsh)"

配置:

starship preset nerd-font-symbols -o ~/.config/starship.toml

使提示符中间没有行:

add_newline = false

路径截断设置:

[directory]
# ...
truncation_length = 5

语法高亮和自动建议
#

安装 zsh-syntax-highlighting 和 zsh-autosuggestions 包:

sudo pacman -S zsh-syntax-highlighting zsh-autosuggestions

配置:

~/.zshrc
---------------------------------------------------------------------------------
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
作者
Ask Me Why