Как перевернуть i-поиск взад-вперед?

Я часто использую reverse-i-search, и это круто. Иногда, когда несколько раз нажимаю Ctrl+r, я передаю команду, которую я действительно ищу. Поскольку Ctrl+r ищет назад в истории, от самого нового до самого старого, я должен:

  • отменить,
  • снова и
  • остановитесь точно в команде, не передавая ее.

Пока в приглашении reverse-i-search можно выполнить поиск в прямом направлении, то есть от того места, где я стою. Я наивно пробовал Ctrl+shift+r, не повезло. Я слышал о Ctrl+g, но это не то, что я ожидаю здесь. У кого-нибудь есть идея?

Ответ 1

Здесь есть аналогичный вопрос:

Control-r reverse-i-search в bash: как вы "reset" поиск в Cygwin?

Нашел еще один подобный вопрос о Super User:

https://superuser.com/questions/159106/reverse-i-search-in-bash

По-видимому, оба упоминают Ctrl+s, что может сделать трюк.

Надеюсь, что это поможет. Я сам пытаюсь найти фрагмент кода, который выполняет reverse-i-search, чтобы проверить, как он был точно реализован.

Ответ 2

CTRL + S

... решил это для меня ПОСЛЕ использования...

stty -ixon

Если CTRL + S не работает для вас, потому что в соответствии с принятым ответом Vincenzo Pii в другой связанной теме:

Проблема заключается в том, что эта привязка во многих терминалах используется по умолчанию для отправки кода передачи паузы (XOF).

Как в man stty:

[-] IXON

     
   enable XON/XOFF flow control
  

Итак, если этот параметр включен на вашем терминале (вывод stty -a содержит значок ixon withouth the - впереди), вы не можете использовать CTRL S в контексте обратного i-поиска.

Чтобы отключить его, используйте следующую команду:

  

stty -ixon

  

И CTRL S даст вам (i-search) (не обратный).

Ответ 3

Попробуйте delete, магически сработало.

Другие указывают на Ctrl+s, но это не работает для меня.