fish_vi_cursor: add new variable for external cursor mode (#9565)

* add new variable for external cursor mode

* fix backwards compatibility

* add documentation

* document change in changelog

(cherry picked from commit f5506803d7)
This commit is contained in:
Quinten Roets 2023-03-14 05:50:20 -04:00 committed by David Adam
parent 6295e32f25
commit 95c3a4045b
3 changed files with 8 additions and 1 deletions

View file

@ -47,6 +47,7 @@ Interactive improvements
- The ``repaint-mode`` binding will now only move the cursor if there is repainting to be done. This fixes alt+something bindings in vi-mode (:issue:`7910`).
- A new ``clear-screen`` bind function is used for :kbd:`Alt`\ +\ :kbd:`l` by default. This clears the screen and repaints the existing prompt at first,
so it eliminates visible flicker unless the terminal is very slow (:issue:`10044`).
- A new variable, :envvar:`fish_cursor_external`, can be used to specify to cursor shape when a command is launched. When unspecified, the value defaults to the value of :envvar:`fish_cursor_default` (:issue:`4656`).
Improved prompts
^^^^^^^^^^^^^^^^

View file

@ -421,6 +421,9 @@ The ``fish_vi_cursor`` function will be used to change the cursor's shape depend
# Set the replace mode cursors to an underscore
set fish_cursor_replace_one underscore
set fish_cursor_replace underscore
# Set the external cursor to a line. The external cursor appears when a command is started.
# The cursor shape takes the value of fish_cursor_default when fish_cursor_external is not specified.
set fish_cursor_external line
# The following variable can be used to configure cursor shape in
# visual mode, but due to fish_cursor_default, is redundant here
set fish_cursor_visual block

View file

@ -92,7 +92,10 @@ function fish_vi_cursor -d 'Set cursor shape for different vi modes'
echo "
function fish_vi_cursor_handle_preexec --on-event fish_preexec
set -l varname fish_cursor_default
set -l varname fish_cursor_external
if not set -q \$varname
set varname fish_cursor_default
end
if not set -q \$varname
set varname fish_cursor_unknown
end