Я большой поклонник этой магии в моем .inputrc который позволяет мне быстро завершать команду с помощью клавиши со стрелкой вверх.

"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

Однако очень часто мне приходится использовать ssh на ванильном Linux, где я должен использовать CTRL+R. Я тогда обычно становился очень непродуктивным, потому что я не знаю, как использовать эту команду.

Настало время поставить под сомнение мой рабочий процесс. Могу ли я быть более продуктивным с помощью обратного поиска в собственной истории bash, чем моя магия .inputrc ?

Конкретный вариант использования

Я хотел бы вспомнить последнюю строку python я написал. С моим решением я делаю pyt + + Enter

С обратным поиском, если я сделаю CTRL + R, pyt . Я обычно получаю любую команду, содержащую pyt , а не последнюю команду, начинающуюся с python .

Больше раздражает, я обычно понимаю, что я должен использовать свою историю, когда я уже напечатал, скажем, pyth . Если я нажму CTRL + R, я получу:

(reverse-i-search)`': pyth

Что очень сбивает с толку, потому что, если я наберу o я вдруг получу команду WTF, которую я набрал много лет назад и содержащую только o .

Я абсолютно уверен, что не использую обратный поиск в правильном направлении. Что мне не хватает?

1 ответ1

1

Используете ли вы дополнительные сочетания клавиш CTRL + R чтобы выйти за рамки первого матча?

В приведенном выше примере, когда вы нажмете pyth вы сможете продолжить сопоставление с дополнительными нажатиями CTRL + R

Это то, что вы искали?


Пример: я хочу сопоставить более старую из этих двух похожих команд.

$ python -m this
# ... snip...

$ python -c "import this"
# ... snip...

Теперь, когда вы:

  1. CTRL + R
  2. Начните вводить pyt

На этом этапе вы сопоставили последнюю из двух команд. Не тот, который вы хотите (в этом примере).

  1. Нажмите CTRL + R еще раз

На этом этапе вы будете соответствовать команде, которую вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .