I searched man bash
, but couldn't find anything that lists out all current bind -x
key bindings. Is there any way I could do that? I tried the following:
$ bind -x '"\C-`":"echo hello"'
# test binding: press CTRL+`
hello
# Binding works!
$ bind -p | grep 'hello'
# no output
$ bind -S
# no output
So, is there any way I could see a list of all bind -x
currently active?
When you're typing at the bash command line, press Ctrl + A to move the cursor to the beginning of the line, or Ctrl + E to move it to the end. These are "key bindings" — your keyboard actions are bound to a function that moves the cursor.
Bash Shell -x Option. Invoking a Bash shell with the -x option causes each shell command to be printed before it is executed. This is especially useful for diagnosing problems with installation shell scripts.
$() means: "first evaluate this, and then evaluate the rest of the line". Ex : echo $(pwd)/myFile.txt. will be interpreted as echo /my/path/myFile.txt. On the other hand ${} expands a variable.
BIND is a nameserver service responsible for performing domain-name-to-IP conversion on Linux-based DNS servers.
Seems like you can use bind -X
(new in Bash 4.3):
$ help bind
...
-x keyseq:shell-command Cause SHELL-COMMAND to be executed when
KEYSEQ is entered.
-X List key sequences bound with -x and
associated commands in a form that can be
reused as input.
...
$
The above answer returned empty output on bash 4.3.48
for me. But capital ‘P’ does work:
bind -P
Explanation
-P List current readline function names and bindings.
-p Display readline function names and bindings in such a
way that they can be re-read.
Sample output
set-mark can be found on "\C-@", "\e ".
shell-expand-line can be found on "\e\C-e".
start-kbd-macro can be found on "\C-x(".
tilde-expand can be found on "\e&".
transpose-chars can be found on "\C-t".
transpose-words can be found on "\et".
undo can be found on "\C-x\C-u", "\C-_".
unix-line-discard can be found on "\C-u".
unix-word-rubout can be found on "\C-w".
upcase-word can be found on "\eu".
yank can be found on "\C-y".
yank-last-arg can be found on "\e.", "\e_".
yank-nth-arg can be found on "\e\C-y".
yank-pop can be found on "\ey".
Since it's surprisingly difficult to find the manpage for it, here it is:
bind [-m keymap] [-lpsvPSVX]
bind [-m keymap] [-q function] [-u function] [-r keyseq]
bind [-m keymap] -f filename
bind [-m keymap] -x keyseq:shell-command
bind [-m keymap] keyseq:function-name
bind readline-command
Display current readline key and function bindings, bind a key
sequence to a readline function or macro, or set a readline
variable. Each non-option argument is a command as it would
appear in .inputrc, but each binding or command must be passed
as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
Options, if supplied, have the following meanings:
-m keymap
Use keymap as the keymap to be affected by the subsequent
bindings. Acceptable keymap names are emacs,
emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
vi-command, and vi-insert. vi is equivalent to
vi-command; emacs is equivalent to emacs-standard.
-l List the names of all readline functions.
-p Display readline function names and bindings in such a
way that they can be re-read.
-P List current readline function names and bindings.
-s Display readline key sequences bound to macros and the
strings they output in such a way that they can be re-
read.
-S Display readline key sequences bound to macros and the
strings they output.
-v Display readline variable names and values in such a way
that they can be re-read.
-V List current readline variable names and values.
-f filename
Read key bindings from filename.
-q function
Query about which keys invoke the named function.
-u function
Unbind all keys bound to the named function.
-r keyseq
Remove any current binding for keyseq.
-x keyseq:shell-command
Cause shell-command to be executed whenever keyseq is
entered. When shell-command is executed, the shell sets
the READLINE_LINE variable to the contents of the
readline line buffer and the READLINE_POINT variable to
the current location of the insertion point. If the
executed command changes the value of READLINE_LINE or
READLINE_POINT, those new values will be reflected in the
editing state.
-X List all key sequences bound to shell commands and the
associated commands in a format that can be reused as
input.
The return value is 0 unless an unrecognized option is given or
an error occurred.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With