aboutsummaryrefslogtreecommitdiffhomepage
path: root/share
diff options
context:
space:
mode:
authorGravatar Kurtis Rader <krader@skepticism.us>2016-04-28 20:53:09 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2016-04-29 15:52:10 -0700
commit54319435f43add1c5001e26ae9b505946f64950d (patch)
treec29dec9cd362f3f522a241c6eb998ef632b69072 /share
parent8e19c82e09671a11aad0265e4352bce4d73cf420 (diff)
clarify fish_vi_mode deprecation warning
Also, correct the Vi mode default escape timeout. I intended it to be 100 ms in my previous change but it ended up 10 ms which is far too short. A 10 ms delay will continue to cause problems for people running fish inside `screen`, `tmux`, or over high latency connections. Cherry-picked from 3e24ae80b3739ded7d4066349fc87d13f2b70727
Diffstat (limited to 'share')
-rw-r--r--share/functions/fish_vi_key_bindings.fish17
-rw-r--r--share/functions/fish_vi_mode.fish10
2 files changed, 15 insertions, 12 deletions
diff --git a/share/functions/fish_vi_key_bindings.fish b/share/functions/fish_vi_key_bindings.fish
index 2518ab74..edff29f8 100644
--- a/share/functions/fish_vi_key_bindings.fish
+++ b/share/functions/fish_vi_key_bindings.fish
@@ -1,10 +1,15 @@
function fish_vi_key_bindings --description 'vi-like key bindings for fish'
- # The default escape timeout is 300ms. But for users of Vi bindings that can
- # be slightly annoying when trying to switch to Vi "normal" mode. Too,
- # vi-mode users are unlikely to use escape-as-meta. So set a much shorter
- # timeout in this case.
- set -q fish_escape_delay_ms
- or set -g fish_escape_delay_ms 10
+ if test "$fish_key_bindings" != "fish_vi_key_bindings"
+ # Allow the user to set the variable universally
+ set -q fish_key_bindings; or set -g fish_key_bindings
+ set fish_key_bindings fish_vi_key_bindings # This triggers the handler, which calls us again and ensures the user_key_bindings are executed
+ return
+ end
+
+ # The default escape timeout is 300ms. But for users of Vi bindings that can be slightly
+ # annoying when trying to switch to Vi "normal" mode. So set a shorter timeout in this case
+ # unless the user has explicitly set the delay.
+ set -q fish_escape_delay_ms; or set -g fish_escape_delay_ms 100
set -l init_mode insert
set -l eol_keys \$ g\$ \e\[F
diff --git a/share/functions/fish_vi_mode.fish b/share/functions/fish_vi_mode.fish
index b4fbe63a..4b54dd00 100644
--- a/share/functions/fish_vi_mode.fish
+++ b/share/functions/fish_vi_mode.fish
@@ -1,8 +1,6 @@
function fish_vi_mode
- # 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
+ echo 'The `fish_vi_mode` function is deprecated.' >&2
+ echo 'Please switch to calling `fish_vi_key_bindings`.' >&2
+ # Turn on vi keybindings
+ set -g fish_key_bindings fish_vi_key_bindings
end