我一直在bash中使用vi模式。如果我处于命令模式或插入模式,那么直观地看是非常有用的。
例如,当我想要搜索历史记录时,在任一模式下键入/my_search
看起来都是一样的,直到我按 Enter ,到那时为时已晚。我发现自己按下 Esc 远远超过必要,只是为了确保我处于正确的模式....
答案 0 :(得分:2)
您可以在readline使用的.inputrc
文件中对此进行配置。
set show-mode-in-prompt
对我来说,这会在插入模式下绘制+
,在普通模式下绘制:
,在搜索模式下不绘制字符。
(你也可以在这里使用set editing-mode vi
启用vi模式,这将为所有使用readline的程序启用它,例如python和ruby解释器,而不仅仅是bash)。
答案 1 :(得分:1)
我不确定你能否在提示中做到这一点,但我认为光标形状/颜色指示器至少是有用的。
以下设置在正常模式下提供正方形绿色块光标,在插入模式下提供紧凑,平坦,灰色的下划线光标。可能有一种方法可以在bash中完成它,但我让它在Zsh中工作,所以我将分享这个。它碰巧在URxvt中,但也应该在xterm中工作。在~/.zshrc
:
# Modal cursor color for vi's insert/normal modes.
zle-keymap-select () {
if [ $KEYMAP = vicmd ]; then
echo -ne "\033]12;Green\007"
echo -ne "\033[2 q"
else
echo -ne "\033]12;Grey\007"
echo -ne "\033[4 q"
fi
}
zle -N zle-keymap-select
zle-line-init () {
zle -K viins
echo -ne "\033]12;Gray\007"
echo -ne "\033[4 q"
}
zle -N zle-line-init
资源:https://bbs.archlinux.org/viewtopic.php?id=95078和https://unix.stackexchange.com/questions/115009/how-to-change-the-cursor-theme-in-cli
编辑:我发布了一个comprehensive guide来使用vim,zsh,tmux和urxvt的组合工作。