bash - zsh vi 模式状态行

标签 bash vi zsh

在 zsh 或 bash 中有没有办法拥有状态行?例如在 VI 中,它会让您知道您处于插入模式 -- 插入 --

是否有等效的命令行?

最佳答案

这已在 Super User 得到解答和 Unix Stack Exchange .为了 Stack Overflow 的完整性:

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

如果您希望指标位于当前行下方而不是右侧,来自 Unix Stack Exchange :

terminfo_down_sc=$terminfo[cud1]$terminfo[cuu1]$terminfo[sc]$terminfo[cud1]
function zle-line-init zle-keymap-select {
    PS1_2="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}"
    PS1="%{$terminfo_down_sc$PS1_2$terminfo[rc]%}%~ %# "
    zle reset-prompt
}
preexec () { print -rn -- $terminfo[el]; }

关于bash - zsh vi 模式状态行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622943/

相关文章:

android - 使用 Flutter 接受 Android 许可证,无需手动确认

bash - shell脚本: Is there a way to use variable as output instead of a file for executable?

regex - 仅打印配置文件中特定部分的行

python - 如何解决 subprocess.run() 中的 'AttributeError: ' 模块“对象没有属性 'run'”

android - 如何在 Remix OS 的终端仿真器中保存和退出 Vi

python - 如何在 Vim 中粘贴时保持制表符

Linux:VI - 当有人说 "Command mode key sequence"时,他们在说什么?

linux - 如何在 bash 中传递自定义脚本?

linux - 自动挂载加密分区

zsh - zsh别名->功能?