akinomyoga / ble.sh

Bash Line Editor―a line editor written in pure Bash with syntax highlighting, auto suggestions, vim modes, etc. for Bash interactive sessions.
BSD 3-Clause "New" or "Revised" License
2.33k stars 77 forks source link

C-RET never works #448

Closed travisdowns closed 1 month ago

travisdowns commented 1 month ago

New ble.sh user so perhaps I'm just missing something, but when I get an autocomplete at the prompt, I understand that C-RET (control + enter) should select and execute auto-completion but it does not.

For example I type echo and wait a second and echo hi is offered as the auto-complete (see screenshot), if I hit then C-RET it executes only echo, same as if I simply hit RET. C-j does accept and execute the completion, however.

image

travisdowns commented 1 month ago

My ble-bind should be the default, I haven't changed anything but here it is for completeness:

`ble-bind -P` output ``` ble-bind --csi '1~' 'home' ble-bind --csi '2~' 'insert' ble-bind --csi '3~' 'delete' ble-bind --csi '4~' 'end' ble-bind --csi '5~' 'prior' ble-bind --csi '6~' 'next' ble-bind --csi '7~' 'home' ble-bind --csi '8~' 'end' ble-bind --csi '11~' 'f1' ble-bind --csi '12~' 'f2' ble-bind --csi '13~' 'f3' ble-bind --csi '14~' 'f4' ble-bind --csi '15~' 'f5' ble-bind --csi '17~' 'f6' ble-bind --csi '18~' 'f7' ble-bind --csi '19~' 'f8' ble-bind --csi '20~' 'f9' ble-bind --csi '21~' 'f10' ble-bind --csi '23~' 'f11' ble-bind --csi '24~' 'f12' ble-bind --csi '25~' 'f13' ble-bind --csi '26~' 'f14' ble-bind --csi '28~' 'f15' ble-bind --csi '29~' 'f16' ble-bind --csi '31~' 'f17' ble-bind --csi '32~' 'f18' ble-bind --csi '33~' 'f19' ble-bind --csi '34~' 'f20' ble-bind --csi '200~' 'paste_begin' ble-bind --csi '201~' 'paste_end' ble-bind --csi 'A' 'up' ble-bind --csi 'B' 'down' ble-bind --csi 'C' 'right' ble-bind --csi 'D' 'left' ble-bind --csi 'E' 'begin' ble-bind --csi 'F' 'end' ble-bind --csi 'H' 'home' ble-bind --csi 'I' 'focus' ble-bind --csi 'M' 'RET' ble-bind --csi 'O' 'blur' ble-bind --csi 'P' 'f1' ble-bind --csi 'Q' 'f2' ble-bind --csi 'R' 'f3' ble-bind --csi 'S' 'f4' ble-bind --csi 'X' '=' ble-bind --csi 'j' '*' ble-bind --csi 'k' '+' ble-bind --csi 'l' ',' ble-bind --csi 'm' '-' ble-bind --csi 'n' '.' ble-bind --csi 'o' '/' ble-bind --csi 'p' '0' ble-bind --csi 'q' '1' ble-bind --csi 'r' '2' ble-bind --csi 's' '3' ble-bind --csi 't' '4' ble-bind --csi 'u' '5' ble-bind --csi 'v' '6' ble-bind --csi 'w' '7' ble-bind --csi 'x' '8' ble-bind --csi 'y' '9' ble-bind -k 'ESC ? SP' 'SP' ble-bind -k 'ESC ? I' 'TAB' ble-bind -k 'ESC ? M' 'RET' ble-bind -k 'ESC ? X' '=' ble-bind -k 'ESC ? j' '*' ble-bind -k 'ESC ? k' '+' ble-bind -k 'ESC ? l' ',' ble-bind -k 'ESC ? n' '.' ble-bind -k 'ESC ? o' '/' ble-bind -k 'ESC ? p' '0' ble-bind -k 'ESC ? q' '1' ble-bind -k 'ESC ? r' '2' ble-bind -k 'ESC ? s' '3' ble-bind -k 'ESC ? t' '4' ble-bind -k 'ESC ? u' '5' ble-bind -k 'ESC ? v' '6' ble-bind -k 'ESC ? w' '7' ble-bind -k 'ESC ? x' '8' ble-bind -k 'ESC ? y' '9' ble-bind -k 'ESC O SP' 'SP' ble-bind -k 'ESC O A' 'up' ble-bind -k 'ESC O B' 'down' ble-bind -k 'ESC O C' 'right' ble-bind -k 'ESC O D' 'left' ble-bind -k 'ESC O E' 'begin' ble-bind -k 'ESC O F' 'end' ble-bind -k 'ESC O H' 'home' ble-bind -k 'ESC O I' 'TAB' ble-bind -k 'ESC O M' 'RET' ble-bind -k 'ESC O O' 'blur' ble-bind -k 'ESC O P' 'f1' ble-bind -k 'ESC O Q' 'f2' ble-bind -k 'ESC O R' 'f3' ble-bind -k 'ESC O S' 'f4' ble-bind -k 'ESC O X' '=' ble-bind -k 'ESC O a' 'C-up' ble-bind -k 'ESC O b' 'C-down' ble-bind -k 'ESC O c' 'C-right' ble-bind -k 'ESC O d' 'C-left' ble-bind -k 'ESC O j' '*' ble-bind -k 'ESC O k' '+' ble-bind -k 'ESC O l' ',' ble-bind -k 'ESC O n' '.' ble-bind -k 'ESC O o' '/' ble-bind -k 'ESC O p' '0' ble-bind -k 'ESC O q' '1' ble-bind -k 'ESC O r' '2' ble-bind -k 'ESC O s' '3' ble-bind -k 'ESC O t' '4' ble-bind -k 'ESC O u' '5' ble-bind -k 'ESC O v' '6' ble-bind -k 'ESC O w' '7' ble-bind -k 'ESC O x' '8' ble-bind -k 'ESC O y' '9' ble-bind -k 'ESC [ 1 $' 'S-home' ble-bind -k 'ESC [ 1 1 $' 'S-f1' ble-bind -k 'ESC [ 1 2 $' 'S-f2' ble-bind -k 'ESC [ 1 3 $' 'S-f3' ble-bind -k 'ESC [ 1 4 $' 'S-f4' ble-bind -k 'ESC [ 1 5 $' 'S-f5' ble-bind -k 'ESC [ 1 7 $' 'S-f6' ble-bind -k 'ESC [ 1 8 $' 'S-f7' ble-bind -k 'ESC [ 1 9 $' 'S-f8' ble-bind -k 'ESC [ 1 z' 'find' ble-bind -k 'ESC [ 2 $' 'S-insert' ble-bind -k 'ESC [ 2 0 $' 'S-f9' ble-bind -k 'ESC [ 2 0 0 $' 'S-paste_begin' ble-bind -k 'ESC [ 2 0 1 $' 'S-paste_end' ble-bind -k 'ESC [ 2 1 $' 'S-f10' ble-bind -k 'ESC [ 2 1 4 z' 'home' ble-bind -k 'ESC [ 2 1 6 z' 'next' ble-bind -k 'ESC [ 2 2 0 z' 'end' ble-bind -k 'ESC [ 2 2 2 z' 'prior' ble-bind -k 'ESC [ 2 2 4 z' 'f1' ble-bind -k 'ESC [ 2 2 5 z' 'f2' ble-bind -k 'ESC [ 2 2 6 z' 'f3' ble-bind -k 'ESC [ 2 2 7 z' 'f4' ble-bind -k 'ESC [ 2 2 8 z' 'f5' ble-bind -k 'ESC [ 2 2 9 z' 'f6' ble-bind -k 'ESC [ 2 3 $' 'S-f11' ble-bind -k 'ESC [ 2 3 0 z' 'f7' ble-bind -k 'ESC [ 2 3 1 z' 'f8' ble-bind -k 'ESC [ 2 3 2 z' 'f9' ble-bind -k 'ESC [ 2 3 3 z' 'f10' ble-bind -k 'ESC [ 2 3 4 z' 'f11' ble-bind -k 'ESC [ 2 3 5 z' 'f12' ble-bind -k 'ESC [ 2 4 $' 'S-f12' ble-bind -k 'ESC [ 2 4 7 z' 'insert' ble-bind -k 'ESC [ 2 5 $' 'S-f13' ble-bind -k 'ESC [ 2 6 $' 'S-f14' ble-bind -k 'ESC [ 2 8 $' 'S-f15' ble-bind -k 'ESC [ 2 9 $' 'S-f16' ble-bind -k 'ESC [ 2 J' 'S-home' ble-bind -k 'ESC [ 2 K' 'S-delete' ble-bind -k 'ESC [ 3 $' 'S-delete' ble-bind -k 'ESC [ 3 1 $' 'S-f17' ble-bind -k 'ESC [ 3 2 $' 'S-f18' ble-bind -k 'ESC [ 3 3 $' 'S-f19' ble-bind -k 'ESC [ 3 4 $' 'S-f20' ble-bind -k 'ESC [ 4 $' 'S-end' ble-bind -k 'ESC [ 4 h' 'insert' ble-bind -k 'ESC [ 4 l' 'S-insert' ble-bind -k 'ESC [ 4 z' 'select' ble-bind -k 'ESC [ 5 $' 'S-prior' ble-bind -k 'ESC [ 6 $' 'S-next' ble-bind -k 'ESC [ 7 $' 'S-home' ble-bind -k 'ESC [ 8 $' 'S-end' ble-bind -k 'ESC [ J' 'C-end' ble-bind -k 'ESC [ K' 'S-end' ble-bind -k 'ESC [ L' 'C-insert' ble-bind -k 'ESC [ P' 'delete' ble-bind -k 'ESC [ Z' 'S-TAB' ble-bind -k 'ESC [ [ A' 'f1' ble-bind -k 'ESC [ [ B' 'f2' ble-bind -k 'ESC [ [ C' 'f3' ble-bind -k 'ESC [ [ D' 'f4' ble-bind -k 'ESC [ [ E' 'f5' ble-bind -k 'ESC [ a' 'S-up' ble-bind -k 'ESC [ b' 'S-down' ble-bind -k 'ESC [ c' 'S-right' ble-bind -k 'ESC [ d' 'S-left' ble-bind -k 'SS3 SP' 'SP' ble-bind -k 'SS3 A' 'up' ble-bind -k 'SS3 B' 'down' ble-bind -k 'SS3 C' 'right' ble-bind -k 'SS3 D' 'left' ble-bind -k 'SS3 E' 'begin' ble-bind -k 'SS3 F' 'end' ble-bind -k 'SS3 H' 'home' ble-bind -k 'SS3 I' 'TAB' ble-bind -k 'SS3 M' 'RET' ble-bind -k 'SS3 O' 'blur' ble-bind -k 'SS3 P' 'f1' ble-bind -k 'SS3 Q' 'f2' ble-bind -k 'SS3 R' 'f3' ble-bind -k 'SS3 S' 'f4' ble-bind -k 'SS3 X' '=' ble-bind -k 'SS3 a' 'C-up' ble-bind -k 'SS3 b' 'C-down' ble-bind -k 'SS3 c' 'C-right' ble-bind -k 'SS3 d' 'C-left' ble-bind -k 'SS3 j' '*' ble-bind -k 'SS3 k' '+' ble-bind -k 'SS3 l' ',' ble-bind -k 'SS3 n' '.' ble-bind -k 'SS3 o' '/' ble-bind -k 'SS3 p' '0' ble-bind -k 'SS3 q' '1' ble-bind -k 'SS3 r' '2' ble-bind -k 'SS3 s' '3' ble-bind -k 'SS3 t' '4' ble-bind -k 'SS3 u' '5' ble-bind -k 'SS3 v' '6' ble-bind -k 'SS3 w' '7' ble-bind -k 'SS3 x' '8' ble-bind -k 'SS3 y' '9' ble-bind -k 'CSI 1 z' 'find' ble-bind -k 'CSI 2 $' 'S-insert' ble-bind -k 'CSI 2 1 4 z' 'home' ble-bind -k 'CSI 2 1 6 z' 'next' ble-bind -k 'CSI 2 2 0 z' 'end' ble-bind -k 'CSI 2 2 2 z' 'prior' ble-bind -k 'CSI 2 2 4 z' 'f1' ble-bind -k 'CSI 2 2 5 z' 'f2' ble-bind -k 'CSI 2 2 6 z' 'f3' ble-bind -k 'CSI 2 2 7 z' 'f4' ble-bind -k 'CSI 2 2 8 z' 'f5' ble-bind -k 'CSI 2 2 9 z' 'f6' ble-bind -k 'CSI 2 3 $' 'S-f11' ble-bind -k 'CSI 2 3 0 z' 'f7' ble-bind -k 'CSI 2 3 1 z' 'f8' ble-bind -k 'CSI 2 3 2 z' 'f9' ble-bind -k 'CSI 2 3 3 z' 'f10' ble-bind -k 'CSI 2 3 4 z' 'f11' ble-bind -k 'CSI 2 3 5 z' 'f12' ble-bind -k 'CSI 2 4 $' 'S-f12' ble-bind -k 'CSI 2 4 7 z' 'insert' ble-bind -k 'CSI 2 5 $' 'S-f13' ble-bind -k 'CSI 2 6 $' 'S-f14' ble-bind -k 'CSI 2 8 $' 'S-f15' ble-bind -k 'CSI 2 9 $' 'S-f16' ble-bind -k 'CSI 2 J' 'S-home' ble-bind -k 'CSI 2 K' 'S-delete' ble-bind -k 'CSI 3 $' 'S-delete' ble-bind -k 'CSI 3 1 $' 'S-f17' ble-bind -k 'CSI 3 2 $' 'S-f18' ble-bind -k 'CSI 3 3 $' 'S-f19' ble-bind -k 'CSI 3 4 $' 'S-f20' ble-bind -k 'CSI 4 h' 'insert' ble-bind -k 'CSI 4 l' 'S-insert' ble-bind -k 'CSI 4 z' 'select' ble-bind -k 'CSI 5 $' 'S-prior' ble-bind -k 'CSI 6 $' 'S-next' ble-bind -k 'CSI 7 $' 'S-home' ble-bind -k 'CSI 8 $' 'S-end' ble-bind -k 'CSI J' 'C-end' ble-bind -k 'CSI K' 'S-end' ble-bind -k 'CSI L' 'C-insert' ble-bind -k 'CSI P' 'delete' ble-bind -k 'CSI Z' 'S-TAB' ble-bind -k 'CSI [ A' 'f1' ble-bind -k 'CSI [ B' 'f2' ble-bind -k 'CSI [ C' 'f3' ble-bind -k 'CSI [ D' 'f4' ble-bind -k 'CSI [ E' 'f5' ble-bind -k 'CSI a' 'S-up' ble-bind -k 'CSI b' 'S-down' ble-bind -k 'CSI c' 'S-right' ble-bind -k 'CSI d' 'S-left' # keymap isearch ble-bind -m 'isearch' -f 'BS' 'isearch/prev' ble-bind -m 'isearch' -f 'RET' 'isearch/exit' ble-bind -m 'isearch' -f 'DEL' 'isearch/prev' ble-bind -m 'isearch' -f '__defchar__' 'isearch/self-insert' ble-bind -m 'isearch' -f '__default__' 'isearch/exit-default' ble-bind -m 'isearch' -f '__line_limit__' 'nop' ble-bind -m 'isearch' -f 'C-RET' 'isearch/accept-line' ble-bind -m 'isearch' -f 'C-?' 'isearch/prev' ble-bind -m 'isearch' -f 'C-g' 'isearch/cancel' ble-bind -m 'isearch' -f 'C-h' 'isearch/prev' ble-bind -m 'isearch' -f 'C-j' 'isearch/accept-line' ble-bind -m 'isearch' -f 'C-m' 'isearch/exit' ble-bind -m 'isearch' -f 'C-r' 'isearch/backward' ble-bind -m 'isearch' -f 'C-s' 'isearch/forward' ble-bind -m 'isearch' -f 'C-x C-g' 'isearch/cancel' ble-bind -m 'isearch' -f 'C-M-g' 'isearch/cancel' # keymap nsearch ble-bind -m 'nsearch' -f 'RET' 'nsearch/exit' ble-bind -m 'nsearch' -f '__default__' 'nsearch/exit-default' ble-bind -m 'nsearch' -f '__line_limit__' 'nop' ble-bind -m 'nsearch' -f 'prior' 'nsearch/backward' ble-bind -m 'nsearch' -f 'next' 'nsearch/forward' ble-bind -m 'nsearch' -f 'up' 'nsearch/backward' ble-bind -m 'nsearch' -f 'down' 'nsearch/forward' ble-bind -m 'nsearch' -f 'C-RET' 'nsearch/accept-line' ble-bind -m 'nsearch' -f 'C-g' 'nsearch/cancel' ble-bind -m 'nsearch' -f 'C-j' 'nsearch/accept-line' ble-bind -m 'nsearch' -f 'C-m' 'nsearch/exit' ble-bind -m 'nsearch' -f 'C-n' 'nsearch/forward' ble-bind -m 'nsearch' -f 'C-p' 'nsearch/backward' ble-bind -m 'nsearch' -f 'C-r' 'nsearch/backward' ble-bind -m 'nsearch' -f 'C-s' 'nsearch/forward' ble-bind -m 'nsearch' -f 'C-x C-g' 'nsearch/cancel' ble-bind -m 'nsearch' -f 'C-M-g' 'nsearch/cancel' # keymap emacs ble-bind -m 'emacs' -f 'NUL' 'set-mark' ble-bind -m 'emacs' -f 'BS' 'delete-region-or delete-backward-char' ble-bind -m 'emacs' -f 'TAB' 'complete' ble-bind -m 'emacs' -f 'RET' 'accept-single-line-or-newline' ble-bind -m 'emacs' -f 'SP' 'magic-space' ble-bind -m 'emacs' -f '-' 'append-arg' ble-bind -m 'emacs' -f '/' 'magic-slash' ble-bind -m 'emacs' -f '0' 'append-arg' ble-bind -m 'emacs' -f '1' 'append-arg' ble-bind -m 'emacs' -f '2' 'append-arg' ble-bind -m 'emacs' -f '3' 'append-arg' ble-bind -m 'emacs' -f '4' 'append-arg' ble-bind -m 'emacs' -f '5' 'append-arg' ble-bind -m 'emacs' -f '6' 'append-arg' ble-bind -m 'emacs' -f '7' 'append-arg' ble-bind -m 'emacs' -f '8' 'append-arg' ble-bind -m 'emacs' -f '9' 'append-arg' ble-bind -m 'emacs' -f 'DEL' 'delete-region-or delete-backward-char' ble-bind -m 'emacs' -f '__batch_char__' 'batch-insert' ble-bind -m 'emacs' -f '__defchar__' 'self-insert' ble-bind -m 'emacs' -f '__before_widget__' 'emacs/__before_widget__' ble-bind -m 'emacs' -f '__after_widget__' 'emacs/__after_widget__' ble-bind -m 'emacs' -f '__attach__' 'safe/__attach__' ble-bind -m 'emacs' -f '__line_limit__' '__line_limit__' ble-bind -m 'emacs' -f 'auto_complete_enter' 'auto-complete-enter' ble-bind -m 'emacs' -f 'insert' 'quoted-insert' ble-bind -m 'emacs' -f 'home' 'beginning-of-line' ble-bind -m 'emacs' -f 'prior' 'history-search-backward' ble-bind -m 'emacs' -f 'delete' 'delete-region-or delete-forward-char' ble-bind -m 'emacs' -f 'end' 'end-of-line' ble-bind -m 'emacs' -f 'next' 'history-search-forward' ble-bind -m 'emacs' -f 'f1' 'command-help' ble-bind -m 'emacs' -f 'paste_begin' 'emacs/bracketed-paste' ble-bind -m 'emacs' -f 'up' 'backward-line history' ble-bind -m 'emacs' -f 'down' 'forward-line history' ble-bind -m 'emacs' -f 'right' 'forward-char' ble-bind -m 'emacs' -f 'left' 'backward-char' ble-bind -m 'emacs' -f 'S-TAB' 'menu-complete backward' ble-bind -m 'emacs' -f 'S-insert' 'yank' ble-bind -m 'emacs' -f 'S-home' '@marked beginning-of-line' ble-bind -m 'emacs' -f 'S-delete' 'kill-region-or kill-backward-uword' ble-bind -m 'emacs' -f 'S-end' '@marked end-of-line' ble-bind -m 'emacs' -f 'S-up' '@marked backward-line' ble-bind -m 'emacs' -f 'S-down' '@marked forward-line' ble-bind -m 'emacs' -f 'S-right' '@marked forward-char' ble-bind -m 'emacs' -f 'S-left' '@marked backward-char' ble-bind -m 'emacs' -f 'C-BS' 'emacs/undo' ble-bind -m 'emacs' -f 'C-TAB' 'menu-complete' ble-bind -m 'emacs' -f 'C-RET' 'accept-line' ble-bind -m 'emacs' -f 'C-SP' 'set-mark' ble-bind -m 'emacs' -f 'C--' 'append-arg' ble-bind -m 'emacs' -f 'C-/' 'emacs/undo' ble-bind -m 'emacs' -f 'C-0' 'append-arg' ble-bind -m 'emacs' -f 'C-1' 'append-arg' ble-bind -m 'emacs' -f 'C-2' 'append-arg' ble-bind -m 'emacs' -f 'C-3' 'append-arg' ble-bind -m 'emacs' -f 'C-4' 'append-arg' ble-bind -m 'emacs' -f 'C-5' 'append-arg' ble-bind -m 'emacs' -f 'C-6' 'append-arg' ble-bind -m 'emacs' -f 'C-7' 'append-arg' ble-bind -m 'emacs' -f 'C-8' 'append-arg' ble-bind -m 'emacs' -f 'C-9' 'append-arg' ble-bind -m 'emacs' -f 'C-?' 'delete-region-or delete-backward-char' ble-bind -m 'emacs' -f 'C-@' 'set-mark' ble-bind -m 'emacs' -f 'C-\' 'bell' ble-bind -m 'emacs' -f 'C-]' 'character-search-forward' ble-bind -m 'emacs' -f 'C-^' 'bell' ble-bind -m 'emacs' -f 'C-_' 'emacs/undo' ble-bind -m 'emacs' -f 'C-a' 'beginning-of-line' ble-bind -m 'emacs' -f 'C-b' 'backward-char' ble-bind -m 'emacs' -f 'C-c' 'discard-line' ble-bind -m 'emacs' -f 'C-d' 'delete-region-or delete-forward-char-or-exit' ble-bind -m 'emacs' -f 'C-e' 'end-of-line' ble-bind -m 'emacs' -f 'C-f' 'forward-char' ble-bind -m 'emacs' -f 'C-g' 'bell' ble-bind -m 'emacs' -f 'C-h' 'delete-region-or delete-backward-char' ble-bind -m 'emacs' -f 'C-i' 'complete' ble-bind -m 'emacs' -f 'C-j' 'accept-line' ble-bind -m 'emacs' -f 'C-k' 'kill-forward-line' ble-bind -m 'emacs' -f 'C-l' 'clear-screen' ble-bind -m 'emacs' -f 'C-m' 'accept-single-line-or-newline' ble-bind -m 'emacs' -f 'C-n' 'forward-line history' ble-bind -m 'emacs' -f 'C-o' 'accept-and-next' ble-bind -m 'emacs' -f 'C-p' 'backward-line history' ble-bind -m 'emacs' -f 'C-q' 'emacs/quoted-insert' ble-bind -m 'emacs' -x 'C-r' '__atuin_history --keymap-mode=emacs' ble-bind -m 'emacs' -f 'C-s' 'history-isearch-forward' ble-bind -m 'emacs' -x 'C-t' 'fzf-file-widget' ble-bind -m 'emacs' -f 'C-u' 'kill-backward-line' ble-bind -m 'emacs' -f 'C-v' 'emacs/quoted-insert' ble-bind -m 'emacs' -f 'C-w' 'kill-region-or kill-backward-uword' ble-bind -m 'emacs' -f 'C-x !' 'complete show_menu:context=command' ble-bind -m 'emacs' -f 'C-x $' 'complete show_menu:context=variable' ble-bind -m 'emacs' -f 'C-x '\''' 'sabbrev-expand' ble-bind -m 'emacs' -f 'C-x (' 'start-keyboard-macro' ble-bind -m 'emacs' -f 'C-x )' 'end-keyboard-macro' ble-bind -m 'emacs' -f 'C-x *' 'complete insert_all:context=glob' ble-bind -m 'emacs' -f 'C-x ,' 'history-nsearch-backward-again' ble-bind -m 'emacs' -f 'C-x .' 'history-nsearch-forward-again' ble-bind -m 'emacs' -f 'C-x /' 'complete show_menu:context=filename' ble-bind -m 'emacs' -f 'C-x <' 'history-nsearch-backward' ble-bind -m 'emacs' -f 'C-x >' 'history-nsearch-forward' ble-bind -m 'emacs' -f 'C-x @' 'complete show_menu:context=hostname' ble-bind -m 'emacs' -f 'C-x P' 'print-keyboard-macro' ble-bind -m 'emacs' -f 'C-x U' 'emacs/redo' ble-bind -m 'emacs' -f 'C-x e' 'call-keyboard-macro' ble-bind -m 'emacs' -f 'C-x g' 'complete show_menu:context=glob' ble-bind -m 'emacs' -f 'C-x n' 'history-substring-search-forward' ble-bind -m 'emacs' -f 'C-x p' 'history-substring-search-backward' ble-bind -m 'emacs' -f 'C-x u' 'emacs/undo' ble-bind -m 'emacs' -f 'C-x ~' 'complete show_menu:context=username' ble-bind -m 'emacs' -f 'C-x up' 'history-search-backward' ble-bind -m 'emacs' -f 'C-x down' 'history-search-forward' ble-bind -m 'emacs' -f 'C-x C-e' 'edit-and-execute-command' ble-bind -m 'emacs' -f 'C-x C-g' 'bell' ble-bind -m 'emacs' -f 'C-x C-n' 'history-search-forward' ble-bind -m 'emacs' -f 'C-x C-p' 'history-search-backward' ble-bind -m 'emacs' -f 'C-x C-r' 'dabbrev-expand' ble-bind -m 'emacs' -f 'C-x C-u' 'emacs/undo' ble-bind -m 'emacs' -f 'C-x C-v' 'display-shell-version' ble-bind -m 'emacs' -f 'C-x C-x' 'exchange-point-and-mark' ble-bind -m 'emacs' -f 'C-x C-S-u' 'emacs/redo' ble-bind -m 'emacs' -f 'C-y' 'yank' ble-bind -m 'emacs' -f 'C-z' 'vi-editing-mode' ble-bind -m 'emacs' -f 'C-DEL' 'emacs/undo' ble-bind -m 'emacs' -f 'C-insert' 'copy-region-or copy-backward-uword' ble-bind -m 'emacs' -f 'C-home' 'beginning-of-text' ble-bind -m 'emacs' -f 'C-prior' 'history-beginning' ble-bind -m 'emacs' -f 'C-delete' 'delete-forward-cword' ble-bind -m 'emacs' -f 'C-end' 'end-of-text' ble-bind -m 'emacs' -f 'C-next' 'history-end' ble-bind -m 'emacs' -f 'C-right' 'forward-cword' ble-bind -m 'emacs' -f 'C-left' 'backward-cword' ble-bind -m 'emacs' -f 'C-S-a' '@marked beginning-of-line' ble-bind -m 'emacs' -f 'C-S-b' '@marked backward-char' ble-bind -m 'emacs' -f 'C-S-e' '@marked end-of-line' ble-bind -m 'emacs' -f 'C-S-f' '@marked forward-char' ble-bind -m 'emacs' -f 'C-S-i' 'menu-complete backward' ble-bind -m 'emacs' -f 'C-S-n' '@marked forward-line' ble-bind -m 'emacs' -f 'C-S-p' '@marked backward-line' ble-bind -m 'emacs' -f 'C-S-home' '@marked beginning-of-text' ble-bind -m 'emacs' -f 'C-S-end' '@marked end-of-text' ble-bind -m 'emacs' -f 'C-S-right' '@marked forward-cword' ble-bind -m 'emacs' -f 'C-S-left' '@marked backward-cword' ble-bind -m 'emacs' -f 'M-BS' 'copy-backward-sword' ble-bind -m 'emacs' -f 'M-TAB' 'complete context=dynamic-history' ble-bind -m 'emacs' -f 'M-RET' 'newline' ble-bind -m 'emacs' -f 'M-SP' 'set-mark' ble-bind -m 'emacs' -f 'M-!' 'complete context=command' ble-bind -m 'emacs' -f 'M-#' 'insert-comment' ble-bind -m 'emacs' -f 'M-$' 'complete context=variable' ble-bind -m 'emacs' -f 'M-&' 'tilde-expand' ble-bind -m 'emacs' -f 'M-'\''' 'sabbrev-expand' ble-bind -m 'emacs' -f 'M-*' 'complete insert_all' ble-bind -m 'emacs' -f 'M--' 'append-arg' ble-bind -m 'emacs' -f 'M-.' 'insert-last-argument' ble-bind -m 'emacs' -f 'M-/' 'complete context=filename' ble-bind -m 'emacs' -f 'M-0' 'append-arg' ble-bind -m 'emacs' -f 'M-1' 'append-arg' ble-bind -m 'emacs' -f 'M-2' 'append-arg' ble-bind -m 'emacs' -f 'M-3' 'append-arg' ble-bind -m 'emacs' -f 'M-4' 'append-arg' ble-bind -m 'emacs' -f 'M-5' 'append-arg' ble-bind -m 'emacs' -f 'M-6' 'append-arg' ble-bind -m 'emacs' -f 'M-7' 'append-arg' ble-bind -m 'emacs' -f 'M-8' 'append-arg' ble-bind -m 'emacs' -f 'M-9' 'append-arg' ble-bind -m 'emacs' -f 'M-<' 'history-beginning' ble-bind -m 'emacs' -f 'M->' 'history-end' ble-bind -m 'emacs' -f 'M-?' 'complete show_menu' ble-bind -m 'emacs' -f 'M-@' 'complete context=hostname' ble-bind -m 'emacs' -f 'M-B' '@marked backward-cword' ble-bind -m 'emacs' -f 'M-F' '@marked forward-cword' ble-bind -m 'emacs' -f 'M-M' '@marked non-space-beginning-of-line' ble-bind -m 'emacs' -f 'M-Y' 'yank-pop backward' ble-bind -m 'emacs' -f 'M-[ 5 C' 'forward-cword' ble-bind -m 'emacs' -f 'M-[ 5 D' 'backward-cword' ble-bind -m 'emacs' -f 'M-\' 'delete-horizontal-space' ble-bind -m 'emacs' -f 'M-^' 'history-expand-line' ble-bind -m 'emacs' -f 'M-_' 'insert-last-argument' ble-bind -m 'emacs' -f 'M-b' 'backward-cword' ble-bind -m 'emacs' -s 'M-c' ' \C-b\v \C-u`__fzf_cd__`\e\C-e\er\r\C-y\b\e \C-y\ey\C-x\C-x\C-d' ble-bind -m 'emacs' -f 'M-d' 'kill-forward-cword' ble-bind -m 'emacs' -f 'M-f' 'forward-cword' ble-bind -m 'emacs' -f 'M-g' 'complete context=glob' ble-bind -m 'emacs' -f 'M-h' 'kill-backward-cword' ble-bind -m 'emacs' -f 'M-l' 'downcase-eword' ble-bind -m 'emacs' -f 'M-m' 'non-space-beginning-of-line' ble-bind -m 'emacs' -f 'M-r' 'redraw-line' ble-bind -m 'emacs' -f 'M-t' 'transpose-ewords' ble-bind -m 'emacs' -f 'M-u' 'upcase-eword' ble-bind -m 'emacs' -f 'M-w' 'copy-region-or copy-backward-uword' ble-bind -m 'emacs' -f 'M-x' 'emacs/execute-named-command' ble-bind -m 'emacs' -f 'M-y' 'yank-pop' ble-bind -m 'emacs' -f 'M-z' 'zap-to-char' ble-bind -m 'emacs' -f 'M-{' 'complete insert_braces' ble-bind -m 'emacs' -f 'M-~' 'complete context=username' ble-bind -m 'emacs' -f 'M-DEL' 'copy-backward-sword' ble-bind -m 'emacs' -f 'M-delete' 'copy-forward-sword' ble-bind -m 'emacs' -f 'M-right' 'forward-cword' ble-bind -m 'emacs' -f 'M-left' 'backward-cword' ble-bind -m 'emacs' -f 'M-S-b' '@marked backward-cword' ble-bind -m 'emacs' -f 'M-S-f' '@marked forward-cword' ble-bind -m 'emacs' -f 'M-S-m' '@marked non-space-beginning-of-line' ble-bind -m 'emacs' -f 'M-S-y' 'yank-pop backward' ble-bind -m 'emacs' -f 'M-S-right' '@marked forward-sword' ble-bind -m 'emacs' -f 'M-S-left' '@marked backward-sword' ble-bind -m 'emacs' -f 'C-M-?' 'copy-backward-sword' ble-bind -m 'emacs' -f 'C-M-]' 'character-search-backward' ble-bind -m 'emacs' -f 'C-M-e' 'shell-expand-line' ble-bind -m 'emacs' -f 'C-M-g' 'bell' ble-bind -m 'emacs' -f 'C-M-h' 'copy-backward-sword' ble-bind -m 'emacs' -f 'C-M-i' 'complete context=dynamic-history' ble-bind -m 'emacs' -f 'C-M-l' 'redraw-line' ble-bind -m 'emacs' -f 'C-M-m' 'newline' ble-bind -m 'emacs' -f 'C-M-u' 'universal-arg' ble-bind -m 'emacs' -f 'C-M-y' 'insert-nth-argument' # keymap auto_complete ble-bind -m 'auto_complete' -f '__defchar__' 'auto_complete/self-insert' ble-bind -m 'auto_complete' -f '__default__' 'auto_complete/cancel-default' ble-bind -m 'auto_complete' -f '__line_limit__' 'nop' ble-bind -m 'auto_complete' -f 'auto_complete_enter' 'auto_complete/notify-enter' ble-bind -m 'auto_complete' -f 'end' 'auto_complete/insert-on-end' ble-bind -m 'auto_complete' -f 'right' 'auto_complete/insert-on-end' ble-bind -m 'auto_complete' -f 'S-RET' 'auto_complete/insert' ble-bind -m 'auto_complete' -f 'C-RET' 'auto_complete/accept-line' ble-bind -m 'auto_complete' -f 'C-e' 'auto_complete/insert-on-end' ble-bind -m 'auto_complete' -f 'C-f' 'auto_complete/insert-on-end' ble-bind -m 'auto_complete' -f 'C-g' 'auto_complete/cancel' ble-bind -m 'auto_complete' -f 'C-j' 'auto_complete/accept-line' ble-bind -m 'auto_complete' -f 'C-x C-g' 'auto_complete/cancel' ble-bind -m 'auto_complete' -f 'C-right' 'auto_complete/insert-cword' ble-bind -m 'auto_complete' -f 'C-S-m' 'auto_complete/insert' ble-bind -m 'auto_complete' -f 'M-f' 'auto_complete/insert-cword' ble-bind -m 'auto_complete' -f 'M-right' 'auto_complete/insert-word' ble-bind -m 'auto_complete' -f 'C-M-g' 'auto_complete/cancel' # keymap menu_complete ble-bind -m 'menu_complete' -f 'TAB' 'menu/forward cyclic' ble-bind -m 'menu_complete' -f 'RET' 'menu_complete/accept' ble-bind -m 'menu_complete' -f '0' 'menu/append-arg' ble-bind -m 'menu_complete' -f '1' 'menu/append-arg' ble-bind -m 'menu_complete' -f '2' 'menu/append-arg' ble-bind -m 'menu_complete' -f '3' 'menu/append-arg' ble-bind -m 'menu_complete' -f '4' 'menu/append-arg' ble-bind -m 'menu_complete' -f '5' 'menu/append-arg' ble-bind -m 'menu_complete' -f '6' 'menu/append-arg' ble-bind -m 'menu_complete' -f '7' 'menu/append-arg' ble-bind -m 'menu_complete' -f '8' 'menu/append-arg' ble-bind -m 'menu_complete' -f '9' 'menu/append-arg' ble-bind -m 'menu_complete' -f '__default__' 'menu_complete/exit-default' ble-bind -m 'menu_complete' -f '__line_limit__' 'nop' ble-bind -m 'menu_complete' -f 'home' 'menu/beginning-of-page' ble-bind -m 'menu_complete' -f 'prior' 'menu/backward-page' ble-bind -m 'menu_complete' -f 'end' 'menu/end-of-page' ble-bind -m 'menu_complete' -f 'next' 'menu/forward-page' ble-bind -m 'menu_complete' -f 'up' 'menu/backward-line' ble-bind -m 'menu_complete' -f 'down' 'menu/forward-line' ble-bind -m 'menu_complete' -f 'right' 'menu/forward-column' ble-bind -m 'menu_complete' -f 'left' 'menu/backward-column' ble-bind -m 'menu_complete' -f 'S-TAB' 'menu/backward cyclic' ble-bind -m 'menu_complete' -f 'C-0' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-1' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-2' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-3' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-4' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-5' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-6' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-7' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-8' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-9' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-b' 'menu/backward-column' ble-bind -m 'menu_complete' -f 'C-f' 'menu/forward-column' ble-bind -m 'menu_complete' -f 'C-g' 'menu_complete/cancel' ble-bind -m 'menu_complete' -f 'C-i' 'menu/forward cyclic' ble-bind -m 'menu_complete' -f 'C-m' 'menu_complete/accept' ble-bind -m 'menu_complete' -f 'C-n' 'menu/forward-line' ble-bind -m 'menu_complete' -f 'C-p' 'menu/backward-line' ble-bind -m 'menu_complete' -f 'C-x SP' 'menu_complete/toggle-hidden' ble-bind -m 'menu_complete' -f 'C-x a' 'menu_complete/switch-style align-nowrap' ble-bind -m 'menu_complete' -f 'C-x c' 'menu_complete/switch-style dense-nowrap' ble-bind -m 'menu_complete' -f 'C-x d' 'menu_complete/switch-style desc' ble-bind -m 'menu_complete' -f 'C-x l' 'menu_complete/switch-style linewise' ble-bind -m 'menu_complete' -f 'C-x right' 'menu_complete/switch-style +' ble-bind -m 'menu_complete' -f 'C-x left' 'menu_complete/switch-style -' ble-bind -m 'menu_complete' -f 'C-x C-g' 'menu_complete/cancel' ble-bind -m 'menu_complete' -f 'C-x C-n' 'menu_complete/switch-style +' ble-bind -m 'menu_complete' -f 'C-x C-p' 'menu_complete/switch-style -' ble-bind -m 'menu_complete' -f 'C-S-i' 'menu/backward cyclic' ble-bind -m 'menu_complete' -f 'M-0' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-1' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-2' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-3' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-4' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-5' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-6' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-7' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-8' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'M-9' 'menu/append-arg' ble-bind -m 'menu_complete' -f 'C-M-g' 'menu_complete/cancel' ```
akinomyoga commented 1 month ago

