diff --git a/README.md b/README.md index 125e183..aab5c17 100644 --- a/README.md +++ b/README.md @@ -141,11 +141,11 @@ default values. value, causes this script to perform a fuzzy search by words, matching in given order e.g. `ab c` will match `*ab*c*` -* `HISTORY_SUBSTRING_SEARCH_PREFIX` is a global variable that defines - how the command history will be searched for your query. If set to a non-empty - value, only history prefixed by your query will be matched. For example, - if this variable is empty, `ls` will match `ls -l` and `echo ls`; if it is - non-empty, `ls` will only match `ls -l`. +* `HISTORY_SUBSTRING_SEARCH_PREFIXED` is a global variable that defines how + the command history will be searched for your query. If set to a non-empty + value, your query will be matched against the start of each history entry. + For example, if this variable is empty, `ls` will match `ls -l` and `echo + ls`; if it is non-empty, `ls` will only match `ls -l`. * `HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE` is a global variable that defines whether all search results returned are _unique_. If set to a non-empty diff --git a/zsh-history-substring-search.zsh b/zsh-history-substring-search.zsh index be21b78..1261e2e 100644 --- a/zsh-history-substring-search.zsh +++ b/zsh-history-substring-search.zsh @@ -48,7 +48,7 @@ : ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'} : ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''} : ${HISTORY_SUBSTRING_SEARCH_FUZZY=''} -: ${HISTORY_SUBSTRING_SEARCH_PREFIX=''} +: ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''} #----------------------------------------------------------------------------- # declare internal global variables @@ -248,7 +248,13 @@ _history-substring-search-begin() { # `(j:CHAR:)` join array to string with CHAR as seperator # local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" - test -z "$HISTORY_SUBSTRING_SEARCH_PREFIX" && search_pattern="*$search_pattern" + + # + # Support anchoring history search to the beginning of the command + # + if [[ -z $HISTORY_SUBSTRING_SEARCH_PREFIXED ]]; then + search_pattern="*${search_pattern}" + fi # # Find all occurrences of the search pattern in the history file.