ble.sh
ble.sh copied to clipboard
C-RET never works
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.
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'
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?
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.
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.
So then my best option is to rely on
C-jI think.
So yes, I think so, unfortunately.
No worries and much thanks for the follow up!