File: fish_vi_cursor.fish

package info (click to toggle)
fish 4.2.1-3.1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 35,980 kB
  • sloc: python: 6,972; javascript: 1,407; sh: 1,009; xml: 411; ansic: 230; objc: 78; makefile: 20
file content (34 lines) | stat: -rw-r--r-- 1,202 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function fish_vi_cursor -d 'Set cursor shape for different vi modes'
    set -q fish_cursor_unknown
    or set -g fish_cursor_unknown block

    function __fish_vi_cursor --argument-names varname
        if not status is-interactive; and not status is-interactive-read
            return
        end
        if not set -q $varname
            switch $varname
                case fish_cursor_insert
                    __fish_cursor_xterm line
                case fish_cursor_replace_one fish_cursor_replace
                    __fish_cursor_xterm underscore
                case '*'
                    __fish_cursor_xterm $fish_cursor_unknown
            end
            return
        end
        __fish_cursor_xterm $$varname
    end

    function fish_vi_cursor_handle --on-variable fish_bind_mode --on-event fish_postexec --on-event fish_focus_in --on-event fish_read
        __fish_vi_cursor fish_cursor_$fish_bind_mode
    end

    function fish_vi_cursor_handle_preexec --on-event fish_preexec --on-event fish_exit
        set -l varname fish_cursor_external
        if not set -q $varname
            set varname fish_cursor_default
        end
        __fish_vi_cursor $varname
    end
end