Non sono sicuro che si può fare questo nel prompt per sé, ma credo che un cursore l'indicatore forma/colore è almeno altrettanto utile.
Il seguente setup fornisce a un cursore quadrato, verde, a blocchi in modalità normale e un cursore di sottolineatura grigio, piatto, grigio in modalità di inserimento. Potrebbe esserci un modo per farlo in bash, ma ho funzionato in Zsh, quindi lo condividerò. Capita di essere in URxvt, ma dovrebbe funzionare anche in xterm. In ~/.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
Risorse: https://bbs.archlinux.org/viewtopic.php?id=95078 E https://unix.stackexchange.com/questions/115009/how-to-change-the-cursor-theme-in-cli
EDIT: ho postato un comprehensive guide per ottenere questo lavoro in un combo di vim, zsh, tmux e urxvt.
fonte
2015-06-22 20:17:15
Disabilitare la modalità vi e utilizzare '' quando è effettivamente necessario modificare qualcosa. –
romainl
È possibile utilizzare l'output da 'bind -v' per trovare la mappa dei tasti corrente. È possibile mappare l'inserimento/lasciare collegamenti degli insiemi per impostare una variabile di shell/ecc. in modo appropriato ma non sono sicuro di dove mostrereste quel valore in quel punto. (Il prompt non funziona quindi dovrebbe essere in qualche luogo più liberamente aggiornabile ... a meno che tu non voglia iniziare a giocare con le dimensioni dei prompt e spostare il cursore per sovrascrivere una stringa in un punto specifico, ecc.) –
I trovato questa pagina che fa quello che vuoi: http://www.snip2code.com/Snippet/205517/Display-Vim-mode-in-Bash-prompt - richiede bash 4.3 –