4

В bash можно прокручивать историю команд с помощью клавиш вверх и вниз. В Vim, это также возможно (после нажатия : Но с помощью vim, если вы введете первые несколько букв предыдущей команды, цикл вверх / вниз будет выполняться только через команды, начинающиеся с этих букв. Это было бы очень полезно в bash, особенно просто для таких команд, как cd и сама vim . Есть ли способ получить это поведение в bash?

Мне известна функция поиска по истории в bash, но она не так проста и проста в использовании.

2 ответа2

4

Вот один из способов настроить history-search-backward и history-search-forward:

Шаг 1:

Поместите следующее в ваш файл /etc/inputrc :

$if mode=emacs
"\ep": history-search-backward
"\en": history-search-forward
$endif

(Или просто вставьте следующее в существующее выражение if )

"\ep": history-search-backward
"\en": history-search-forward

Шаг 2:

Источник вашей консоли:

. ~/.bashrc

Шаг 3:

Проверьте это. Например, чтобы выполнить поиск всех ваших команд vim в обратном направлении, введите:

vim Alt+P

И продолжайте нажимать Alt+P, чтобы просмотреть все ваши команды.


РЕДАКТИРОВАТЬ:

Этот ответ является кратким изложением информации, взятой отсюда.

3

Не совсем то, что вам нужно, но я всегда использую 'set -o vi' в .bashrc или .profile.

Для поиска в предыдущей истории введите esc (чтобы вывести вас из режима редактирования), затем косую черту и запрос. Затем нажмите Enter для поиска. Затем вы можете использовать 'n' или 'N' для продвижения вперед и назад по соответствующим запросам. Если вы привыкли к vi, это может быть решением.

Это будет означать, что командная строка становится похожей на vi - например, заглавная «A» перенесет вас в конец строки и переведет вас в режим редактирования. Это может быть полезно, но это также может привести к путанице, если вы печатаете, находясь не в режиме редактирования. Если вы не хотите этого, чем другое решение будет лучше.

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