2011-02-17 17 views

Odpowiedz

67

z domyślnym readline klawiszy, ALT + B wraca jedno słowo, ALT + F idzie naprzód jednym słowem.

Domyślna konfiguracja systemu Ubuntu dodatkowo zapewnia CTRL + strzałki podobne do przyzwyczajeń użytkownika. Są w /etc/inputrc i określony w następujący sposób:

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving 
"\e[1;5C": forward-word 
"\e[1;5D": backward-word 
"\e[5C": forward-word 
"\e[5D": backward-word 
"\e\e[C": forward-word 
"\e\e[D": backward-word 

Nie wiem, dlaczego musimy trójkę ...

+0

Ciekawe, że określone wiązania nie pasują do wiązań, które wymyśliłem i wspomniałem w mojej odpowiedzi. Zastanawiam się, jaka jest ta rozbieżność. Ciekaw jestem również, w jaki sposób można określić, jaka jest sekwencja znaków podczas przeglądania/etc/inputrc. (na przykład, skąd mam wiedzieć, co 1, 5C oznacza powyżej?) –

+14

@bryan_ruiz: Różne klawiatury (emulatory terminali itp.) generują różne sekwencje. Aby zobaczyć sekwencję, naciśnij Ctrl-v, a następnie klawisz. Dla mnie w PuTTY, Ctrl-v Ctrl-RightArrow daje mi "^ [OC", który jest taki sam jak twój. W 'xterm' otrzymuję'^[[1; 5', który jest taki sam jak Thomas '. –

+0

Czy mogę wiedzieć, dlaczego dałeś 3 pary? Myślałem, że wystarczy? – Viet

35

Jak wyjaśnił Thomas, można dodać do powiązania /etc/inputrc.

Inną alternatywą więc ładuje przy każdym logowaniu, jest umieszczenie ich w ~/.bashrc tak:

#use ctl keys to move forward and back in words 
bind '"\eOC":forward-word' 
bind '"\eOD":backward-word' 

dowiedziałem się, że można użyć cat > /dev/null patrzeć na znaki, że klawiatura jest przesłanie, np CTRL + strzałka w prawo pokazuje:

^[OC 

gdzie ^[ jest taka sama jak \e tak to gdzie kod pochodzi z dowódcą na bind.

Można również spojrzeć powiązania tak:

bind -p | grep forward-word 

Wszystko to jest cholernie niesamowite i cieszę się, że znalazłem się trochę więcej mocy bash.

+5

Myślę, że * wpłynie to tylko na bash, podczas gdy rozwiązanie 'inputrc' będzie miało również zastosowanie do innych programów użyj readline, np interpreter Pythona, większość innych powłok. Zauważ, że możesz również umieścić polecenia w '~/.inputrc', jeśli nie masz root'a, lub nie chcesz, aby były one stosowane do wszystkich użytkowników. – Thomas

+0

bardzo interesujące, zaktualizuje mój $ HOME, aby to odzwierciedlić. –

+0

Z jakiegoś powodu zadziałało to tylko dla mnie, gdy zamieniłem kolejność twoich linii powyżej. Dalsza uwaga. Używam Ubuntu 14.04LTS za kit z Windows 8.1. – Dez

Powiązane problemy