Szukałem i nigdzie nie mogłem znaleźć rozwiązania tego problemu. Używam PuTTY z Windows do łączenia się z różnymi serwerami, na których uruchamiam bash i screen. Wygląda na to, że bash działa poprawnie z klawiszami strzałek ctrl, aby przeskakiwać słowo w słowo w linii poleceń, ale na ekranie nie działa. Nie na ekranie, ctrl-lewy wysyła „^ [OC, a ctrl-prawy to” ^ [OD ”. Na ekranie zamiast tego dostaję„ ^ [[C ”i„ ^ [[D ”), które wydają się kodami tylko lewy / prawy klawisz strzałki. Czy jest jakiś sposób, aby ekran rozpoznał klawisze Ctrl-strzałka podczas korzystania z PuTTY? (FYI, nie pamiętam tego problemu, gdy używam terminalu GNU w Linuksie zamiast PuTTY).
AKTUALIZACJA: Wygląda na to, że problem stanowi PuTTY, ponieważ nie wysyła kodów specjalnych niezbędnych do działania. Na razie się poddaję i używam Cygwin + mintty.
źródło
^[[1;5A
Ctrl-Up, który wydaje się być bardziej poprawny, zgodnie z code.google.com/p/mintty/wiki/Keycodes#Cursor_keysOdpowiedzi:
Edytować:
Oto, co zadziałało dla mnie:
~/.bashrc
zestawyTERM=xterm
(moje bywająTERM=xterm-256colors
) zastępują ekranyTERM=screen
tput smkx
po znaku zachęty BashTeraz klawisze Ctrl-Arrow przeskakują słowo po słowie
W celach informacyjnych, jeśli mam zrobić:
tput smkx | hexdump -c
Mam
0000000 033 [ ? 1 h 033 =
i
tput rmkx | hexdump -c
daje mi
0000000 033 [ ? 1 l 033 >
Myślę, że istnieje sposób, aby przerobić to na coś nieco lepszego, ale do tej pory mam to i wydaje się, że działa.
Oryginalna odpowiedź:
Od
info screen
:A VT100 nie mają kodów klawiszy Ctrl-Arrow.
źródło
set -o vi
(jeśli jesteś tego typu osobą :)set -o vi
włącza tryb wiersza polecenia vi, dzięki czemu możesz naciskaćESC
i używać klawiszy vi, aby poruszać się i edytować linię poleceń.Jak wspomniano tutaj , możesz umieścić ~ / .inputrc:
To zadziałało dla mnie.
źródło
$include /etc/inputrc
u góry.inputrc
pliku, w przeciwnym razie readline nie przeczyta powiązań ogólnosystemowych, a klucze takie jak Home i End się zepsują.Jestem nieco zaskoczony, że Putty poprawnie wysyła klawisze strzałek ctrl, nawet bez korzystania z ekranu, ponieważ to nigdy nie działało dla mnie. Moim rozwiązaniem było przejście na używanie klawiszy strzałek alt (meta-strzałki), które, jak sądzę, mają domyślnie to samo wiązanie słów do przodu / do tyłu w bash, chociaż musiałem wydać kilka dodatkowych poleceń, aby zsh je rozpoznał:
źródło
W przypadku, gdy inni znajdą to stare pytanie, tak jak ja, nowsze rozwiązanie:
http://stuff.mit.edu/afs/athena/project/bsd/src/tmux-1.3/FAQ
źródło
Powinieneś zajrzeć do dokumentacji terminfo, ncurses, screen i putty, jeśli chcesz poprawnie debugować / konfigurować. Również skróty bash można skonfigurować za pomocą inputrc. Przejrzyj strony podręcznika bash i wyszukaj inputrc.
źródło
Czy masz odpowiednie kodowanie znaków w Putty? Jeśli łączysz się z serwerem w UTF-8, a twój kit jest w standardowym zestawie znaków, w vimie klawisze strzałek są zapisywane. Jeśli Putty jest w UTF-8, możesz przesunąć kursor. Może w twoim przypadku jest tak samo ...
źródło
W konfiguracji kitu w obszarze Terminal -> Funkcje znajduje się kilka pól wyboru „wyłącz”. Możesz spróbować wyłączyć klawisze kursora aplikacji lub tryb klawiatury aplikacji - czasami kit próbuje być „zbyt inteligentny” i wysyła znaki sterujące, które nie są kompatybilne z serwerem.
źródło
Używam terminala> Klawiatura> Klawisze funkcyjne> Xterm R6, który pomaga przy klawiszach funkcyjnych htop (wyszukiwanie f4 itp.) Działających zgodnie z oczekiwaniami.
Odkryłem, że zamiast używać CTRL + strzałka, ALT + strzałka skacze zamiast słów.
źródło