Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
how to update RPROMPT each time a key is pressed in zsh
In zsh, I want to create a function that updates RPROMPT
when I have typed cd ..
into the terminal. As a starting point, I know I can, for example, add the +
character to my RBUFFER
when I have typed cd ..
by adding the following to my .zshrc
:
function self-insert() {
zle .self-insert
if [[ $BUFFER == "cd .." ]]; then
RBUFFER+="+"
fi
}
zle -N self-insert
I have tried modifying this command to change RPROMPT
instead of RBUFFER
as follows:
function self-insert() {
zle .self-insert
if [[ $BUFFER == "cd .." ]]; then
RPROMPT="ABC"
zle reset-prompt
fi
}
zle -N self-insert
The effect of this command is that my RPROMPT
gets set to ABC
, but only after I have executed the command, rather than once I have typed the command (as in the first example). I have also tried moving the zle reset-prompt
command to different places in the function, but that doesn't seem to help.
0 comment threads