aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions
diff options
context:
space:
mode:
Diffstat (limited to 'share/functions')
-rw-r--r--share/functions/fish_mode_prompt.fish19
-rw-r--r--share/functions/fish_vi_mode.fish8
-rw-r--r--share/functions/fish_vi_prompt.fish51
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