首頁 > 軟體

給 Zsh 的 Vi 模式新增指示符

2020-06-16 17:59:41

用久了 zsh 的 Vi 命令列編輯模式 , 有時候會恍惚自己到底在哪個模式 。 大家都知道 ,Vim 的狀態行可以顯示模式的指示 , 以此來說明是正常模式還是插入模式 。 如果我們能把 Vim 的這個特性移植到 zsh 身上 , 那就完美了 。

用 man zshzle 看了看文件 , 發現實現起來並不難 , 只需在 .zshrc 中新增如下內容即可 :

VIMODE='-- INSERT --'
function zle-line-init zle-keymap-select {
    VIMODE="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}"
    zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select

RPROMPT='%{$fg[green]%}${VIMODE}%{$reset_color%}'

稍微解釋一下 , 首先我們設定 VIMODE 變數儲存預設狀態 ( 插入 ), 接著利用 zle 提供的兩個 widgets 來對變數內容進行替換 , 並重繪提示符 。 然後執行 zle widgets, 並設定 RPROMPT 使指示符顯示在右邊 。 效果如下圖 。

Zsh安裝設定指南 http://www.linuxidc.com/Linux/2013-09/90377.htm

使用 Zsh 的九個理由 http://www.linuxidc.com/Linux/2013-05/84191.htm

Zsh使用心得三則 http://www.linuxidc.com/Linux/2012-08/67735.htm

Linux下安裝終極Shell Zsh http://www.linuxidc.com/Linux/2012-08/67734.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-05/118001.htm


IT145.com E-mail:sddin#qq.com