Shell czasami nie wyświetla znaku ESC ^ [przed sekwencją ucieczki


2

Czasami, po naciśnięciu klawisza strzałki (zwykle w górę) wewnątrz powłoki, terminal lub powłoka nie ESCwypisuje znaku przed sekwencją ucieczki, więc jeśli nacisnę strzałkę w górę, aby spróbować zobaczyć ostatnie polecenie, wyświetli [Abash i OAna zsh, zamiast ostatniego polecenia. Działa poprawnie przy następnym naciśnięciu klawisza strzałki.

Dzieje się tak niezależnie od używanego emulatora terminali lub powłoki (ale używa OAzamiast [Azsh).

Nie mogę dokładnie określić, w jakich okolicznościach to się dzieje, wydaje się to dość losowe, ale zwykle dzieje się to przy następnym naciśnięciu strzałki po zmianie okna za pomocą menedżera okien (i3).

To nie dlatego, że nacisnąłem klawisz zbyt szybko po zmianie okna, ponieważ mogę przełączać okna, pisać tekst w powłoce, a następnie nacisnąć klawisz strzałki, a on nadal będzie wyświetlał [A/ OA.

Może to być związane z faktem, że używam i3 jako mojego menedżera okien.

Czy mogę coś zrobić, aby naprawić lub usunąć ten problem?


Zakładam, że nacisnąłeś ESCklawisz zanim wystąpi ten problem. To nie jest tak, że otwierający ESC sekwencji jest połykany; zamiast tego jest połączony z poprzednio buforowanej jeden (dwa bajty ESC postać co), a następnie kolejne OAlub [Atraktowane są jako proste ciągów zakodowanych.
egmont

Jeśli nacisnę ESCklawisz przed wydaniem, jest on w innym terminalu. Naciśnięcie ESCklawisza w innym terminalu (zwykle w vimie), a następnie przełączanie terminali czasami powoduje problem, ale nie zawsze jest powtarzalne.
Akumulator

Jak przełączyć Windows? Czy w grę wchodzi naciśnięcie klawisza jak Alt + Tab? Co to właściwie jest? Spróbuj przetestować i zgłosić korelację: przełącz się z terminala do innego okna, a następnie przełącz się z powrotem, a następnie naciśnij strzałkę. Wypróbuj wszystkie kombinacje (0. naciśnięcie klawisza do przodu, naciśnięcie klawisza do tyłu; 1. naciśnięcie klawisza do przodu, kliknięcie myszą do tyłu; 2. kliknięcie do przodu, naciśnięcie klawisza do tyłu; 3. kliknięcie dalej, kliknij wstecz).
Kamil Maciorowski

Zawsze przełączam okna za pomocą alt+hjkl(alt to klawisz mod)
Accumulator

Odpowiedzi:


0

Nie mam wystarczającej reputacji, aby zamieszczać komentarze, więc proszę, nie głosujcie proszę, przenieście moją odpowiedź na komentarze, jeśli macie wrażenie, że jest to bardzo głupie:

Widzę cztery możliwe scenariusze (bardzo ogólne ze względu na brak szczegółów dotyczących sterownika, jądra, dystrybucji, modelu klawiatury ...):

  1. Zepsuta klawiatura.
  2. Problem z menedżerem okien.
  3. Problem ze sterownikiem / jądrem.
  4. Problem z lokalizacjami.

Możliwe rozwiązania:

  1. Widziałem złamane klawiatury działające w podobny sposób, wysyłające dziwne sygnały klawiszy losowo, szczególnie (ale nie tylko) po naciśnięciu innych określonych klawiszy (mówiłeś, że również zmieniasz okna za pomocą klawiatury). Wypróbuj inną klawiaturę, aby sprawdzić, czy nadal tak się dzieje. Widziałem to częściej na klawiaturach bezprzewodowych, ale miałem również wiele dziwnych rzeczy na klawiaturach przewodowych. Sprawdź, czy zdarza się to czasami bez otwartego menedżera okien, w trybie konsoli.
  2. Coś może być nie tak z i3 (bez dalszych szczegółów nie dam ci głębszej odpowiedzi). Zaktualizuj i3 lub tymczasowo zainstaluj inny menedżer okien i sprawdź, czy błąd się powtórzy.
  3. Jeśli zmienisz okno za pomocą klawiatury, może to mieć związek z tym, że bufory klawiatury nie będą poprawnie odczytywać. Spróbuj zaktualizować jądro, aby sprawdzić, czy rozwiązuje ono problem z kolejką. Jeśli masz zainstalowane oprogramowanie do wirtualizacji, być może zepsuło to sterownik podczas instalacji zaczepów klawiatury ...
  4. W ustawieniach klawiatury może być coś dziwnego. Chociaż jest to bardzo mało prawdopodobne, możesz spróbować pobrać lub wygenerować nowy plik ustawień regionalnych.

1. Nadal tak się dzieje, na pewno nie klawiatura. 2. Używanie bspwm teraz, bez różnicy. 3. Spróbuję to wkrótce. 4. Wypróbuj teraz.
Akumulator
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.