Как к передавать-истории-поиска с командой reverse-i-search (ctrl+r)?

В readline руководстве

# man readline

Следующее описывает, как искать назад и передать.

reverse-search-history (C-r)
Search backward starting at the current line and moving `up' through the history as necessary.  This is an incremental search.

forward-search-history (C-s)
Search forward starting at the current line and moving `down' through the  history  as  necessary.   This  is  an  incremental search.

Когда я поразил ctrl+r, и тип, "склонный - добираются", я могу сделать обратную историю поиска путем непрерывного ответвления ctrl+r. Но затем я касаюсь ctrl+s, и терминал не идет вперед. Я делаю что-то неправильное?

Также, что ключ Meta снабжает префиксом "M-", представляют?

10
задан 4 September 2011 в 22:38

7 ответов

Последовательность C-s взят от терминального драйвера, как Вы видите от

stty -a | grep '\^S'

К свободному последовательность для использования readline, набор терминал остановки упорядочивают к некоторой другой последовательности, что касается примера

stty stop ^J

или удалите его в целом с

stty stop undef

После этого C-s работал бы в данном терминале.

Установите его в ~/.bashrc заставить его работать в каждом терминале.

M- упорядочьте означает клавишу Alt, как уже отмечено.

14
ответ дан 23 November 2019 в 04:25

передавать-история-поиска (C-s) не работает (хотя это находится в странице справочника).

'M-' представляет модификатор клавиши Alt.

1
ответ дан 23 November 2019 в 04:25

Не используйте:

stty stop ^J

но

stty stop ^P

или что-либо еще, как ^J делает большие проблемы с ssh. (Я не знаю почему так или иначе.) После того, как я вошел в систему, Входят, и обратная косая черта не работали. или я должен был ввести:

stty sane 
export TERM=linux

прежде чем я хотел ввести

ssh root@192...

так

stty stop ^P

решенный обе проблемы одновременно.

0
ответ дан 23 November 2019 в 04:25

В дополнение к присвоению другого TTY 'останавливают' символ, как предложено выше, можно удалить его полностью, если Вы не планируете использовать его (я склоняюсь не к), как это:

$ stty stop undef

Затем readline может использовать средства управления для вперед поиска, и Вы не получите странного поведения из-за нового добавляемого символа остановки.

2
ответ дан 23 November 2019 в 04:25

Можно отключить управление потоком XON/XOFF:

stty -ixon

в Вашем ~/.profile или подобный, затем будет распознан Ctrl+S.

Пример

0
ответ дан 23 November 2019 в 04:25

Переключаться вперед при использовании обратного поиска (с командой Ctrl-R):

  1. Откройте свой .bashrc файл:
    sudo gedit ~/.bashrc

  2. добавьте эту строку (буква "f" может быть заменена другим еще не используемым системой),

    bind '"\C-f": forward-search-history' 
    
  3. Закройте свой файл и обновите Ваш .bashrc (или откройте другой терминал) с командой:
    source ~/.bashrc или . ~/.bashrc

ТЕПЕРЬ ВЫ CAN ПРОДВИГАЕТЕСЬ В ИСТОРИИ С ЯРЛЫКОМ: Ctrl+f

Работа над Ubuntu 18.04 LTS

0
ответ дан 23 November 2019 в 04:25

Обратите внимание, что я использовал

stty stop ^J
stty -ixoff

в .bashrc, чтобы включить прямой поиск и отключить раздражающее сообщение «Вывод был приостановлен нажатием Ctrl + S. Нажмите Ctrl + Q, чтобы возобновить» в Konsole при нажатии ctrl + s, но обе команды по отдельности нарушили интеграцию Konsole в Dolphin (ярлык "F4"), как мне пришлось дважды нажать ctrl + c, чтобы заставить его работать, и автоматический "cd" команды, которые не вводятся при графической навигации.

Итак, я предпочитаю:

stty stop undef
stty -ixon

Он имеет тот же эффект, похоже, все работает, как ожидалось;)

0
ответ дан 28 January 2020 в 17:48

Другие вопросы по тегам:

Похожие вопросы: