history-search-backward игнорирует текст поиска после первого пробела?

343
Sridhar-Sarnobat

Я использую много команд git, и так как они в основном состоят из двухсимвольных имен команд, соответствие не находит наиболее близкого соответствия. Например:

# type in some commands git checkout - git status mvn test  # try to autocomplete based on the history. I want "git checkout -" to be filled in, but instead "git status" is filled in. git c<history-search-backward> git status 

Обратите внимание, spaceи cто, что я набрал, игнорируются при автозаполнении.

Я предполагаю, что это какой-то недостаток системы завершения zsh. Это правда? Или я неправильно понимаю функциональность?

1
Bash обратный поиск истории справляется с этим без проблем ... просто говорю ... Jakuje 8 лет назад 1
Приятно знать, я не хотел сам проходить тестирование. Я думаю, мне нужно подать ошибку в исходном коде ZSH. Sridhar-Sarnobat 8 лет назад 0

1 ответ на вопрос

3
Adaephon

Yes, history-search-backward looks only for lines beginning with the first word of the current command line. This is neither a shortcoming nor a bug, but intentional.

For your use-case you want to use the widget history-beginning-search-backward instead. This searches the history based on everything from the beginning up to the cursor position. (This is the equivalent to the bash's history-search-backward command)

Мне любопытно - почему так устроено? Это потому, что в большинстве случаев используются команды из 1 слова, а мы не хотим сопоставлять аргументы? Sridhar-Sarnobat 8 лет назад 0