Zsh的简单配置

Zsh (简体中文) - ArchWiki (archlinux.org)

安装

安装zsh(本体)和zsh-completions(补全)两个包

之后运行zsh进行首次运行配置,如果没有,则autoload -Uz zsh-newuser-install与zsh-newuser-install -f。请确保Shell界面大于72*15。设置结束后就可以用zsh启动Zsh了。

将Zsh设为用户的默认Shell

Command-line shell - ArchWiki (archlinux.org)

chsh指令

chsh -s /usr/bin/zsh

对于konsole和yakuake两个终端模拟器,重新启动plasma之后就会自动换到Zsh

设置自动补全:

(设置文件 ~/.zshrc 可以在第一次启动时随提示生成)

autoload -Uz compinit

compinit

如果要设置方向键选择补全*,则添加:

zstyle ':completion:*' menu select

*按tab一下显示可选项,按tab两下则进入选择菜单

如果要启动别名补全,则添加:

setopt completealiases

历史记录设置:

消除历史记录重复项目

setopt HIST_IGNORE_DUPS

按键绑定:

这个网页提供了一些标准例子帮助设置Zsh

Keybindings • [ZshWiki]

首先启动相应配置

if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
    autoload -Uz add-zle-hook-widget
    function zle_application_mode_start { echoti smkx }
    function zle_application_mode_stop { echoti rmkx }
    add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
    add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
fi

这些将确定Zsh运行在应用模式,因为只有这时terminfo才能使用

使用terminfo将按键解释为更加可读的形式:

terminfo(5) — Arch manual pages (archlinux.org)

typeset -g -A key            #建立key数组

key[Up]=”$terminfo[kcuu1]”           #将kcuu1在terminfo中查询的结果赋值到Up
key[Down]=”$terminfo[kcud1]”      #与上面类似

之后将按键与功能绑定。以下例子可以将上下箭头分别绑定到up-line-or-history 和 down-line-or-history

[[ -n “$key[Up]” ]] && bindkey “$key[Up]” up-line-or-history 
[[ -n “$key[Down]” ]] && bindkey “$key[Down]” down-line-or-history

更多的指令见

zshzle(1) — Arch manual pages (archlinux.org)

zshcontrib(1) — Arch manual pages (archlinux.org)

*有一些指令需要使用autoload加载,比如up-line-or-beginning-search和down-line-or-beginning-search(向前搜索历史或上一行),甚至还需要zle -N up-line-or-beginning-search 加载到zle中才能用。但是具体哪些我还没有搞清楚

Prompt设置:

使用oh-my-zsh可以将Zsh设置得更加漂亮的,但Arch只在AUR中提供这个软件包,Manjaro可以直接安装oh-my-zsh。

另外我对于主题的要求不高,只要能提供足够的信息并且比较好看就可以了。

初始化prompt

autoload -Uz promptinit

promptinit

查看prompt中的可用主题及其效果

prompt -p

其中的fade主题我觉得可以,且可以带有参数设置(带blue参数)

prompt fade blue


版权声明:本文为qingtian805原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。