Niedawno zacząłem wynajmować powierzchnię na zdalnym serwerze, aby móc pracować nad projektem. Odkryłem, że stosunkowo bezbolesnym sposobem dostępu do niego na komputerze z systemem Windows jest PuTTY. Jest jednak jedna rzecz, która zawsze mnie denerwowała podczas korzystania z niej: z pozoru nie ma powodu, aby losowe znaki były czasami wstawiane do kursora.
W większości przypadków jest to tylko jedna tylda, ale rzadko wyrzuca coś, co wygląda jak sekwencja ucieczki ([[^ 8 lub podobny). Wystąpi to tylko wtedy, gdy skupię się na oknie, niezależnie od tego, czy piszę, czy 20 stóp od klawiatury. Jeśli pozostanie wystarczająco długo, będzie pluć tyldy w losowych odstępach czasu (średnia to około 1 minuty).
Wreszcie, to zachowanie wydaje się być niespójne podczas uruchamiania programów takich jak nano lub interfejs mysql: w nano zamiast wstawiania tyld, ustawi znaczniki (ctrl- ^); w mysql linii nie da się edytować.
Moje pytanie brzmi: czy ktoś jeszcze doświadczył takiego zachowania w PuTTY? A jeśli tak, co można zrobić, aby zapobiec / poprawić to zachowanie?
Odpowiedzi:
Miałem ten sam problem z PuTTY i odkryłem, że jest to spowodowane aplikacją, którą nazwałem „kofeiną”, która skutecznie naciska klawisz F13 co minutę, aby zatrzymać aktywację wygaszacza ekranu (zasady grupy uniemożliwiają mi zmianę limitu czasu wygaszacza ekranu na moja maszyna). Wyłączenie aplikacji rozwiązało problem.
źródło
Jeśli wolisz, aby Putty i Kofeina działały, wykonaj następujące kroki:
F15
Ctrl+V
(Jest to wymagane, aby uzyskać specjalny kod dla klucza, np. Spróbuj,Ctrl+V
a następnieF12
)F15
to^[[28~
, gdzie^[
jest ucieczka). Zatrzymaj kofeinę~
~/.inputrc
(utwórz nowy plik, jeśli nie istnieje)"\e[28~":""
~
podczas korzystania z terminalu Putty z tym serwerem Linuxźródło
Uważam , że rozwiązanie shreyansp jest najbardziej (ale nie do końca) satysfakcjonujące :)
Oto moja próba ulepszenia tego (oczywiście YMMV). Mam nadzieję, że może to być przydatne dla osób szukających rozwiązania :)
Moje rozwiązanie zachowuje się następująco:
TL; DR: Moje rozwiązanie jest stosowane między krokami 2 i 3 (patrz poniżej) w przypadku
-key:0E
parametru kofeiny:Wyjdź z kofeiny i uruchom ją ponownie za pomocą:
caffeine.exe 5 -key:0E
(dla łatwego testowania)caffeine.exe 50 -key:0E
(dla obowiązkowego wygaszacza ekranu ustawionego na 1 minutę)read
program na zdalnym hoście i zobacz, jak nie są odbierane żadne naciśnięcia klawiszy co 5 lub 50 sekund.read
zCtrl+C
Shreyansp zaproponował rozwiązanie, w którym poprawka zostanie zastosowana między krokami 5 i 10 (patrz poniżej).
Efektem ubocznym tego (w mojej konfiguracji) było to, że z każdym naciśnięciem klawisza ten kit przekazywany z kofeiny do zdalnego hosta:
którego normalnie bym chciał, ale tylko wtedy, gdy (człowiek) naciska klawisz, ale nie regularnie przez kofeinę :)
'"\e[28~"'
na'""'
(pusty klucz?) spowodowała zawieszenie interakcji sesji zdalnej na kilka sekundAby łatwo przetestować powyższe, wyjdź z kofeiny i uruchom ją ponownie z 5-sekundowym interwałem i kodem wirtualnego klucza 07:
caffeine.exe 5 -key:07
read
program na zdalnym hoście i obserwuj, jak naciśnięcia klawiszy są odbierane co 5 lub 50 sekund.read
zCtrl+C
„Potok” klawisza, tak jak go rozumiem:
$TERM=xterm
,vt100
,vt102
,vt220
, itd.) Tłumaczy z „protokołem linii” w kluczowych kodów.~/.inputrc
~/.bashrc
podstawie (na podstawie wbudowanej komendy bind)screen
program (który obejmuje$TERM=screen
krok 5 i ponownie zapętla się w kroku 6 do 10.)Uwaga: Po przejściu do kroku 4. bardzo trudno jest precyzyjnie kontrolować różne warstwy „tłumaczeń” / „odwzorowań”. Polecam unikanie tego, jeśli możesz.
Tło: Używałem przez lata, zanim
miałem
caffeine.exe -key:07
do czynienia z pfsense 2.3.3-RELEASE-p1 (oparty na FreeBSD 10.3-RELEASE).Następnie
caffeine.exe -key:07
został odebrany po drugiej stronie jako^[[28~
... co wydaje się być mapowane naCtrl+^
(Set Mark) w Nano.To było dość irytujące (wyobraź sobie, że ktoś naciska i przytrzymuje klawisz Shift podczas przesuwania kursora tekstu w Notatniku).
Wcześniej zrobiłem wiele dostosowań w Putty Ustawienia,
~/.tcshrc
,~/.inputrc
,~/.bashrc
,~/.nanorc
,~/.screenrc
aby to, co uważam za podstawową funkcjonalność (Backspace
,Delete
,Home
,End
,PgUp
,PgDown
,Ctrl+Left
,Ctrl+Right
, Numpad0-9
, Numpad./*-+
) pracuje konsekwentnie pomiędzy bash / nano / ekran.Gdy odkryłem ten
caffeine.exe -key:07
„błąd”, nie chciałem go od nowa powtarzać :)Testowany na:
Windows 8.1 64-bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (oparty na FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Referencje:
Kofeina:
Undefined
kod, który działa w twojej konfiguracji)Readline / inputrc / bash / bashrc / (builtin) bind:
Kit:
źródło
To naprawdę wygląda jak sekwencja ucieczki lub znak kontrolny, co może wyjaśniać, dlaczego nie widzisz go w innych programach, takich jak notatnik.
Nie jestem pewien, które klawisze należy nacisnąć, aby uzyskać ten wynik, ale trochę się pobawię i spróbuję się dowiedzieć. Czy potrafisz nazwać inną pokazaną sekwencję? Zachowanie mysql i nano może być kolejną interpretacją sekwencji ucieczki, które wydają się być wprowadzane.
Wreszcie pytanie brzmi: co powoduje te kluczowe dane wejściowe. Czy przypadkiem używasz laptopa, który np. Automatycznie kontroluje podświetlenie za pomocą oprogramowania zastrzeżonego? Widziałem jakieś dziwnie zainstalowane oprogramowanie, które faktycznie emuluje naciśnięcia klawiszy zamiast korzystania z API. Możesz chcieć użyć czegoś takiego jak log wejściowy na sobie.
źródło
~
(i usłyszeć beeb) tylko wtedy, gdy\e[3~
wysyłane jest coś podobnego .~
by nie wskazują sekwencję ucieczki.)Używam opcji -key: 07 w wierszu poleceń, aby uruchomić caffiene .. Wydaje się, że zatrzymuję problem Putty.
Po prostu włóż to do pliku nietoperza
caffeine.exe -key: 07
źródło
caffeine.exe -key:0E
(patrz moja odpowiedź poniżej). Wydaje się działać dobrze z Windows 8.1 (64-bit) oraz Putty szczęśliwie ignoruje go :)Ktoś na forach Cisco sugeruje zmianę parametru prędkości konsoli, aby rozwiązać ten problem.
http://www.dslreports.com/forum/r27090677-HELP-Cisco-1800-garbled-output-in-putty
Na pewno wypróbowałeś wszystkie warianty prędkości konsoli w Putty, jak wspomniano w 1 ?
Uwaga: Jeśli szybkość transmisji jest inna niż domyślna, w interfejsie CLI widoczne są znaki nieparzyste. Sprawdź tabelę 1, aby ustawić prędkości transmisji dla różnych wartości Confreg.
źródło
Miałem również ten sam problem i stwierdziłem, że caffeine.exe rzeczywiście był problemem. Na początku myślałem, że nie może to być spowodowane przez caffeine.exe, ponieważ używałem tego przez ponad 2 lata na moim starym laptopie. Próbowałem zamiast tego zmienić caffeine.exe -usehift, ale to wysłało ^ C. Znalazłem inny program, Mouse Jiggler, który utrzymuje wygaszacz ekranu z daleka, ale nie wysyła już żadnych sekwencji Escape w moich sesjach Putty.
źródło
Lepszym rozwiązaniem jest skonfigurowanie ustawień podczas sesji szpachlowania, aby Caffine nie przeszkadzała.
W Putty pod Terminal Keyboard wybierz opcję SCO. W Putty pod Terminal Bell zmień akcję na None (aby wyłączyć dzwonek).
Caffine nadal to zrobi i nie będzie ci przeszkadzać podczas sesji szpachlowania. (Nie używam klawiszy Fn podczas sesji szpachlowania, więc nie wiem, co się stanie, jeśli chcesz użyć klawiszy Fn).
źródło
2017-09-20: Rozwiązano zastrzyk char, uruchamiając kofeinę z «caffeine.exe -useshift -noicon» w harmonogramie zadań wyzwalanym przy logowaniu. Brak ikony, koniec wstrzykiwania znaków podczas sesji miętowej / bash. To było bardzo denerwujące. Dziękujemy wszystkim za podpowiedzi.
źródło