❮ Zi ❯
- H-S-MW (History Search Multi Word)
Binds Ctrl-R to search for multiple keywords.
History entries that match all keywords will be found and syntax highlighted.
See all occurrences of a command together with surrounding commands set:
zstyle :plugin:history-search-multi-word reset-prompt-protect 1Use zle reset-prompt in sched calls, in the presence of z-shell/F-Sy-H, zsh-users/zsh-syntax-highlighting, zsh-users/zsh-autosuggestions, and other plugins that hook up into Z-Shell by overloading ZLE widgets.
For example, to refresh the clock in prompt every second:
PROMPT=%B%F{yellow}%D{%H:%M:%S}%B%b%f
schedprompt() {
zle && zle reset-prompt
sched +1 schedprompt
}
zmodload -i zsh/sched
schedpromptThe reset-prompt-protect zstyle needs to be set to 1 for correct cooperation with H-S-MW.
Alternatively, you could use zle .reset-prompt (i.e. with the dot in front) to call the original, not an overloaded reset-prompt widget (created by F-Sy-H, zsh-autosuggestions, etc.).
zstyle ":history-search-multi-word" page-size "8" # Number of entries to show (default is $LINES/3)
zstyle ":history-search-multi-word" highlight-color "fg=yellow,bold" # Color in which to highlight matched, searched text (default bg=17 on 256-color terminals)
zstyle ":plugin:history-search-multi-word" synhl "yes" # Whether to perform syntax highlighting (default true)
zstyle ":plugin:history-search-multi-word" active "underline" # Effect on active history entry. Try: standout, bold, bg=blue (default underline)
zstyle ":plugin:history-search-multi-word" check-paths "yes" # Whether to check paths for existence and mark with magenta (default true)
zstyle ":plugin:history-search-multi-word" clear-on-cancel "no" # Whether pressing Ctrl-C or ESC should clear entered querySyntax highlighting is customized via HSMW_HIGHLIGHT_STYLES associative array. It has keys like reserved-word, alias, command, path, etc. which are assigned with strings like fg=blue,bold, to configure how given elements are to be colored. The complete list of available keys is at the beginning of functions/hsmw-highlight.
If you assign this array in ~/.zshrc before or after loading hsmw you will change the defaults.
Sets path key – paths that exist will be highlighted with background magenta, foreground white, bold
typeset -gA HSMW_HIGHLIGHT_STYLES
HSMW_HIGHLIGHT_STYLES[path]="bg=magenta,fg=white,bold"typeset -gA HSMW_HIGHLIGHT_STYLES
HSMW_HIGHLIGHT_STYLES[single-hyphen-option]="fg=cyan"
HSMW_HIGHLIGHT_STYLES[double-hyphen-option]="fg=cyan"HSMW_HIGHLIGHT_STYLES[commandseparator]="fg=241,bg=17"The plugin is "standalone", which means that only sourcing it is needed. So to install, unpack H-S-MW somewhere and add to ~/.zshrc:
source {where-hsmw-is}/H-S-MW.plugin.zshIf using a plugin manager, then Zi is recommended, but you can use others if you prefer:
Add zi load z-shell/H-S-MW to your ~/.zshrc file. Zi will handle cloning the plugin for you automatically the next time you start zsh.
Oh My Zsh (OMZ)
-
Run this command to clone and mv to the ~/.oh-my-zsh/custom/plugins directory
git clone https://github.com/z-shell/H-S-MW.git \ ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/H-S-MW -
Add
H-S-MWto your plugin list in the ~/.zshrc fileplugins=(... H-S-MW)
Add zinit load z-shell/H-S-MW to your .zshrc file.
Add antigen bundle z-shell/H-S-MW to your .zshrc file. Antigen will handle cloning the plugin for you automatically the next time you start zsh. You can also add the plugin to a running zsh with antigen bundle z-shell/H-S-MW for testing before adding it to your .zshrc.
- Add
zgen load z-shell/H-S-MWto your .zshrc file in the same place you're doing your otherzgen loadcalls in. - Start a new terminal session