Terminal Ubuntu, w jaki sposób „tab” (autouzupełnianie) nazwa pliku okno-cmd-style (opcje cyklu)?

13

Zasadniczo chcę zmienić funkcjonalnie terminal ubuntu, aby móc przełączać się między wszystkimi opcjami po tabulowaniu (w wierszu wiersza cmd) i nie wyświetlać opcji, jak to jest domyślnie?

Używam bash, Ubuntu 9.04. Widzę pewne możliwości w „.bashrc”, ale musi być ktoś, kto już rozwiązał ten problem?

Daniel T. Magnusson
źródło
wiesz, że jeśli dwukrotnie wciśniesz Tab, masz listę wszystkich możliwych uzupełnień, prawda?
vava
@vava: Opisujesz komendę możliwych uzupełnień basha, która zwykle jest zachowaniem domyślnym. Pytanie brzmi, jak zastąpić to zachowanie działaniem zapewnianym przez polecenie bash menu-complete.
las3rjock
@ las3rjock, wiem, dlatego zostawiłem komentarz, a nie odpowiedź. Możliwe, że OP nie wie o tej funkcji, ponieważ jest ona znacznie lepsza niż tryb rowerowy.
vava
@vava: OP opisuje zachowanie możliwych uzupełnień i stwierdza, że ​​chce je zastąpić zachowaniem polegającym na uzupełnieniu menu.
las3rjock
@vava Wiem, jak działa terminal, i chcę zmienić to irytujące zachowanie.
Daniel T. Magnusson,

Odpowiedzi:

16

Zgodnie z komentarzami na tej stronie , wprowadzenie

bind '"\t":menu-complete'

W twojej .bashrcpowinny umożliwić cykliczną realizację tabulatora.

Aby uzyskać więcej informacji, zobacz rozdział 8.4.6 podręcznika Bash Reference Manual .

las3rjock
źródło
Dzięki, bardzo miłe znalezisko! - Uwielbiam komentarz na tej stronie „Zajęło mi lata, aby dowiedzieć się, że bash obsługuje cykliczne uzupełnianie tabulatorów” - hah, superuser wygrywa!
Daniel T. Magnusson
Dzięki! Czy po wdrożeniu tej kombinacji istnieje chwilowa kombinacja klawiszy zastępująca stary sposób? Shift + TAB, na przykład.
Ace
0

Coś, co jest dla mnie ratowaniem życia, polega na tym, że zamiast przeglądać głupią listę, przebijaj się przez możliwości.

Ponieważ bash korzysta readlinez automatycznego uzupełniania, dodaj następujące wiersze do~/.inputrc

Raz jesteś usatysfakcjonowany i zostały gruntownie przetestowane rozwiązania poniżej na kilka dni / tygodni, wycinania i wklejania (nie kopiować!) Z tych samych ustawień ~/.inputrcdo /etc/inputrcktórych zawiera ustawień systemowych, dzięki czemu jest dostępny dla wszystkich użytkowników w systemie (w tym gość).

Kod:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

następnie exittwój terminal (lub zdalny terminal jak kit) i otwórz go ponownie ...

Przykłady:

  1. Gdy masz 3 pliki: file1, file2a file3i wpisać:

    e fTabTabTab

    przejdzie przez:

    e file1
    e file2
    e file3
    

    a kiedy chcesz wrócić, po prostu naciśnij Shift+Tab

  2. Kiedy piszesz:

    very-complicated-command with lots of command line parameters

    i następnym razem, gdy będziesz potrzebować tego samego polecenia, po prostu wpisz:

    very

    i napisze dla Ciebie:

    very-complicated-command with lots of command line parameters

Zaoszczędzi ci to mnóstwo czasu w bash! ;-)

Źródło

Fabby
źródło