⚙️ Editing Workbench
z-shell/zsh-editing-workbench
Organized shortcuts for various command line editing operations, plus new operations as incremental history word completion.
Keys | Description |
---|---|
Alt+w | Delete a shell word 1 |
Alt+t | Transpose (swap) shell words |
Alt+m | Copy previous shell word, or word before that, etc. when used multiple times |
Alt+M | Just copy previous shell word without iterating to previous ones |
Alt+. | Copy last shell word from previous line, or line before that, etc. when used multiple times; can be combined with Alt+m |
Ctrl+W | Delete word according to configured word style 2: |
Alt+r | Transpose (swap) words according to configured word style (cursor needs to be placed on beginning of word to swap) |
Alt+/ | Complete some word 3 from history |
Alt+h, Alt+H | Complete shell word from history (custom version) |
Alt+J | Break line |
Alt+_ | Undo |
Install Zsh Editing Workbench
- Zi
- Zgen
- Standalone
Add the following to .zshrc
. The config files will be available in ~/.config/zew
.
zi load z-shell/zsh-editing-workbench
Add zgen load z-shell/zsh-editing-workbench
to .zshrc
and issue a zgen reset
(this assumes that there is a proper zgen save
construct in .zshrc
). The config files will be available in ~/.config/zew
.
After extracting ZEW
to {some-directory}
add the following two lines to ~/.zshrc
:
fpath+=( {some-directory} )
source "{some-directory}/zsh-editing-workbench.plugin.zsh"
Configure terminals
- XTerm
To make Alt key work like expected under XTerm
add XTerm*metaSendsEscape: true
to your resource file, e.g.:
echo 'XTerm*metaSendsEscape: true' >> ~/.Xresources
- Konsole
To make Alt key work like expected under Konsole
add Konsole*keysym.Meta: Meta
to your resource file, e.g.:
echo 'Konsole*keysym.Meta: Meta' >> ~/.config/konsolerc
Footnotes
-
A shell word is a text that Zsh would see as single segment. For example
$(( i + 1 ))
is a single shell word. ↩ -
A word style defines a way Zsh recognizes segments (words) of text in commands that want to use the style information. The style can be configured in zew.conf to be one of:
- bash words are built up of alphanumeric characters only.
- normal as in normal shell operation: word characters are alphanumeric characters plus any characters present in the string given by the parameter
$WORDCHARS
. - shell words are complete shell command arguments, possibly including complete quoted strings, or any tokens special to the shell.
- whitespace words are any set of characters delimited by whitespace.
- default restore the default settings; this is the same as 'normal' with default
$WORDCHARS
value.
-
Some word is in general a sophisticated word, but not a shell word, because of limitations in Zsh history word completion. Some word is rather not build from special characters, it works well for normal characters. ↩