Putty SSH: CTRL + klawisze kursora nie działają, przejdź do poprzedniego / następnego słowa

29

Kiedy jestem połączony z moim lokalnym serwerem deweloperskim Ubuntu z pakietem (z mojego Windows 7) przez SSH, następujące kombinacje klawiszy nie działają, aby przesunąć kursor do przodu i do tyłu na granicach słów:

  • Ctrl+ Left Arrowna klawiaturze kursora
  • Ctrl+ Right Arrowna klawiaturze kursora

Kursor przesuwa tylko jeden znak na raz. Używam bash.

użytkownik26767
źródło
bash używa kluczowych Emacs powiązań domyślnie, więc Alt+Bi Alt+Fruszy tyłu / do przodu o jedno słowo. Możesz zmienić wiązanie na vi, jeśli chcesz, i przejść dalejw
phuclv

Odpowiedzi:

42

Dodaj te dwa wiersze do ~/.inputrcpliku na komputerze docelowym:

"\eOD": backward-word
"\eOC": forward-word

Aby upewnić się, że są to prawidłowe sekwencje, w wierszu polecenia Bash wpisz Ctrl- V Ctrl- LeftArrowi Ctrl- V Ctrl- RightArrow, powinieneś zobaczyć:

^[OD^[OC

Po rozpoczęciu nowej sesji klucze będą dostępne lub możesz nacisnąć Ctrl- xCtrl-, raby ponownie odczytać ~/.inputrcplik dla bieżącej sesji.

Wstrzymano do odwołania.
źródło
Czy podobna sztuczka zadziała do usuwania całych słów?
Casebash
@Casebash: Spróbuj bind -P | grep kill-wordpokazać istniejące powiązania klawiszy do usuwania całych słów. W razie potrzeby możesz zmienić powiązania w podobny sposób do mojej powyższej odpowiedzi.
Wstrzymano do odwołania.
Zauważyłem, że OpenSuSE (12.3) już związał te sekwencje backward-chari forward-charzamiast dodawać te linie, musiałem zastąpić linie, które już zawierały wiązania.
palswim
Świetny! Pracowałem dla Ubuntu 14.04 dla mnie, a mój kit działa na systemie Windows 7.
Edwin Yip
Nie działa z Putty na win10
nZeus
3

W przypadku konsoli Linux:

"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

7,7 Tworzenie pliku / etc / inputrc

Meetai.com
źródło