Команда forward-search-history будет делать то, что вы хотите - она будет выполнять инкрементальный поиск в прямом направлении, а если вы уже находитесь в режиме инкрементального поиска, она просто переключит направление поиска, сохраняя текущую строку поиска.
Проблема в достижении этой команды. Привязки Readline по умолчанию содержат:
"\C-r": reverse-search-history
"\C-s": forward-search-history
Но C-s - это символ управления потоком терминала, который не достигает bash (хотя он будет работать в таких программах, как Emacs, которые изменяют настройки терминала, чтобы отключить обработку управления потоком). Поэтому привязка по умолчанию бесполезна, и вам нужно связать какой-то другой ключ с командой forward-search-history .
Другая проблема состоит в том, что привязки клавиш с модификатором Meta не работают для инкрементального поиска - модификатор Meta фактически добавляет префикс ESC, и ESC завершает инкрементный поиск, даже если он удален из значения переменной isearch-terminators . Комбинации с префиксом C-x также не работают - нажатие C-x немедленно прекращает добавочный поиск. Поэтому вам нужно привязать простой C-<key> к команде forward-search-history ; однако все такие управляющие символы уже заняты командами readline, поэтому вам придется пожертвовать другой командой, чтобы освободить ключ для forward-search-history .
Пример ~/.inputrc для использования C-t для прямого поиска (замена команды transpose-chars ):
"\C-t": forward-search-history