3.4. Key Bindings¶
If you want to bind a command to a key you can do so by adding the pair to the [bindings] section. This will introduce a global binding, that works in all modes. To make a binding specific to a mode you have to add the pair under the subsection named like the mode. For instance, if you want to bind T to open a new search for threads tagged with ‘todo’, and be able to toggle this tag in search mode, you’d add this to your config
[bindings] T = search tag:todo [[search]] t = toggletags todo
Known modes are:
Have a look at the urwid User Input documentation on how key strings are formatted.
3.4.1. Default bindings¶
User-defined bindings are combined with the default bindings listed below.
up = move up down = move down page up = move page up page down = move page down mouse press 4 = move up mouse press 5 = move down j = move down k = move up 'g g' = move first G = move last ' ' = move page down 'ctrl d' = move halfpage down 'ctrl u' = move halfpage up @ = refresh ? = help bindings I = search tag:inbox AND NOT tag:killed '#' = taglist shift tab = bprevious U = search tag:unread tab = bnext \ = prompt 'search ' d = bclose $ = flush m = compose o = prompt 'search ' q = exit ';' = bufferlist ':' = prompt . = repeat [bufferlist] x = close enter = open [search] enter = select a = toggletags inbox & = toggletags killed ! = toggletags flagged s = toggletags unread l = retagprompt O = refineprompt | = refineprompt [envelope] a = prompt 'attach ~/' y = send P = save s = 'refine Subject' f = prompt 'set From ' t = 'refine To' b = 'refine Bcc' c = 'refine Cc' S = togglesign enter = edit 'g f' = togglesource [taglist] enter = select [thread] enter = select C = fold * E = unfold * c = fold e = unfold < = fold > = unfold 'g f' = togglesource H = toggleheaders P = print --all --separately --add_tags S = save --all g = reply --all f = forward p = print --add_tags n = editnew b= bounce s = save r = reply | = prompt 'pipeto ' 'g j' = move next sibling 'g k' = move previous sibling 'g h' = move parent 'g l' = move first reply ' ' = move next
In prompts the following hardcoded bindings are available.
|Ctrl-f/b||Moves the curser one character to the right/left|
|Alt-f/b Shift-right/left||Moves the cursor one word to the right/left|
|Ctrl-a/e||Moves the curser to the beginning/end of the line|
|Ctrl-d||Deletes the character under the cursor|
|Alt-d||Deletes everything from the cursor to the end of the current or next word|
|Alt-Delete/Backspace Ctrl-w||Deletes everything from the cursor to the beginning of the current or previous word|
|Ctrl-k||Deletes everything from the cursor to the end of the line|
|Ctrl-u||Deletes everything from the cursor to the beginning of the line|
3.4.2. Overwriting defaults¶
To disable a global binding you can redefine it in your config to point to an empty command string. For example, to add a new global binding for key a, which is bound to toggletags inbox in search mode by default, you can remap it as follows.
[bindings] a = NEW GLOBAL COMMAND [[search]] a =
If you omit the last two lines, a will still be bound to the default binding in search mode.