2021-05-12 14:32:11
給 Zsh 的 Vi 模式新增指示符
用久了 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
相關文章