Я использую Ctrl+ Rвсе время, но часто заканчиваю тем, что пропускаю команду, которую выполняю, так как нажимаю ее так быстро.
Для поиска в прямом направлении, Ctrl+ Sможет быть использовано при условии , что не используется терминальным первым (Konsole в моем случае, в котором stty -ixon
в ~/.bashrc
затруднительном его).
Тем не менее, я должен нажать на него дважды: один раз, когда он появляется, i-search
находясь в reverse-i-search
режиме, и второй раз, чтобы фактически сделать шаг назад.
Есть ли способ убрать необходимость двойного нажатия на ярлык?
bash
keyboard-shortcuts
readline
jozxyqk
источник
источник
readline
не хватает функции "искать ту же строку в обратном направлении".Ответы:
Вот другой подход. Если вам удобны некоторые основные команды редактирования vi, bash поддерживает режим vi для редактирования командной строки. Если вы действительно ненавидите vi, вам это не понравится. Но если вы можете терпеть это, вы можете найти это предпочтительным и с меньшим количеством нажатий клавиш.
set -o vi
История поиска работает так:
Esc
войти в командный режим/
начать поискEnter
выполнить поискn
перейти к следующему матчуN
чтобы вернуться к предыдущему матчуi
чтобы вернуться в режим вставкиEnter
запустить командуисточник
n
иN
, соответственно. И они не требуют постукивания дважды. Интригующий!По-видимому, для поиска в истории Bash необходимо сначала нажать ярлык, чтобы узнать, в каком направлении вы ведете поиск, а затем второе нажатие, чтобы выполнить поиск. Я не думаю, что можно изменить способ работы без изменения исходного кода.
Тем не менее, вы можете установить hstr (https://github.com/dvorka/hstr), в котором есть окно подсказки с расширенными параметрами поиска для простого просмотра, навигации, поиска и управления историей команд:
источник