Also check out 

Zsh Command Architect in action:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/psprint/zsh-cmd-architect/master/doc/install.sh)"
To update run the command again.
ZCA will be installed at ~/.config/zca/zsh-cmd-architect, config files will be copied to ~/.config/zca. .zshrc
will be updated with only 4 lines of code that will be added to the bottom.
After installing and reloading shell give ZCA a quick try with Ctrl-T.
Installation With Zplugin
Add zplugin load psprint/zsh-cmd-architect to .zshrc. The config files will be available in ~/.config/zca.
Add zgen load psprint/zsh-cmd-architect 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/zca.
Add antigen bundle psprint/zsh-cmd-architect to .zshrc. There also
should be antigen apply. The config files will be in ~/.config/znt.
After extracting ZCA to {some-directory} add following two lines to ~/.zshrc:
fpath+=( {some-directory} )
source "{some-directory}/zsh-cmd-architect.plugin.zsh"As you can see, no plugin manager is needed to use the *.plugin.zsh
file. The above two lines of code are all that almost all plugin
managers do. In fact, what's actually needed is only:
source "{some-directory}/zsh-cmd-architect.plugin.zsh"because ZCA detects if it is used by any plugin manager and can
handle $fpath update by itself.
Running script doc/generate_single_file will create single-file version of ZCA.
It can be sourced from .zshrc. Don't forget about configuration files (copy them to ~/.config/zca).
ZCA allows to copy segments of commands in history, rearrange segments of current command,
delete segments of current command. This way user glues command from parts without using
a mouse. Advanced history search (multi word, without duplicate lines) allows to quickly find
the parts.
Keys are:
Ctrl-T- start Zsh Command Architect (Zshell binding)Enter- delete selected segment (when in command window) or add selected segment (when in history window)[or]- move active segment (when in command window)Shift-leftorShift-right- move active segment (when in command window)Tab- switch between the two available windowsg, G- beginning and end of the list/- start incremental searchEsc- exit incremental search, clearing filter<,>,{,}- horizontal scrollCtrl-L- redraw of whole displayCtrl-O,o- enter uniq mode (no duplicate lines)Ctrl-W(in incremental search) - delete whole wordCtrl-K(in incremental search) - delete whole lineCtrl-D,Ctrl-U- half page up or downCtrl-P,Ctrl-N- previous and next (also done with vim's j,k)
ZCA is fastest with Zsh before 5.0.6 and starting from 5.2
Channel #zplugin@freenode is a support place for all author's projects. Connect to:
chat.freenode.net:6697 (SSL) or chat.freenode.net:6667
and join #zplugin.
Following is a quick access via Webchat
If TERM=screen-256color (often a case for tmux and screen sessions) then
ncv terminfo capability will have 2nd bit set. This in general means that
underline won't work. To fix this by creating your own ncv=0-equipped
terminfo file, run:
{ infocmp -x screen-256color; printf '\t%s\n' 'ncv@,'; } > /tmp/t && tic -x /tmp/tA file will be created in directory ~/.terminfo and will be automatically
used, tmux and screen will work. Similar is for Linux virtual terminal:
{ infocmp -x linux; printf '\t%s\n' 'ncv@,'; } > /tmp/t && tic -x /tmp/tIt will not display underline properly, but will instead highlight by a color,
which is quite nice. The same will not work for FreeBSD's vt, ZCA will detect
if that vt is used and will revert to highlighting elements via reverse mode.



