mirror of
https://github.com/zsh-users/zsh-autosuggestions.git
synced 2024-11-18 09:51:06 +01:00
Add ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS
option
With this the until now hard-coded value of 200 can be configured.
This commit is contained in:
parent
afee79ef5b
commit
7a0c87155b
4 changed files with 17 additions and 4 deletions
|
@ -58,6 +58,9 @@ For more info, read the Character Highlighting section of the zsh manual: `man z
|
||||||
|
|
||||||
For example, setting `ZSH_AUTOSUGGEST_STRATEGY=(history completion)` will first try to find a suggestion from your history, but, if it can't find a match, will find a suggestion from the completion engine.
|
For example, setting `ZSH_AUTOSUGGEST_STRATEGY=(history completion)` will first try to find a suggestion from your history, but, if it can't find a match, will find a suggestion from the completion engine.
|
||||||
|
|
||||||
|
#### When `ZSH_AUTOSUGGEST_STRATEGY` contains `match_prev_cmd`:
|
||||||
|
|
||||||
|
- `ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS`: The previous command is only looked at of a number of the most recent commands that match the current prefix. This sets the maximum number of commands to consider. Set it to -1 to always use all matches.
|
||||||
|
|
||||||
### Widget Mapping
|
### Widget Mapping
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,11 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig-
|
||||||
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Maximum number of commands to consider for match_prev_cmd strategy
|
||||||
|
# Set to -1 to always use all matches
|
||||||
|
(( ! ${+ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS} )) &&
|
||||||
|
typeset -g ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS=200
|
||||||
|
|
||||||
# Widgets that clear the suggestion
|
# Widgets that clear the suggestion
|
||||||
(( ! ${+ZSH_AUTOSUGGEST_CLEAR_WIDGETS} )) && {
|
(( ! ${+ZSH_AUTOSUGGEST_CLEAR_WIDGETS} )) && {
|
||||||
typeset -ga ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
typeset -ga ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
||||||
|
|
|
@ -48,9 +48,9 @@ _zsh_autosuggest_strategy_match_prev_cmd() {
|
||||||
# Get the previously executed command
|
# Get the previously executed command
|
||||||
local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")"
|
local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")"
|
||||||
|
|
||||||
# Iterate up to the first 200 history event numbers that match $prefix
|
# Iterate over the most recent history event numbers that match $prefix.
|
||||||
local key
|
local key
|
||||||
for key in "${(@)history_match_keys[1,200]}"; do
|
for key in "${(@)history_match_keys[1,$ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS]}"; do
|
||||||
# Stop if we ran out of history
|
# Stop if we ran out of history
|
||||||
[[ $key -gt 1 ]] || break
|
[[ $key -gt 1 ]] || break
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,11 @@ typeset -g ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX=autosuggest-orig-
|
||||||
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Maximum number of commands to consider for match_prev_cmd strategy
|
||||||
|
# Set to -1 to always use all matches
|
||||||
|
(( ! ${+ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS} )) &&
|
||||||
|
typeset -g ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS=200
|
||||||
|
|
||||||
# Widgets that clear the suggestion
|
# Widgets that clear the suggestion
|
||||||
(( ! ${+ZSH_AUTOSUGGEST_CLEAR_WIDGETS} )) && {
|
(( ! ${+ZSH_AUTOSUGGEST_CLEAR_WIDGETS} )) && {
|
||||||
typeset -ga ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
typeset -ga ZSH_AUTOSUGGEST_CLEAR_WIDGETS
|
||||||
|
@ -710,9 +715,9 @@ _zsh_autosuggest_strategy_match_prev_cmd() {
|
||||||
# Get the previously executed command
|
# Get the previously executed command
|
||||||
local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")"
|
local prev_cmd="$(_zsh_autosuggest_escape_command "${history[$((HISTCMD-1))]}")"
|
||||||
|
|
||||||
# Iterate up to the first 200 history event numbers that match $prefix
|
# Iterate over the most recent history event numbers that match $prefix.
|
||||||
local key
|
local key
|
||||||
for key in "${(@)history_match_keys[1,200]}"; do
|
for key in "${(@)history_match_keys[1,$ZSH_AUTOSUGGEST_MATCH_PREV_MAX_CMDS]}"; do
|
||||||
# Stop if we ran out of history
|
# Stop if we ran out of history
|
||||||
[[ $key -gt 1 ]] || break
|
[[ $key -gt 1 ]] || break
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue