mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-29 04:53:17 +02:00
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> Co-authored-by: Marc Cornellà <marc@mcornella.com>
251 lines
11 KiB
Markdown
251 lines
11 KiB
Markdown
# zsh-history-substring-search
|
||
|
||
This is a clean-room implementation of the [Fish shell][1]'s history search
|
||
feature, where you can type in any part of any command from history and then
|
||
press chosen keys, such as the UP and DOWN arrows, to cycle through matches.
|
||
|
||
[1]: http://fishshell.com
|
||
[2]: http://www.zsh.org/mla/users/2009/msg00818.html
|
||
[3]: http://sourceforge.net/projects/fizsh/
|
||
[4]: https://github.com/robbyrussell/oh-my-zsh/pull/215
|
||
[5]: https://github.com/zsh-users/zsh-history-substring-search
|
||
[6]: https://github.com/zsh-users/zsh-syntax-highlighting
|
||
|
||
|
||
Requirements
|
||
------------------------------------------------------------------------------
|
||
|
||
* [ZSH](http://zsh.sourceforge.net) 4.3 or newer
|
||
|
||
Install
|
||
------------------------------------------------------------------------------
|
||
|
||
Using the [Homebrew]( https://brew.sh ) package manager:
|
||
|
||
brew install zsh-history-substring-search
|
||
echo 'source $(brew --prefix)/share/zsh-history-substring-search/zsh-history-substring-search.zsh' >> ~/.zshrc
|
||
|
||
Using [Fig](https://fig.io):
|
||
|
||
Fig adds apps, shortcuts, and autocomplete to your existing terminal.
|
||
|
||
Install `zsh-history-substring-search` in just one click.
|
||
|
||
<a href="https://fig.io/plugins/other/zsh-history-substring-search" target="_blank"><img src="https://fig.io/badges/install-with-fig.svg" /></a>
|
||
|
||
Using [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh):
|
||
|
||
1. Clone this repository in oh-my-zsh's plugins directory:
|
||
|
||
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
|
||
|
||
2. Activate the plugin in `~/.zshrc`:
|
||
|
||
plugins=( [plugins...] zsh-history-substring-search)
|
||
|
||
3. Run `exec zsh` to take changes into account:
|
||
|
||
exec zsh
|
||
|
||
Using [zplug](https://github.com/zplug/zplug):
|
||
|
||
1. Add this repo to `~/.zshrc`:
|
||
|
||
zplug "zsh-users/zsh-history-substring-search", as: plugin
|
||
|
||
Using [antigen](https://github.com/zsh-users/antigen):
|
||
|
||
1. Add the `antigen bundle` command just before `antigen apply`, like this:
|
||
|
||
```
|
||
antigen bundle zsh-users/zsh-history-substring-search
|
||
antigen apply
|
||
```
|
||
|
||
2. Then, **after** `antigen apply`, add the key binding configurations, like this:
|
||
|
||
```
|
||
# zsh-history-substring-search configuration
|
||
bindkey '^[[A' history-substring-search-up # or '\eOA'
|
||
bindkey '^[[B' history-substring-search-down # or '\eOB'
|
||
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1
|
||
```
|
||
|
||
Using [Zinit](https://github.com/zdharma-continuum/zinit):
|
||
|
||
1. Use the `Oh-my-zsh` Zinit snippet in `~/.zshrc`:
|
||
|
||
zinit snippet OMZ::plugins/git/git.plugin.zsh`
|
||
|
||
2. Load the plugin in `~/.zshrc`:
|
||
|
||
zinit load 'zsh-users/zsh-history-substring-search'
|
||
zinit ice wait atload'_history_substring_search_config'
|
||
|
||
3. Run `exec zsh` to take changes into account:
|
||
|
||
exec zsh
|
||
|
||
Usage
|
||
------------------------------------------------------------------------------
|
||
|
||
1. Load this script into your interactive ZSH session:
|
||
|
||
source zsh-history-substring-search.zsh
|
||
|
||
If you want to use [zsh-syntax-highlighting][6] along with this script,
|
||
then make sure that you load it *before* you load this script:
|
||
|
||
source zsh-syntax-highlighting.zsh
|
||
source zsh-history-substring-search.zsh
|
||
|
||
2. Bind keyboard shortcuts to this script's functions.
|
||
|
||
Users typically bind their UP and DOWN arrow keys to this script, thus:
|
||
* Run `cat -v` in your favorite terminal emulator to observe key codes.
|
||