在bash -o vi模式中是否有一种方法可以让提示符指示正常/命令模式等

时间:2015-06-22 16:44:19

标签: bash vim

我一直在bash中使用vi模式。如果我处于命令模式或插入模式,那么直观地看是非常有用的。

例如,当我想要搜索历史记录时,在任一模式下键入/my_search看起来都是一样的,直到我按 Enter ,到那时为时已晚。我发现自己按下 Esc 远远超过必要,只是为了确保我处于正确的模式....

2 个答案:

答案 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=95078https://unix.stackexchange.com/questions/115009/how-to-change-the-cursor-theme-in-cli

编辑:我发布了一个comprehensive guide来使用vim,zsh,tmux和urxvt的组合工作。