blob: a22292ac6fe1a9afcb78270e4e57f18ad7990b88 (
plain)
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#
# Vi Mode
#
function __sf_section_vi_mode -d "Display vi mode status"
# ------------------------------------------------------------------------------
# Configuration
# ------------------------------------------------------------------------------
__sf_util_set_default SPACEFISH_VI_MODE_SHOW true
__sf_util_set_default SPACEFISH_VI_MODE_PREFIX " "
__sf_util_set_default SPACEFISH_VI_MODE_SUFFIX $SPACEFISH_PROMPT_DEFAULT_SUFFIX
__sf_util_set_default SPACEFISH_VI_MODE_INSERT [I]
__sf_util_set_default SPACEFISH_VI_MODE_NORMAL [N]
__sf_util_set_default SPACEFISH_VI_MODE_VISUAL [V]
__sf_util_set_default SPACEFISH_VI_MODE_REPLACE_ONE [R]
__sf_util_set_default SPACEFISH_VI_MODE_COLOR white
# ------------------------------------------------------------------------------
# Section
# ------------------------------------------------------------------------------
[ $SPACEFISH_VI_MODE_SHOW = false ]; and return
# Ensure fish_vi_key_bindings or fish_hybrid_key_bindings are used
# Here we are trying to be compatible with default fish_mode_prompt implementation,
# wich handle both "fish_vi_key_bindings" and "fish_hybrid_key_bindings"
[ "$fish_key_bindings" = "fish_vi_key_bindings" ]; or [ "$fish_key_bindings" = "fish_hybrid_key_bindings" ]; or return
# Use `set -l` to define local variables to avoid populating
# the global namespace
set -l vi_mode_symbol
# Check current mode and set vi_mode_symbol based on it
switch $fish_bind_mode
case default
set vi_mode_symbol $SPACEFISH_VI_MODE_NORMAL
case insert
set vi_mode_symbol $SPACEFISH_VI_MODE_INSERT
case replace_one
set vi_mode_symbol $SPACEFISH_VI_MODE_REPLACE_ONE
case visual
set vi_mode_symbol $SPACEFISH_VI_MODE_VISUAL
end
__sf_lib_section \
$SPACEFISH_VI_MODE_COLOR \
$SPACEFISH_VI_MODE_PREFIX \
$vi_mode_symbol \
$SPACEFISH_VI_MODE_SUFFIX
end
|