aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/fish_vi_cursor.fish
diff options
context:
space:
mode:
authorGravatar Maxim Gonchar <gmaxfl@gmail.com>2014-01-20 16:47:13 +0400
committerGravatar Maxim Gonchar <gmaxfl@gmail.com>2014-01-20 16:47:13 +0400
commit35919000709c00274f2fbb56db2f2924585edd05 (patch)
tree91ca0debe63927dce45bc7a9628da40df3c1a081 /share/functions/fish_vi_cursor.fish
parent44c6fa68cfae06337801da42e273eeee5ef90a67 (diff)
More clear way of setting cursor shape
Diffstat (limited to 'share/functions/fish_vi_cursor.fish')
-rw-r--r--share/functions/fish_vi_cursor.fish78
1 files changed, 25 insertions, 53 deletions
diff --git a/share/functions/fish_vi_cursor.fish b/share/functions/fish_vi_cursor.fish
index e3dae47a..141bd2f5 100644
--- a/share/functions/fish_vi_cursor.fish
+++ b/share/functions/fish_vi_cursor.fish
@@ -1,59 +1,31 @@
function fish_vi_cursor -d 'Set cursor shape for different vi modes'
- set -l terminal $argv[1]
- set -q terminal[1]; or set terminal auto
+ set -l terminal $argv[1]
+ set -q terminal[1]; or set terminal auto
- switch "$terminal"
- case auto
- if set -q KONSOLE_PROFILE_NAME
- set terminal konsole
- else if set -q XTERM_LOCALE
- set terminal xterm
- else
- #echo Not found
- return 1
+ set fcn
+ switch "$terminal"
+ case auto
+ if set -q KONSOLE_PROFILE_NAME
+ set fcn __fish_cursor_konsole
+ else if set -q XTERM_LOCALE
+ set fcn __fish_cursor_xterm
+ else
+ return 1
+ end
end
- end
- set -l command
- set -l start
- set -l end
- set -l shape_block
- set -l shape_line
- set -l shape_underline
- switch "$terminal"
- case konsole iterm
- set command echo -en
- set start "\e]50;"
- set end "\x7"
- set shape_block 'CursorShape=0'
- set shape_line 'CursorShape=1'
- set shape_underline 'CursorShape=2'
- case xterm
- set command echo -en
- set start '\e['
- set end ' q'
- set shape_block '2'
- set shape_underline '4'
- set shape_line '6'
- end
- if not set -q command[1]
- #echo not found
- return 1
- end
- set -g fish_cursor_insert $start$shape_line$end
- set -g fish_cursor_default $start$shape_block$end
- set -g fish_cursor_other $start$shape_block$end
+ set -g fish_cursor_insert line
+ set -g fish_cursor_default block
+ set -g fish_cursor_unknown block blink
- echo "
- function fish_vi_cursor_handle --on-variable fish_bind_mode
- switch \$fish_bind_mode
- case insert
- $command \$fish_cursor_insert
- case default
- $command \$fish_cursor_default
- case '*'
- $command \$fish_cursor_other
- end
- end
- " | source
+ echo "
+ function fish_cursor_vi_handle --on-variable fish_bind_mode
+ set -l varname fish_cursor_\$fish_bind_mode
+ if not set -q \$varname
+ set varname fish_cursor_unknown
+ end
+ #echo \$varname \$\$varname
+ $fcn \$\$varname
+ end
+ " | source
end