e04564d52880b39032ca6a1841a48138db185aec

Author
Marc Cornellà <marc.cornella@live.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

lib: add CTRL-backspace and CTRL-delete to delete whole words

Fixes #7609
Closes #8191

Co-authored-by: Michal Grňo <m93a.cz@gmail.com>

Diff

 1diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
 2index 10053f6f3099c8a8838e5518cd39457d0c3ab30b..ac1adf2e7038bbd900e4aa1e148acc8a5648e258 100644
 3--- a/lib/key-bindings.zsh
 4+++ b/lib/key-bindings.zsh
 5@@ -71,17 +71,33 @@ if [[ -n "${terminfo[kcbt]}" ]]; then
 6 fi
 7 
 8 # [Backspace] - delete backward
 9-bindkey '^?' backward-delete-char
10+bindkey -M emacs '^?' backward-delete-char
11+bindkey -M viins '^?' backward-delete-char
12+bindkey -M vicmd '^?' backward-delete-char
13 # [Delete] - delete forward
14 if [[ -n "${terminfo[kdch1]}" ]]; then
15   bindkey -M emacs "${terminfo[kdch1]}" delete-char            
16   bindkey -M viins "${terminfo[kdch1]}" delete-char            # [Delete] - delete forward
17   bindkey -M vicmd "${terminfo[kdch1]}" delete-char            # [Delete] - delete forward
18 else
19-  bindkey "^[[3~" delete-char
20-  bindkey "^[3;5~" delete-char
21+  bindkey -M emacs "^[[3~" delete-char
22+  bindkey -M viins "^[[3~" delete-char
23+  bindkey -M vicmd "^[[3~" delete-char
24+
25+  bindkey -M emacs "^[3;5~" delete-char
26+  bindkey -M viins "^[3;5~" delete-char
27+  bindkey -M vicmd "^[3;5~" delete-char
28 fi
29 
30+# [Ctrl-Backspace] - delete whole backward-word
31+bindkey -M emacs '^H' backward-kill-word
32+bindkey -M viins '^H' backward-kill-word
33+bindkey -M vicmd '^H' backward-kill-word
34+# [Ctrl-Delete] - delete whole forward-word
35+bindkey -M emacs '^[[3;5~' kill-word
36+bindkey -M viins '^[[3;5~' kill-word
37+bindkey -M vicmd '^[[3;5~' kill-word
38+
39 # [Ctrl-RightArrow] - move forward one word
40 bindkey -M emacs '^[[1;5C' forward-word
41 bindkey -M viins '^[[1;5C' forward-word
42@@ -91,11 +107,13 @@ bindkey -M emacs '^[[1;5D' backward-word
43 bindkey -M viins '^[[1;5D' backward-word
44 bindkey -M vicmd '^[[1;5D' backward-word
45 
46+
47 bindkey '\ew' kill-region                             # [Esc-w] - Kill from the cursor to the mark
48 bindkey -s '\el' 'ls\n'                               # [Esc-l] - run command: ls
49 bindkey '^r' history-incremental-search-backward      # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line.
50 bindkey ' ' magic-space                               # [Space] - don't do history expansion
51 
52+
53 # Edit the current command line in $EDITOR
54 autoload -U edit-command-line
55 zle -N edit-command-line