Єдиний ярлик для переадресації пошуку після зворотного пошуку Ctrl-R


13

Я використовую Ctrl+ Rвесь час, але я часто закінчую команду, яку я виконую, оскільки я так швидко натискаю її.

Для пошуку в прямому напрямку, Ctrl+ Sможе бути використано при умови , що не використовується термінальним першим (Konsole в моєму випадку, в якому stty -ixonв ~/.bashrcскрутному його).

Однак мені доводиться натискати на нього двічі: один раз, здається, він переходить i-searchу reverse-i-searchрежим і вдруге фактично відступає назад.

Чи є спосіб зняти необхідність натискання ярлика двічі?


3
Як і у випадку Ctrl-R, перший Ctrl-S чекає пошуку рядка. Другий повторно використовує той самий рядок пошуку, який ви використовували раніше (із Ctrl-R у вашій ситуації). Я не знаю жодного способу уникнути цих двох кроків. readlineне вистачає функції "пошук тієї ж строки навпаки".
xhienne

Відповіді:


11

Ось інший підхід. Якщо вам подобаються деякі основні команди редагування vi, bash підтримує vi-mode для редагування командного рядка. Якщо ви справді ненавидите vi, вам це не сподобається. Але якщо ви можете терпіти, ви можете вважати за краще і з меншою кількістю натискань клавіш.

встановити -o vi

Пошук історії працює так:

  • Esc для переходу в режим команд
  • / почати пошук
  • Введіть текст пошукового рядка
  • Enter для пошуку
  • n перейти до наступного матчу
  • N щоб повернутися до попереднього матчу
  • i щоб повернутися в режим вставки
  • Enter запустити команду

Еквівалентами vi-стилю Ctrl-R і Ctrl-S є nі N, відповідно. І вони не потребують натискання двічі. Інтригуюче!
Натаніель М. Бівер

2

Мабуть, для пошуку історії Bash потрібне перше натиснення ярлика, щоб дізнатися, в якому напрямку ви шукаєте, а потім друге натискання, щоб фактично здійснити пошук. Я не думаю, що неможливо змінити спосіб його роботи без зміни вихідного коду.

Однак ви можете встановити hstr (https://github.com/dvorka/hstr), який містить поле для пропозицій із розширеними параметрами пошуку для легкого перегляду, навігації, пошуку та керування історією команд:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.