歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 給 Zsh 的 Vi 模式添加指示符

給 Zsh 的 Vi 模式添加指示符

日期:2017/2/28 14:01:21   编辑:Linux教程

用久了 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

Copyright © Linux教程網 All Rights Reserved