Невозможно переслать историю поиска Bash так же, как с CTRL-r - PullRequest
177 голосов
/ 27 апреля 2009

Я пытаюсь найти в своей истории bash так же, как и с CTRL - r , но в направлении вперед.

Мне было больно, когда я просто слишком часто нажимал CTRL - r , чтобы снова найти предыдущую команду.

Как выполнить поиск в истории Bash таким же образом, как при обратном поиске?

Ответы [ 4 ]

271 голосов
/ 27 апреля 2009

Вы также можете искать вперед. Из руководства по информации bash " 8.2.5 Поиск команд в истории ":

Для поиска в истории определенной строки введите C-r. Ввод C-s ищет в истории.

Проблема с Ctrl-S, однако, заключается в том, что иногда сталкивается с управлением потоком XON / XOFF (например, в Konsole). Однако поиск - это функция readline, и вы должны иметь возможность связать ее с каким-то другим ключом. Обновление: проще и лучше просто отключить XON / XOFF, запустив

stty -ixon
34 голосов
/ 15 марта 2013

Лучший трюк ИМХО - с помощью pgup и pgdown. просто поместите это в ваш ~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward

logout / login, введите первые буквы, а затем pgup или pgdown для поиска по истории

ctrl-R поиск по всем строкам, содержащим слова, тогда как поиск по истории с продвижением, начинающимся со слов

22 голосов
/ 29 мая 2015

Возможно, вы захотите попробовать https://github.com/dvorka/hstr, который допускает фильтрацию истории Bash «предложить стиль коробки» с (опционально) упорядочением по метрикам, т.е. он намного эффективнее и быстрее как в прямом, так и в обратном направлении: *

enter image description here

Может быть легко привязан к Ctrl-r и / или Ctrl-s

12 голосов
/ 07 февраля 2013

Я обычно нажимаю ESC в терминале, а затем '>'. По крайней мере, он сбрасывается, и тогда вы можете попробовать нажимать реже, нажав CTRL + R.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...