\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 terminals, 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. If such a script produces output, the script needs to finish by calling 'commandline -f repaint' in order to tell fish that a repaint is in order. Key bindings are not saved between sessions by default. To save custom keybindings, edit the \c fish_user_key_bindings function and insert the appropriate \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 The following special input functions are available: - \c backward-char, moves one character to the left - \c backward-delete-char, deletes one character of input to the left of the cursor - \c backward-kill-line, move everything from the beginning of the line to the cursor to the killring - \c backward-kill-word, move the word to the left of the cursor to the killring - \c backward-word, move one word to the left - \c beginning-of-history, move to the beginning of the history - \c beginning-of-line, move to the beginning of the line - \c capitalize-word, make the current word begin with a capital letter - \c complete, guess the remainder of the current token - \c delete-char, delete one character to the right of the cursor - \c delete-line, delete the entire line - \c downcase-word, make the current word lowercase - \c dump-functions, print a list of all key-bindings - \c end-of-history, move to the end of the history - \c end-of-line, move to the end of the line - \c explain, print a description of possible problems with the current command - \c forward-char, move one character to the right - \c forward-word, move one word to the right - \c history-search-backward, search the history for the previous match - \c history-search-forward, search the history for the next match - \c kill-line, move everything from the cursor to the end of the line to the killring - \c kill-whole-line, move the line to the killring - \c kill-word, move the next word to the killring - \c upcase-word, make the current word uppercase - \c yank, insert the latest entry of the killring into the buffer - \c yank-pop, rotate to the previous entry of the killring \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.