diff --git a/.gitmodules b/.gitmodules index a8a9e57a..518a2795 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "modules/prompt/functions/pure"] path = modules/prompt/external/pure url = https://github.com/sindresorhus/pure.git +[submodule "modules/autosuggestions/external"] + path = modules/autosuggestions/external + url = https://github.com/tarruda/zsh-autosuggestions diff --git a/modules/README.md b/modules/README.md index 2a49804c..db851f36 100644 --- a/modules/README.md +++ b/modules/README.md @@ -10,6 +10,11 @@ Archive Provides functions to list and extract archives. +Autosuggestions +--------------- + +Integrates zsh-autosuggestions into Prezto. + Command-Not-Found ----------------- diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md new file mode 100644 index 00000000..70243798 --- /dev/null +++ b/modules/autosuggestions/README.md @@ -0,0 +1,53 @@ +Autosuggestions +--------------- + +Integrates zsh-autosuggestions into Prezto. + +Autosuggestions +=============== + +Integrates [zsh-autosuggestions][1] into Prezto, which implements the +[Fish shell][2]'s autosuggestions feature, where the user can type in any part +of a previously entered command and Zsh suggests commands as you type based on +history and completions. + +If this module is used in conjuncture with the *syntax-highlighting* module, it +must be loaded **after** it. + +If this module is used in conjuncture with the *history-substring-search* +module, it must be loaded **after** it. + +Contributors +------------ + +New features and bug fixes should be submitted to the [zsh-autosuggestions][1] +project according to its rules and regulations. This module will be synchronized +against it. + +Settings +-------- + +### Highlighting + +If colors are enabled, *autosuggestions* will automatically highlight +positive results. + +To enable highlighting for this module only, add the following line to +*zpreztorc*: + + zstyle ':prezto:module:autosuggestions' color 'yes' + +To set the query found color, add the following line to *zpreztorc*: + + zstyle ':prezto:module:autosuggestions:color' found '' + +Authors +------- + +*The authors of this module should be contacted via the [issue tracker][3].* + + - [Sorin Ionescu](https://github.com/sorin-ionescu) + +[1]: https://github.com/tarruda/zsh-autosuggestions +[2]: http://fishshell.com +[3]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external new file mode 160000 index 00000000..f0a74557 --- /dev/null +++ b/modules/autosuggestions/external @@ -0,0 +1 @@ +Subproject commit f0a745576ff69fa608421ee7214d4cd77b43e62f diff --git a/modules/autosuggestions/init.zsh b/modules/autosuggestions/init.zsh new file mode 100644 index 00000000..a3a772e5 --- /dev/null +++ b/modules/autosuggestions/init.zsh @@ -0,0 +1,35 @@ +# +# Integrates zsh-autosuggestions into Prezto. +# +# Authors: +# Sorin Ionescu +# + +# Load dependencies. +pmodload 'editor' + +# Source module files. +source "${0:h}/external/zsh-autosuggestions.zsh" || return 1 + +# +# Highlighting +# + +# Set highlight color, default 'fg=8'. +zstyle -s ':prezto:module:autosuggestions:color' found \ + 'ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE' || ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' + +# Disable highlighting. +if ! zstyle -t ':prezto:module:autosuggestions' color; then + ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='' +fi + +# +# Key Bindings +# + +if [[ -n "$key_info" ]]; then + # vi + bindkey -M viins "$key_info[Control]F" vi-forward-word + bindkey -M viins "$key_info[Control]E" vi-add-eol +fi diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 4778944c..1b418df1 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -34,6 +34,13 @@ zstyle ':prezto:load' pmodule \ 'completion' \ 'prompt' +# +# Autosuggestions +# + +# Set the query found color. +# zstyle ':prezto:module:autosuggestions:color' found '' + # # Editor #