mirror of
https://git.decapod.one/brethil/dotfiles
synced 2024-11-21 19:11:30 +01:00
zsh/tmux: add prompt marker/add copy-mode shortcuts
tmux allows moving between shell prompts when the prompt is marked with the OSC 133 escape sequence (`\033[133;A\033\\]`). This is added to the zsh prompt and `next-prompt` and `previous-prompt` are bound to `n` and `p` in tmux copy mode.
This commit is contained in:
parent
8a72eaff6f
commit
5ad7209f8f
|
@ -81,13 +81,18 @@ function __prompt_too_long(){
|
|||
# prints a newline if less than $COLUMNS/2 characters remain to the right margin, see end of `man zshmisc`
|
||||
echo "%-$((COLUMNS/2))(l..\n)"
|
||||
}
|
||||
function __print_prompt_marker(){
|
||||
# prints the escape sequence that tmux interprets as prompt start (see next-prompt/previous-prompt in `man tmux`)
|
||||
printf '\033]133;A\033\\'
|
||||
}
|
||||
|
||||
## oh-my-zsh vi-mode plugins indicators:
|
||||
export MODE_INDICATOR="[%B%K{red}nav%k%b]" # red background
|
||||
export INSERT_MODE_INDICATOR="[%B%K{28}ins%k%b]" # green background
|
||||
|
||||
# put it all together
|
||||
PROMPT='$(__virtualenv_info)'"${user_prompt}${path_prompt}${git_prompt}${job_prompt}${shlvl_prompt}$(__prompt_too_long)${prompt_with_previous_return_status}"
|
||||
|
||||
# Right prompt is just return code and time
|
||||
## put it all together
|
||||
# Note: wrapping __print_prompt_marker in extra %{...%} works around an issue with zsh autosuggestions with escape sequences
|
||||
# see https://github.com/zsh-users/zsh-autosuggestions/issues/570 for more information
|
||||
PROMPT='$(__virtualenv_info)'"${user_prompt}${path_prompt}${git_prompt}${job_prompt}${shlvl_prompt}$(__prompt_too_long)${prompt_with_previous_return_status}%{$(__print_prompt_marker)%} "
|
||||
# right prompt indicator: return code, vi mode prompt info and current time
|
||||
RPS1="${return_code_RPS1}"'$(vi_mode_prompt_info)[%*]'
|
||||
|
|
Loading…
Reference in New Issue
Block a user