Nie można już używać CTRL + lewo / prawo w Bash Terminal

13

Zazwyczaj używam CTRL+ Lefti CTRL+ Rightdo nawigacji między słowami w wierszu poleceń. Dziś rano zmieniłem laptopa i nie mogę tego dłużej robić. Zamiast tego kod wejściowy CTRL+ Leftjest drukowany w terminalu.

To znaczy: Oto mój wynik, gdy próbuję nawigować za pomocą CTRL+ Left:

~ $ test test ;5D;5D;5D

Co ciekawe, nadal mogę używać CTRL+ Left/ Rightdobrze w VIM.

Soczysty
źródło
Może umieściłeś coś w swoim bashrc, aby to umożliwić? Ponieważ nie działa domyślnie dla mnie na Ubuntu 15.10 ...
Martin Tournoij
Proszę opublikować wynik grep bind ~/.bashrc . Czy pozyskujesz inne pliki w ~/.bashrc( grep source ~/.bashrc)?
Kos
1
Po prostu ciekawy, ale jaka jest wydajność echo $0?
Aaron,

Odpowiedzi:

15

Otwórz ~/.inputrcplik i dodaj następujące wiersze:

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

Zamknij i ponownie otwórz powłokę. Teraz powinieneś być w stanie używać tych kluczy.

Powody takiego zachowania? Nie całkiem pewne. Z jakiegoś powodu bashprzestałeś czytać /etc/inputrcplik, ale powinien on czytać ten z folderu domowego

Sergiy Kolodyazhnyy
źródło
Myślę, że ten problem zaczął się dla mnie, gdy utworzyłem plik ~ / .inputrc. Czy to by to zrobiło?
wjandrea,
1
@wjandrea tak, właśnie to przetestowałem. Przed pustym ~/.inputrcdziałaniem bash działał poprawnie, zaczął tworzyć te same znaki kontrolne dla danych wyjściowych po ~/.inputrcutworzeniu pustego . Usunięto go - Ctrl + klawisze strzałek znów działają. straceujawnia, że ​​jeśli .inputrcistnieje, bash nie będzie czytać /etc/inputrc.
Zajmę się
1
Jeśli dodasz $include /etc/inputrcdo początku ~/.inputrcpliku, możesz uwzględnić zachowanie systemowe, a następnie rozszerzyć je.
Cory Gross