As noted in README 3.3, C-RET can be used only when your terminal supports it or allows configuring it. What is your terminal?

travisdowns commented 1 month ago

Thanks @akinomyoga for the quick reply. I'm using gnome-terminal. I had read 3.3 and also 3.6.4 where it points but the implication wasn't clear to me. I didn't understand until just now that modifyOtherKeys was a terminal feature (I thought it was a ble.sh setting).

So as I understand it: my terminal does not support modifyOtherKeys-like behavior, so RET is transmitted as C-m and C-RET cannot even be detected as distinct since it is also transmitted as C-m?

To make the latter determination I used showkey -a at the terminal I and pushed in sequence RET, left_ctrl+RET and right_ctrl+RET and they all show as simply C-m:

$ sudo showkey -a

Press any keys - Ctrl-D will terminate this program

^M   13 0015 0x0d
^M   13 0015 0x0d
^M   13 0015 0x0d

So then my best option is to rely on C-j I think.

akinomyoga commented 1 month ago

I was trying to check whether there is a way to configure the key sequence for each key combination, but GNOME Terminal (whose core is called VTE) intensionally doesn't seem to implement the configuring. I found a comment by the VTE developer in https://github.com/microsoft/terminal/issues/2005#issuecomment-512450478. In addition, the developer tells on the same thread that they don't want to implement modifyOtherKeys either because they think modifyOtherKeys is inconsistent.

akinomyoga commented 1 month ago

So then my best option is to rely on C-j I think.

So yes, I think so, unfortunately.

travisdowns commented 1 month ago

No worries and much thanks for the follow up!