Подтвердить что ты не робот

Фильтрация истории ZSH по команде

Мне сказали, что в ZSH вы можете сделать что-то вроде command, а затем, когда вы нажмете, он будет фильтровать историю на основе данной команды. Но когда я пытаюсь это сделать, он просто циклирует историю, как это делает bash. Отключено ли это по умолчанию?

4b9b3361

Ответ 1

Нажмите Ctrl+R, введите несколько букв, он найдет предыдущую команду с этими буквами, продолжайте нажимать Ctrl + R, чтобы продолжить предыдущие выводы.
Работает в bash, zsh (и других оболочках, предположим).

Мне лично нравится: введите несколько букв, нажмите Up, появятся предыдущие команды, начинающиеся с тех же букв. Очень мощный, мне это нравится. Вы должны привязать ключи к history-beginning-search-backward и history-beginning-search-forward.

В случае, если этого недостаточно для вас, у zsh есть много вариантов, попробуйте найти Zsh Line Editor и сообщите нам.
Для bash, менее мощных, но более общих, Bash команд для истории.

Ответ 2

Использовать восклицательный знак:

> !<starts-with this string>

Вы можете стрелять вверх/вниз по всем командам, которые начинались с этого. Я использую "! V" все время, чтобы получить мою предыдущую команду для открытия файла с помощью Vim.

Вы также можете использовать знак вопроса для поиска, не соответствующий началу строки,

> !?status

Может найти "git status".

Ответ 3

Эта функция доступна в fish, но кажется, что кто-то сделал zsh для. Он недоступен в стандартном ZSH.

Ответ 4

С помощью клавиш vim, активированных в zsh, вы можете использовать vi-history-search-backward (/) в режиме командной строки vi.

Ответ 5

Используйте percol для динамического поиска и навигации по истории с помощью Ctrl - r.

  • установить percol: sudo pip install percol
  • добавьте фрагмент кода zsh-history-search в ваш .zshrc файл.

После Ctrl - r вы можете увидеть всю свою историю в том же окне. Поиск ключевого слова (динамически) сужает список вниз. Вы можете использовать привязки клавиш (например, emacs, например config), чтобы перемещаться вверх и вниз по списку и в конечном итоге делать выбор.

Вот поиск всех sudo install команд, доступных в истории, с выбранным sudo make install.

percol_history_search_example

Enter выдает выбранную команду.