mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 05:13:10 +00:00
parent
1cad15b01f
commit
a0fbb8dea7
4 changed files with 25 additions and 6 deletions
|
@ -234,6 +234,20 @@ function __fish_config_interactive -d "Initializations that should be performed
|
||||||
__fish_enable_bracketed_paste
|
__fish_enable_bracketed_paste
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Similarly, enable TMUX's focus reporting when in tmux.
|
||||||
|
# This will be handled by
|
||||||
|
# - The keybindings (reading the sequence and triggering an event)
|
||||||
|
# - Any listeners (like the vi-cursor)
|
||||||
|
if set -q TMUX
|
||||||
|
function __fish_enable_focus --on-event fish_postexec
|
||||||
|
echo \e\[\?1004h
|
||||||
|
end
|
||||||
|
function __fish_disable_focus --on-event fish_preexec
|
||||||
|
echo \e\[\?1004l
|
||||||
|
end
|
||||||
|
__fish_enable_focus
|
||||||
|
end
|
||||||
|
|
||||||
function __fish_winch_handler --on-signal WINCH -d "Repaint screen when window changes size"
|
function __fish_winch_handler --on-signal WINCH -d "Repaint screen when window changes size"
|
||||||
commandline -f repaint >/dev/null 2>/dev/null
|
commandline -f repaint >/dev/null 2>/dev/null
|
||||||
end
|
end
|
||||||
|
|
|
@ -107,6 +107,16 @@ function __fish_shared_key_bindings -d "Bindings shared between emacs and vi mod
|
||||||
bind --preset $argv \ee edit_command_buffer
|
bind --preset $argv \ee edit_command_buffer
|
||||||
bind --preset $argv \ev edit_command_buffer
|
bind --preset $argv \ev edit_command_buffer
|
||||||
|
|
||||||
|
|
||||||
|
# Tmux' focus events.
|
||||||
|
# Exclude paste mode because that should get _everything_ literally.
|
||||||
|
for mode in (bind --list-modes | string match -v paste)
|
||||||
|
# We only need the in-focus event currently (to redraw the vi-cursor).
|
||||||
|
bind -M $mode \e\[I 'emit fish_focus_in'
|
||||||
|
bind -M $mode \e\[O false
|
||||||
|
bind -M $mode \e\[\?1004h false
|
||||||
|
end
|
||||||
|
|
||||||
# Support for "bracketed paste"
|
# Support for "bracketed paste"
|
||||||
# The way it works is that we acknowledge our support by printing
|
# The way it works is that we acknowledge our support by printing
|
||||||
# \e\[?2004h
|
# \e\[?2004h
|
||||||
|
|
|
@ -84,11 +84,6 @@ function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fis
|
||||||
|
|
||||||
bind --preset $argv \ed kill-word
|
bind --preset $argv \ed kill-word
|
||||||
|
|
||||||
# Ignore some known-bad control sequences
|
|
||||||
# https://github.com/fish-shell/fish-shell/issues/1917
|
|
||||||
bind --preset $argv \e\[I 'begin;end'
|
|
||||||
bind --preset $argv \e\[O 'begin;end'
|
|
||||||
|
|
||||||
# term-specific special bindings
|
# term-specific special bindings
|
||||||
switch "$TERM"
|
switch "$TERM"
|
||||||
case 'rxvt*'
|
case 'rxvt*'
|
||||||
|
|
|
@ -107,7 +107,7 @@ function fish_vi_cursor -d 'Set cursor shape for different vi modes'
|
||||||
or set -g fish_cursor_unknown block blink
|
or set -g fish_cursor_unknown block blink
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
function fish_vi_cursor_handle --on-variable fish_bind_mode --on-event fish_postexec
|
function fish_vi_cursor_handle --on-variable fish_bind_mode --on-event fish_postexec --on-event fish_focus_in
|
||||||
set -l varname fish_cursor_\$fish_bind_mode
|
set -l varname fish_cursor_\$fish_bind_mode
|
||||||
if not set -q \$varname
|
if not set -q \$varname
|
||||||
set varname fish_cursor_unknown
|
set varname fish_cursor_unknown
|
||||||
|
|
Loading…
Reference in a new issue