Строка состояния zsh vi mode - PullRequest
       32

Строка состояния zsh vi mode

15 голосов
/ 02 сентября 2010

Есть ли способ в zsh или bash иметь строку состояния?например, в VI он сообщит, что вы находитесь в режиме вставки с - INSERT -

Есть ли эквивалент для командной строки?

1 Ответ

20 голосов
/ 25 сентября 2010

На этот вопрос уже ответили Суперпользователь и Unix Stack Exchange . Для полноты переполнения стека:

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]; }
...