summaryrefslogtreecommitdiffstats
path: root/key-bindings.c
diff options
context:
space:
mode:
authornicm <nicm>2016-10-11 07:23:34 +0000
committernicm <nicm>2016-10-11 07:23:34 +0000
commit76d6d3641f271be1756e41494960d96714e7ee58 (patch)
treeff2b551953111d90ed5f32919fe2f3b329357bc1 /key-bindings.c
parent8b804fb5894b6717de36c5c9c96f7fd29b14a864 (diff)
Fundamental change to how copy mode key bindings work:
The vi-copy and emacs-copy mode key tables are gone, and instead copy mode commands are bound in one of two normal key tables ("copy-mode" or "copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So: bind -temacs-copy C-Up scroll-up bind -temacs-copy -R5 WheelUpPane scroll-up Becomes: bind -Tcopy-mode C-Up send -X scroll-up bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up This allows the full command parser and command set to be used - for example, we can use the normal command prompt for searching, jumping, and so on instead of a custom one: bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'" command-prompt also gets a -1 option to only require on key press, which is needed for jumping. The plan is to get rid of mode keys entirely, so more to come eventually.
Diffstat (limited to 'key-bindings.c')
-rw-r--r--key-bindings.c136
1 files changed, 136 insertions, 0 deletions
diff --git a/key-bindings.c b/key-bindings.c
index 0d13385d..384a9f8f 100644
--- a/key-bindings.c
+++ b/key-bindings.c
@@ -232,6 +232,142 @@ key_bindings_init(void)
"bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= \"#{pane_in_mode}\" \"copy-mode -M\" \"send-keys -M\"' 'copy-mode -M'",
"bind -n MouseDown3Pane if-shell -Ft= '#{mouse_any_flag}' 'select-pane -t=; send-keys -M' 'select-pane -mt='",
"bind -n WheelUpPane if-shell -Ft= '#{mouse_any_flag}' 'send-keys -M' 'if -Ft= \"#{pane_in_mode}\" \"send-keys -M\" \"copy-mode -et=\"'",
+
+ "bind -Tcopy-mode C-Space send -X begin-selection",
+ "bind -Tcopy-mode C-a send -X start-of-line",
+ "bind -Tcopy-mode C-c send -X cancel",
+ "bind -Tcopy-mode C-e send -X end-of-line",
+ "bind -Tcopy-mode C-f send -X cursor-right",
+ "bind -Tcopy-mode C-g send -X clear-selection",
+ "bind -Tcopy-mode C-k send -X copy-end-of-line",
+ "bind -Tcopy-mode C-n send -X cursor-down",
+ "bind -Tcopy-mode C-p send -X cursor-up",
+ "bind -Tcopy-mode C-r command-prompt -p'search up' \"send -X search-backward '%%'\"",
+ "bind -Tcopy-mode C-s command-prompt -p'search down' \"send -X search-forward '%%'\"",
+ "bind -Tcopy-mode C-v send -X page-down",
+ "bind -Tcopy-mode C-w send -X copy-selection-and-cancel",
+ "bind -Tcopy-mode Escape send -X cancel",
+ "bind -Tcopy-mode Space send -X page-down",
+ "bind -Tcopy-mode , send -X jump-reverse",
+ "bind -Tcopy-mode \\; send -X jump-again",
+ "bind -Tcopy-mode F command-prompt -1p'jump backward' \"send -X jump-backward '%%'\"",
+ "bind -Tcopy-mode N send -X search-reverse",
+ "bind -Tcopy-mode R send -X rectangle-toggle",
+ "bind -Tcopy-mode T command-prompt -1p'jump to backward' \"send -X jump-to-backward '%%'\"",
+ "bind -Tcopy-mode f command-prompt -1p'jump forward' \"send -X jump-forward '%%'\"",
+ "bind -Tcopy-mode g command-prompt -p'goto line' \"send -X goto-line '%%'\"",
+ "bind -Tcopy-mode n send -X search-again",
+ "bind -Tcopy-mode q send -X cancel",
+ "bind -Tcopy-mode t command-prompt -1p'jump to forward' \"send -X jump-to-forward '%%'\"",
+ "bind -Tcopy-mode MouseDrag1Pane send -X begin-selection",
+ "bind -Tcopy-mode MouseDragEnd1Pane send -X copy-selection-and-cancel",
+ "bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up",
+ "bind -Tcopy-mode WheelDownPane send -N5 -X scroll-down",
+ "bind -Tcopy-mode NPage send -X page-down",
+ "bind -Tcopy-mode PPage send -X page-up",
+ "bind -Tcopy-mode Up send -X cursor-up",
+ "bind -Tcopy-mode Down send -X cursor-down",
+ "bind -Tcopy-mode Left send -X cursor-left",
+ "bind -Tcopy-mode Right send -X cursor-right",
+ "bind -Tcopy-mode M-1 command-prompt -p'repeat' -I1 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-2 command-prompt -p'repeat' -I2 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-3 command-prompt -p'repeat' -I3 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-4 command-prompt -p'repeat' -I4 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-5 command-prompt -p'repeat' -I5 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-6 command-prompt -p'repeat' -I6 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-7 command-prompt -p'repeat' -I7 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-8 command-prompt -p'repeat' -I8 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-9 command-prompt -p'repeat' -I9 \"send -N '%%'\"",
+ "bind -Tcopy-mode M-< send -X history-top",
+ "bind -Tcopy-mode M-> send -X history-bottom",
+ "bind -Tcopy-mode M-R send -X top-line",
+ "bind -Tcopy-mode M-b send -X previous-word",
+ "bind -Tcopy-mode M-f send -X next-word-end",
+ "bind -Tcopy-mode M-m send -X back-to-indentation",
+ "bind -Tcopy-mode M-r send -X middle-line",
+ "bind -Tcopy-mode M-v send -X page-up",
+ "bind -Tcopy-mode M-w send -X copy-selection-and-cancel",
+ "bind -Tcopy-mode M-{ send -X previous-paragraph",
+ "bind -Tcopy-mode M-} send -X next-paragraph",
+ "bind -Tcopy-mode M-Up send -X halfpage-up",
+ "bind -Tcopy-mode M-Down send -X halfpage-down",
+ "bind -Tcopy-mode C-Up send -X scroll-up",
+ "bind -Tcopy-mode C-Down send -X scroll-down",
+
+ "bind -Tcopy-mode-vi C-b send -X page-up",
+ "bind -Tcopy-mode-vi C-c send -X cancel",
+ "bind -Tcopy-mode-vi C-d send -X halfpage-down",
+ "bind -Tcopy-mode-vi C-e send -X scroll-down",
+ "bind -Tcopy-mode-vi C-f send -X page-down",
+ "bind -Tcopy-mode-vi C-h send -X cursor-left",
+ "bind -Tcopy-mode-vi C-j send -X copy-selection-and-cancel",
+ "bind -Tcopy-mode-vi Enter send -X copy-selection-and-cancel",
+ "bind -Tcopy-mode-vi C-u send -X halfpage-up",
+ "bind -Tcopy-mode-vi C-v send -X rectangle-toggle",
+ "bind -Tcopy-mode-vi C-y send -X scroll-up",
+ "bind -Tcopy-mode-vi Escape send -X clear-selection",
+ "bind -Tcopy-mode-vi Space send -X begin-selection",
+ "bind -Tcopy-mode-vi '$' send -X end-of-line",
+ "bind -Tcopy-mode-vi , send -X jump-reverse",
+ "bind -Tcopy-mode-vi / command-prompt -p'search down' \"send -X search-forward '%%'\"",
+ "bind -Tcopy-mode-vi 0 send -X start-of-line",
+ "bind -Tcopy-mode-vi 1 command-prompt -p'repeat' -I1 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 2 command-prompt -p'repeat' -I2 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 3 command-prompt -p'repeat' -I3 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 4 command-prompt -p'repeat' -I4 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 5 command-prompt -p'repeat' -I5 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 6 command-prompt -p'repeat' -I6 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 7 command-prompt -p'repeat' -I7 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 8 command-prompt -p'repeat' -I8 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi 9 command-prompt -p'repeat' -I9 \"send -N '%%'\"",
+ "bind -Tcopy-mode-vi : command-prompt -p'goto line' \"send -X goto-line '%%'\"",
+ "bind -Tcopy-mode-vi \\; send -X jump-again"
+ "bind -Tcopy-mode-vi ? command-prompt -p'search up' \"send -X search-backward '%%'\"",
+ "bind -Tcopy-mode-vi A send -X append-selection-and-cancel",
+ "bind -Tcopy-mode-vi B send -X previous-space",
+ "bind -Tcopy-mode-vi D send -X copy-end-of-line",
+ "bind -Tcopy-mode-vi E send -X next-space-end",
+ "bind -Tcopy-mode-vi F command-prompt -1p'jump backward' \"send -X jump-backward '%%'\"",
+ "bind -Tcopy-mode-vi G send -X history-bottom",
+ "bind -Tcopy-mode-vi H send -X top-line",
+ "bind -Tcopy-mode-vi J send -X scroll-down",
+ "bind -Tcopy-mode-vi K send -X scroll-up",
+ "bind -Tcopy-mode-vi L send -X bottom-line",
+ "bind -Tcopy-mode-vi M send -X middle-line",
+ "bind -Tcopy-mode-vi N send -X search-reverse",
+ "bind -Tcopy-mode-vi T command-prompt -1p'jump to backward' \"send -X jump-to-backward '%%'\"",
+ "bind -Tcopy-mode-vi V send -X select-line",
+ "bind -Tcopy-mode-vi W send -X next-space",
+ "bind -Tcopy-mode-vi ^ send -X back-to-indentation",
+ "bind -Tcopy-mode-vi b send -X previous-word",
+ "bind -Tcopy-mode-vi e send -X next-word-end",
+ "bind -Tcopy-mode-vi f command-prompt -1p'jump forward' \"send -X jump-forward '%%'\"",
+ "bind -Tcopy-mode-vi g send -X history-top",
+ "bind -Tcopy-mode-vi h send -X cursor-left",
+ "bind -Tcopy-mode-vi j send -X cursor-down",
+ "bind -Tcopy-mode-vi k send -X cursor-up",
+ "bind -Tcopy-mode-vi l send -X cursor-right",
+ "bind -Tcopy-mode-vi n send -X search-again",
+ "bind -Tcopy-mode-vi o send -X other-end",
+ "bind -Tcopy-mode-vi q send -X cancel",
+ "bind -Tcopy-mode-vi t command-prompt -1p'jump to forward' \"send -X jump-to-forward '%%'\"",
+ "bind -Tcopy-mode-vi v send -X rectangle-toggle",
+ "bind -Tcopy-mode-vi w send -X next-word",
+ "bind -Tcopy-mode-vi { send -X previous-paragraph",
+ "bind -Tcopy-mode-vi } send -X next-paragraph",
+ "bind -Tcopy-mode-vi MouseDrag1Pane send -X begin-selection",
+ "bind -Tcopy-mode-vi MouseDragEnd1Pane send -X copy-selection-and-cancel",
+ "bind -Tcopy-mode-vi WheelUpPane send -N5 -X scroll-up",
+ "bind -Tcopy-mode-vi WheelDownPane send -N5 -X scroll-down",
+ "bind -Tcopy-mode-vi BSpace send -X cursor-left",
+ "bind -Tcopy-mode-vi NPage send -X page-down",
+ "bind -Tcopy-mode-vi PPage send -X page-up",
+ "bind -Tcopy-mode-vi Up send -X cursor-up",
+ "bind -Tcopy-mode-vi Down send -X cursor-down",
+ "bind -Tcopy-mode-vi Left send -X cursor-left",
+ "bind -Tcopy-mode-vi Right send -X cursor-right",
+ "bind -Tcopy-mode-vi C-Up send -X scroll-up",
+ "bind -Tcopy-mode-vi C-Down send -X scroll-down",
};
u_int i;
struct cmd_list *cmdlist;