aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/fish_vi_prompt.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/functions/fish_vi_prompt.fish')
-rw-r--r--share/functions/fish_vi_prompt.fish51
1 files changed, 51 insertions, 0 deletions
diff --git a/share/functions/fish_vi_prompt.fish b/share/functions/fish_vi_prompt.fish
new file mode 100644
index 00000000..420ea3cf
--- /dev/null
+++ b/share/functions/fish_vi_prompt.fish
@@ -0,0 +1,51 @@
+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