User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

bind [2006/09/18 12:42] (current)
Line 1: Line 1:
 +[[bind]] \\ 
 +[[bind]] -DEFAULTS \\ 
 +[[bind]] //<​character_sequence>// ​ \\ 
 +[[bind]] -RECURSIVE //<​character_sequence>//​ \\ 
 +[[bind]] //<​character_sequence>//​ //<​action>//​ //<​args>//​ \\ 
 +[[bind]] -SYMBOLIC //<​symbolic_name>//​ //<​action>​ //<​args>//​ \\ 
 +BIND allows you to control how the client behaves when you enter a sequence
 +of one or more keys.  By default, the client binds most of the common key
 +sequences to useful default values. ​ You may not necessarily need to bind
 +your own key sequences unless you do not like the default values.
 +Input to the client is broken into **sequences**. ​ A sequence is a 
 +combination of 1 or more bytes that map to a key binding. ​ Each time you
 +finish a sequence, the bound action is performed. ​ If you enter a 
 +sequence that is not bound, the sequence is ignored.
 +A **sequence** can be overlapping (ambiguous). ​ You may bind the sequence
 +%%^[%% (the escape key) to one action and %%^[[A%% (cursor up) to another ​
 +action. ​ The client does its best to figure out which sequence you want to 
 +use by matching the longest valid sequence.  ​
 +A binding can be deleted by rebinding it to the special action name 
 +[[.bind nothing|NOTHING]]. ​ Input to the client that does not fulfill a 
 +bound key sequence is simply ignored.
 +Sometimes your terminal will reserve certain control characters for its
 +own use and never pass those characters onto application programs. ​ For
 +these characters (such as ^S or ^Q if you're using flow control), the 
 +client will let you bind them, but since you can't generate these keys, 
 +the bindings would never be used.  This is not a bug in the client, but
 +an unfortunate circumstance of having multiple layers of input handling.
 +You may want to include an unprintable character in your sequence and 
 +your text editor may not allow you to insert that character literally ​
 +into a file.  You may use the following printable character sequences ​
 +as substitutes for the unprintable character you want to bind.  Please ​
 +note that you always have to backslash the \ and ^ characters if you want 
 +to use them literally.
 +^ If you want to bind ^ Use the sequence ^
 +| Ascii value 0 | %%^@%% |
 +| Ascii value 1 | %%^A%% or %%^a%% |
 +| Ascii value 2 | %%^B%% or %%^b%% |
 +| ... and so on ... ||
 +| Ascii value 26          | %%^Z%% or %%^z%% |
 +| Ascii value 27 (escape) | %%^[%% or %%\e%% |
 +| Ascii value 28          | %%^\%% |
 +| Ascii value 29          | %%^]%% |
 +| Ascii value 30 | %%^^%% |
 +| Ascii value 31 | %%^_%% |
 +| Ascii value 92 (backslash) | %%\\%% |
 +| Ascii value 94 (caret) | %%\^%% |
 +| Ascii value 127 | %%^?%% |
 +| Any value 0-255 | \nnn where <nnn> is an octal number from 000 to 177. |
 +Key bindings are always case sensitive. ​ Always.
 +Try to avoid binding single, printable keys to anything. ​ By default
 +they are bound to [[.bind self_insert|SELF_INSERT]] and you usually ​
 +want to keep it that way.  If you really screw things up, 
 +[[bind|BIND -DEFAULTS]] will reset all of your keybindings to the original ​
 +values, which will fix most problems.
 +If possible, it is recommended you use the symbolic name for the key
 +(such as '​key_up'​). ​ The list of symbolic names is found in your system'​s
 +terminfo man page (``man terminfo''​).
 +If you want to see all of the sequences that are bound to a keybinding, ​
 +use the [[rbind]] command.
 +The [[bind parse_command|parse_command]] keybinding is the only binding that
 +takes an argument.
 +To bind control-Q (%%^Q%%) to [[.bind quote_character|QUOTE_CHARACTER]] ​
 +      /bind ^Q quote_character
 +To bind the right arrow (ESC-[-C) to 
 +[[.bind forward_character|FORWARD_CHARACTER]]:​
 +      /bind ^[[C FORWARD_CHARACTER
 +(or better yet)
 +      /bind -symbolic key_right FORWARD_CHARACTER
 +#$EPIC: bind.txt,v 1.2 2006/09/18 12:42:25 jnelson Exp $
bind.txt ยท Last modified: 2006/09/18 12:42 (external edit)