mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-02-14 02:42:45 +08:00
![David Adam (zanchey)](/assets/img/avatar_default.png)
Large list of changes, including formatting and typos for most commands. More substantive changes have been made to alias, bind, block, break, builtin, case, cd, commandline, count, else, emit, fish_config, funced, function, functions, history, math, mimedb, nextd, not, popd, prevd, pushd, pwd, random, read, set, set_color, switch, test, trap, type, ulimit, umask, and while.
65 lines
2.9 KiB
Plaintext
65 lines
2.9 KiB
Plaintext
\section bind bind - handle fish key bindings
|
|
|
|
\subsection bind-synopsis Synopsis
|
|
<tt>bind [OPTIONS] SEQUENCE COMMAND</tt>
|
|
|
|
\subsection bind-description Description
|
|
|
|
<tt>bind</tt> adds a binding for the specified key sequence to the
|
|
specified command.
|
|
|
|
SEQUENCE is the character sequence to bind to. These should be written as
|
|
<a href="index.html#escapes">fish escape sequences</a>. For example, because pressing
|
|
the Alt key and another character sends that character prefixed with
|
|
an escape character, Alt-based key bindings can be written using the
|
|
\c \\e escape. For example, Alt-w can be written as
|
|
<tt>\\ew</tt>. The control character can be written in much the same way
|
|
using the \c \\c escape, for example Control-x (^X) can be written as
|
|
<tt>\\cx</tt>. Note that Alt-based key bindings are case sensitive and
|
|
Control-based key bindings are not. This is a constraint of text-based
|
|
termainls, not \c fish.
|
|
|
|
The default key binding can be set by specifying a SEQUENCE of the empty
|
|
string (that is, <code>''</code>). It will be used whenever no
|
|
other binding matches. For most key bindings, it makes sense to use
|
|
the \c self-insert function (i.e. <tt>bind '' self-insert</tt> as the
|
|
default keybinding. This will insert any keystrokes not specifically
|
|
bound to into the editor. Non-printable characters are ignored by the
|
|
editor, so this will not result in control sequences being
|
|
printable.
|
|
|
|
If the -k switch is used, the name of the key (such as down, up or
|
|
backspace) is used instead of a sequence. The names used are the same
|
|
as the corresponding curses variables, but without the 'key_'
|
|
prefix. (See \c terminfo(5) for more information, or use <tt>bind
|
|
--key-names</tt> for a list of all available named keys.)
|
|
|
|
COMMAND can be any fish command, but it can also be one of a set of
|
|
special input functions. These include functions for moving the
|
|
cursor, operating on the kill-ring, performing tab completion,
|
|
etc. Use 'bind --function-names' for a complete list of these input
|
|
functions.
|
|
|
|
When COMMAND is a shellscript command, it is a good practice to put
|
|
the actual code into a <a href="#function">function</a> and simply
|
|
bind to the function name. This way it becomes significantly easier to
|
|
test the function while editing, and the result is usually more
|
|
readable as well.
|
|
|
|
Key bindings are not saved between sessions by default. To save custom
|
|
keybindings, edit the \c fish_user_key_bindings function and insert the
|
|
appropirate \c bind statements.
|
|
|
|
The following parameters are available:
|
|
|
|
- <tt>-k</tt> or <tt>--key</tt> Specify a key name, such as 'left' or 'backspace' instead of a character sequence
|
|
- <tt>-K</tt> or <tt>--key-names</tt> Display a list of available key names
|
|
- <tt>-f</tt> or <tt>--function-names</tt> Display a list of available input functions
|
|
|
|
\subsection bind-example Examples
|
|
|
|
<tt>bind \\cd 'exit'</tt> causes \c fish to exit when Control-d is pressed.
|
|
|
|
<tt>bind -k ppage history-search-backward</tt> performs a history search when the Page Up key is pressed.
|
|
|