повернутися до кінця історії bash при використанні зворотного пошуку?


12

Я зберігаю досить довгу історію башів, а іноді, коли шукаю щось із функцією зворотного пошуку bash ( Ctrl+ r), я закінчуюсь на початку історії пошуку, і я все ще не знайшов потрібного, а потім хотів би повернутися до кінця файлу історії. Один із варіантів - використовувати функцію пошуку вперед ( Ctrl+ s), яка рухається ближче до кінця історії або виконує #, але чи є також комбінація клавіш для переміщення безпосередньо до кінця історії bash?


2
historyпокаже вам всі команди bash, зроблені ..
ryekayo

Відповіді:


6

Існує функція readline end-of-history, за замовчуванням відображена до M- >, але якщо вона використовується під час зворотного пошуку, вона виходить із запиту зворотного пошуку.

Можливе вирішення / хитрість

Почніть пошук рядків

Натомість для зворотного пошуку ви можете використовувати history-search-backwardта history-search-forward(за замовчуванням невстановлені), відображаючи їх up/down(дуже корисно) у вашому .inputrc:

# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward

Отже, після введення ви можете змінити натискання на пошук up (замість Ctrl+ R), і коли ви хочете повернутися до кінця історії, ви можете скористатися end-of-historyфункцією, натиснувши ( M- >)

Таким чином "Рядок пошуку повинен відповідати на початку рядка історії ", тому, якщо ви шукаєте ls -ltr, вам доведеться набрати, lsа потім натиснути  upклавішу.

Пошук підрядків

якщо ви хочете, щоб " Пошуковий рядок може відповідати будь-де в рядку історії ", ви повинні використовувати history-substring-search-forward та history-substring-search-backward:

# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward

Таким чином, якщо ви шукаєте ls -ltr, ви можете ввести ls, але також ltrперед натисканням up.

Довідка: Довідковий посібник Bash - Команди історії .

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