diff options
Diffstat (limited to 'share/functions')
-rw-r--r-- | share/functions/fish_mode_prompt.fish | 19 | ||||
-rw-r--r-- | share/functions/fish_vi_mode.fish | 8 | ||||
-rw-r--r-- | share/functions/fish_vi_prompt.fish | 51 |
3 files changed, 24 insertions, 54 deletions
diff --git a/share/functions/fish_mode_prompt.fish b/share/functions/fish_mode_prompt.fish new file mode 100644 index 00000000..30521679 --- /dev/null +++ b/share/functions/fish_mode_prompt.fish @@ -0,0 +1,19 @@ +# The fish_mode_prompt function is prepended to the prompt +function fish_mode_prompt --description "Displays the current mode" + # Do nothing if not in vi mode + if set -q __fish_vi_mode + switch $fish_bind_mode + case default + set_color --bold --background red white + echo '[N]' + case insert + set_color --bold --background green white + echo '[I]' + case visual + set_color --bold --background magenta white + echo '[V]' + end + set_color normal + echo -n ' ' + end +end diff --git a/share/functions/fish_vi_mode.fish b/share/functions/fish_vi_mode.fish index e431d0e4..b4fbe63a 100644 --- a/share/functions/fish_vi_mode.fish +++ b/share/functions/fish_vi_mode.fish @@ -1,6 +1,8 @@ function fish_vi_mode - function fish_prompt - fish_vi_prompt - end + # Set the __fish_vi_mode variable + # This triggers fish_mode_prompt to output the mode indicator + set -g __fish_vi_mode 1 + + # Turn on vi keybindings set -g fish_key_bindings fish_vi_key_bindings end diff --git a/share/functions/fish_vi_prompt.fish b/share/functions/fish_vi_prompt.fish deleted file mode 100644 index 420ea3cf..00000000 --- a/share/functions/fish_vi_prompt.fish +++ /dev/null @@ -1,51 +0,0 @@ -function fish_vi_prompt_cm --description "Displays the current mode" - echo -n " " - switch $fish_bind_mode - case default - set_color --bold --background red white - echo "[N]" - case insert - set_color --bold --background green white - echo "[I]" - case visual - set_color --bold --background magenta white - echo "[V]" - end - set_color normal -end - -function fish_vi_prompt --description "Simple vi prompt" - - # Just calculate these once, to save a few cycles when displaying the prompt - if not set -q __fish_prompt_hostname - set -g __fish_prompt_hostname (hostname|cut -d . -f 1) - end - - if not set -q __fish_prompt_normal - set -g __fish_prompt_normal (set_color normal) - end - - switch $USER - - case root toor - - if not set -q __fish_prompt_cwd - if set -q fish_color_cwd_root - set -g __fish_prompt_cwd (set_color $fish_color_cwd_root) - else - set -g __fish_prompt_cwd (set_color $fish_color_cwd) - end - end - - echo -n -s "$USER" @ "$__fish_prompt_hostname" ' ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" (fish_vi_prompt_cm) '# ' - - case '*' - - if not set -q __fish_prompt_cwd - set -g __fish_prompt_cwd (set_color $fish_color_cwd) - end - - echo -n -s "$USER" @ "$__fish_prompt_hostname" ' ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" (fish_vi_prompt_cm) '> ' - - end -end |