Неможливо переслати історію пошуку Bash так само, як і у CTRL-r


203

Я намагаюся шукати свою історію башів так само, як і з CTRL- r, але вперед.

Мені було боляче, коли я просто занадто часто натискав CTRL- rщоб знову знайти попередню команду.

Як ви можете передати пошук своєї історії Bash так само, як і при зворотному пошуку?

Відповіді:


321

Ви також можете шукати вперед. З інформаційного посібника з bash " 8.2.5 Пошук команд в історії ":

Щоб шукати певний рядок назад в історії, введіть C-r. Введення C-sпошукових запитів вперед через історію.

Однак проблема Ctrl-S полягає в тому, що іноді стикається з керуванням потоком XON / XOFF (наприклад, у Konsole). Пошук, однак, є функцією читання рядків, і ви повинні мати можливість прив’язати його до якогось іншого ключа. Оновлення: Простіше і краще просто відключити XON / XOFF запуском

stty -ixon

4
Це геніально, але я додаю stty -ixon до свого .profile, і він, схоже, не працює для нових вкладок. Будь-які ідеї, як зробити цю роботу? Я б хотів, щоб XON / XOFF був відключений за замовчуванням.
Джон Галлахер

13
Якщо у когось іншого є те саме питання, що і я - якщо ви додасте це до .profile, воно не набуває чинності. Тільки коли ви додасте його до .bash_profile, чари трапляються! Дякую за чудову пораду - ця година зводила мене з розуму.
Джон Галлахер

12
@JohnGallagher Важливо відзначити , що .bash_profileі .profileпоставляються тільки для лог-в оболонках. Я б поставив це .bashrc(з чого я джерело .profile).
Віктор Замонян

13
[[ $- == *i* ]] && stty -ixonможна використовувати, щоб уникнути описаної тут
mMontu

3
У випадку, якщо ви використовуєте PuTTY і не можете / не хочете підтримувати .bash_profileна кожній машині, до якої ви підключаєтесь, ця відповідь на суперусера працює як задоволення.
фази

41

Найкращий трюк IMHO - це ввімкнення за допомогою pgupта pgdown. просто покладіть це у своє~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward

вийдіть / увійдіть, введіть перші літери, а потім pgupабо pgdownдля пошуку протягом усієї історії

ctrl-R пошук у всіх рядках, що містять слова, тоді як пошукові рядки пошуку вперед, починаючи зі слів


2
Ви також можете коментувати ці 2 рядки в /etc/inputrc(наприклад, в Ubuntu).
falconepl

2
Я вважаю за краще прив’язати це до стрілки вгору та вниз: "\ e [A": історія-пошук-назад та "\ e [B": історія-пошук-вперед
shmup

Що робити, якщо це не впливає на баш?
Сьорен

26

Ви можете спробувати https://github.com/dvorka/hstr, що дозволяє фільтрувати історію башів із “замовленням стилю поля” із замовленням на основі (за бажанням) показників на основі замовлення.

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

Він може бути легко пов'язаний з Ctrl-rта / абоCtrl-s


5
Я закоханий. Короткі інструкції щодо встановлення на Ubuntu:sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >> ~/.bashrc;
CivFan

14

Я зазвичай натискаю ESCв терміналі, а потім на >. Він скидається щонайменше, і тоді ви можете спробувати натискати рідше CTRL+ R.


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