provide a better experience when user presses \cC

Fixes #2904
This commit is contained in:
Kurtis Rader 2016-04-13 19:46:18 -07:00
parent 671c0515d4
commit 5f849d0264
3 changed files with 18 additions and 7 deletions

View file

@ -0,0 +1,13 @@
# This is meant to be bound to something like \cC.
function __fish_cancel_commandline
set -l cmd (commandline)
if test -n "$cmd"
commandline -C 1000000
echo (set_color -b bryellow black)"^C"(set_color normal)
for i in (seq (commandline -L))
echo ""
end
commandline ""
commandline -f repaint
end
end

View file

@ -109,7 +109,7 @@ function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fis
bind $argv \el __fish_list_current_token bind $argv \el __fish_list_current_token
bind $argv \ew 'set tok (commandline -pt); if test $tok[1]; echo; whatis $tok[1]; commandline -f repaint; end' bind $argv \ew 'set tok (commandline -pt); if test $tok[1]; echo; whatis $tok[1]; commandline -f repaint; end'
bind $argv \cl 'clear; commandline -f repaint' bind $argv \cl 'clear; commandline -f repaint'
bind $argv \cc 'commandline ""' bind $argv \cc __fish_cancel_commandline
bind $argv \cu backward-kill-line bind $argv \cu backward-kill-line
bind $argv \cw backward-kill-path-component bind $argv \cw backward-kill-path-component
bind $argv \ed 'set -l cmd (commandline); if test -z "$cmd"; echo; dirh; commandline -f repaint; else; commandline -f kill-word; end' bind $argv \ed 'set -l cmd (commandline); if test -z "$cmd"; echo; dirh; commandline -f repaint; else; commandline -f kill-word; end'

View file

@ -22,22 +22,20 @@ function fish_vi_key_bindings --description 'vi-like key bindings for fish'
# Remove the default self-insert bindings in default mode # Remove the default self-insert bindings in default mode
bind -e "" -M default bind -e "" -M default
# Add way to kill current command line while in insert mode. # Add way to kill current command line while in insert mode.
bind -M insert \cc 'commandline ""' bind -M insert \cc __fish_cancel_commandline
# Add a way to switch from insert to normal (command) mode. # Add a way to switch from insert to normal (command) mode.
bind -M insert -m default \e backward-char force-repaint bind -M insert -m default \e backward-char force-repaint
# # Default (command) mode
# normal (command) mode
#
bind :q exit bind :q exit
bind \cd exit bind \cd exit
bind \cc 'commandline ""' bind -m insert \cc __fish_cancel_commandline
bind h backward-char bind h backward-char
bind l forward-char bind l forward-char
bind \e\[C forward-char bind \e\[C forward-char
bind \e\[D backward-char bind \e\[D backward-char
# Some linux VTs output these (why?) # Some terminals output these when they're in in keypad mode.
bind \eOC forward-char bind \eOC forward-char
bind \eOD backward-char bind \eOD backward-char