Merge pull request #97 from partcyborg/master

Also rename `HISTORY_SUBSTRING_SEARCH_PREFIX` variable by adding "ED"
suffix so that it reads more like a special mode of operation rather
than an instruction to prepend a specified prefix to matched commands.
This commit is contained in:
Suraj N. Kurapati 2021-08-02 23:17:47 -07:00
commit 4abed97b6e
2 changed files with 13 additions and 7 deletions

View file

@ -141,11 +141,11 @@ default values.
value, causes this script to perform a fuzzy search by words, matching in value, causes this script to perform a fuzzy search by words, matching in
given order e.g. `ab c` will match `*ab*c*` given order e.g. `ab c` will match `*ab*c*`
* `HISTORY_SUBSTRING_SEARCH_PREFIX` is a global variable that defines * `HISTORY_SUBSTRING_SEARCH_PREFIXED` is a global variable that defines how
how the command history will be searched for your query. If set to a non-empty 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, value, your query will be matched against the start of each history entry.
if this variable is empty, `ls` will match `ls -l` and `echo ls`; if it is For example, if this variable is empty, `ls` will match `ls -l` and `echo
non-empty, `ls` will only match `ls -l`. ls`; if it is non-empty, `ls` will only match `ls -l`.
* `HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE` is a global variable that defines * `HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE` is a global variable that defines
whether all search results returned are _unique_. If set to a non-empty whether all search results returned are _unique_. If set to a non-empty

View file

@ -48,7 +48,7 @@
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'} : ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
: ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''} : ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''}
: ${HISTORY_SUBSTRING_SEARCH_FUZZY=''} : ${HISTORY_SUBSTRING_SEARCH_FUZZY=''}
: ${HISTORY_SUBSTRING_SEARCH_PREFIX=''} : ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''}
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# declare internal global variables # declare internal global variables
@ -248,7 +248,13 @@ _history-substring-search-begin() {
# `(j:CHAR:)` join array to string with CHAR as seperator # `(j:CHAR:)` join array to string with CHAR as seperator
# #
local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" 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. # Find all occurrences of the search pattern in the history file.