inputrc - wprowadzamy wygodne przeszukiwanie historii
Na codzień korzystam z domyślnej powłoki dla ubuntu - basha. Korzystanie z niej jest wygodne, jednakże brakuje mi od początku możliwości przeszukiwania historii argumentów.
Przypuśćmy, że jakiś czas temu za pomocą vima edytowaliśmy plik, jednak się pomyliliśmy i chcemy raz jeszcze go zmienić. Jednak albo nie pamiętamy co to za plik i gdzie się ukrywa, albo ścieżka do niego jest długa i nieprzyjemna w pisaniu. Jest parę półśrodków aby sobie z tym poradzić i oto dwa z nich:
Wyświetlamy historię ostatnich komend i grepujemy to co nas interesuje:
history | grep vim | cut -d' ' -f4
Próbujemy za pomocą reverse search znaleźć tą komendę. Piszemy tak długo aż pojawi się poprawna podpowiedź.
^r
Średnie są to rozwiązania, bo mało efektywne. A co jakbym wpisał tylko vim i za pomocą strzałek bądź innych guzików mógł przeszukiwać historię wszystkich poleceń zaczynających się od niego? Byłoby wspaniale!
Jak to osiągnąć? Edytując plik inputrc:
Teraz wystarczy znaleźć te linijki:
# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward
Jedyne co trzeba zrobić, to odkomentować (usunąć z początku lini znak: " ). Po tym zabiegu wszystko będzie działać tak jak opisałem powyżej, z tą różnicą że zamiast strzałek korzystamy z klawiszy PG Up i PG Down. Jeśli natomiast dla kogoś wygodniejsze będą strzałki, to te linijki powinny tak wyglądać:
# alternate mappings for "page up" and "page down" to search the history
\e[A": history-search-backward
\e[B": history-search-forward
Efekt końcowy osiągnięty :)