Как переадресовать-историю с помощью команды 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 и нажимаю «apt-get», я могу сделать историю обратного поиска, постоянно нажимая ctrl + r. Но затем я нажимаю ctrl + s, и терминал не переходит вперед. Я делаю что-то неправильное?

Также, какой мета-префикс «M-» представляет?

10
задан 5 September 2011 в 10:38

47 ответов

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 25 May 2018 в 18:59
  • 1
    ^ J - хороший выбор, поскольку для stop он не используется ни для чего другого – hobs 3 April 2013 в 00:56

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 25 July 2018 в 21:22

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 31 July 2018 в 10:50

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 31 July 2018 в 10:55

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 2 August 2018 в 03:01

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 4 August 2018 в 18:51

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 6 August 2018 в 03:14

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

stty -a | grep '\^S'

. Чтобы освободить последовательность для использования с помощью readline, установите последовательность останова в какую-либо другую последовательность, например

stty stop ^J

или вообще удалить его с помощью

stty stop undef

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

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

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

14
ответ дан 7 August 2018 в 20:55

forward-search-history (C-s) не работает (хотя он находится на странице руководства).

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

1
ответ дан 25 May 2018 в 18:59

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

$ stty stop undef

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

1
ответ дан 25 May 2018 в 18:59

Пожалуйста, не используйте:

stty stop ^J

, но

stty stop ^P

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

stty sane 
export TERM=linux

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

ssh root@192...

, поэтому

stty stop ^P

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

0
ответ дан 25 May 2018 в 18:59

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

stty -ixon

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

Пример [!d3 ]

0
ответ дан 25 May 2018 в 18:59

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

Откройте файл .bashrc: sudo gedit ~/.bashrc добавьте эту строку (буква «f» может быть заменена другой, еще не используемый системой) bind '"\C-f": forward-search-history' Закройте файл и обновите свой .bashrc (или откройте другой терминал) командой: source ~/.bashrc или . ~/.bashrc

ТЕПЕРЬ ВЫ МОЖЕТЕ ПЕРЕДАТЬ ВПЕРЕД В ИСТОРИИ С SHORTCUT: Ctrl + f

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

0
ответ дан 25 July 2018 в 21:22

forward-search-history (C-s) не работает (хотя он находится на странице руководства).

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

1
ответ дан 25 July 2018 в 21:22

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

$ stty stop undef

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

2
ответ дан 25 July 2018 в 21:22

Пожалуйста, не используйте:

stty stop ^J

, но

stty stop ^P

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

stty sane export TERM=linux

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

ssh root@192...

, поэтому

stty stop ^P

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

0
ответ дан 25 July 2018 в 21:22

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

stty -ixon

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

Пример

0
ответ дан 25 July 2018 в 21:22

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

Откройте файл .bashrc: sudo gedit ~/.bashrc добавьте эту строку (буква «f» может быть заменена другой, еще не используемый системой) bind '"\C-f": forward-search-history' Закройте файл и обновите свой .bashrc (или откройте другой терминал) командой: source ~/.bashrc или . ~/.bashrc

ТЕПЕРЬ ВЫ МОЖЕТЕ ПЕРЕДАТЬ ВПЕРЕД В ИСТОРИИ С SHORTCUT: Ctrl + f

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

0
ответ дан 31 July 2018 в 10:50

forward-search-history (C-s) не работает (хотя он находится на странице руководства).

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

1
ответ дан 31 July 2018 в 10:50

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

$ stty stop undef

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

2
ответ дан 31 July 2018 в 10:50

Пожалуйста, не используйте:

stty stop ^J

, но

stty stop ^P

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

stty sane export TERM=linux

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

ssh root@192...

, поэтому

stty stop ^P

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

0
ответ дан 31 July 2018 в 10:50

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

stty -ixon

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

Пример

0
ответ дан 31 July 2018 в 10:50

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

Откройте файл .bashrc: sudo gedit ~/.bashrc добавьте эту строку (буква «f» может быть заменена другой, еще не используемый системой) bind '"\C-f": forward-search-history' Закройте файл и обновите свой .bashrc (или откройте другой терминал) командой: source ~/.bashrc или . ~/.bashrc

ТЕПЕРЬ ВЫ МОЖЕТЕ ПЕРЕДАТЬ ВПЕРЕД В ИСТОРИИ С SHORTCUT: Ctrl + f

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

0
ответ дан 31 July 2018 в 10:55

forward-search-history (C-s) не работает (хотя он находится на странице руководства).

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

1
ответ дан 31 July 2018 в 10:55

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

$ stty stop undef

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

2
ответ дан 31 July 2018 в 10:55

Пожалуйста, не используйте:

stty stop ^J

, но

stty stop ^P

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

stty sane export TERM=linux

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

ssh root@192...

, поэтому

stty stop ^P

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

0
ответ дан 31 July 2018 в 10:55

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

stty -ixon

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

Пример

0
ответ дан 31 July 2018 в 10:55

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

Откройте файл .bashrc: sudo gedit ~/.bashrc добавьте эту строку (буква «f» может быть заменена другой, еще не используемый системой) bind '"\C-f": forward-search-history' Закройте файл и обновите свой .bashrc (или откройте другой терминал) командой: source ~/.bashrc или . ~/.bashrc

ТЕПЕРЬ ВЫ МОЖЕТЕ ПЕРЕДАТЬ ВПЕРЕД В ИСТОРИИ С SHORTCUT: Ctrl + f

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

0
ответ дан 2 August 2018 в 03:01

forward-search-history (C-s) не работает (хотя он находится на странице руководства).

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

1
ответ дан 2 August 2018 в 03:01

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

$ stty stop undef

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

2
ответ дан 2 August 2018 в 03:01

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

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