Jak zmusić xterm do wysłania klawisza Alt do emacsa jako Meta?


9

Widzę, że to pytanie zostało zadane wiele razy . Podane tam rozwiązania nie wydają się mieć zastosowania do mojej konfiguracji. Oto moja historia:

Używam Ubuntu 12.0.04 LTS, z Xmonadem (nie ponad gnome) i używam xterm do mojej pracy. Wolałbym używać xterm zamiast innego terminalu lub własnego okna emacsa. Kiedy używam emacs -nw, widzę, że Alt nie jest rozpoznawany. Sprawdziłem za pomocą xev, że Alt rzeczywiście jest generowany. Ponadto, jeśli używam rxvt, widzę, że Alt jest rozpoznawany przez emacs -nw. Korzystam z trybu zła (jako długoletni użytkownik vima i nowicjusz emacsa) i naprawdę wolałbym, aby mój klucz ucieczki nie był odbijany jako alt (co było rozwiązaniem podanym w innym wątku). Co powinienem zrobić? (Jeśli to pomoże, Alt-x w oknie xterm bez uruchomionego emacsa generuje „ø” lub jeśli uruchamiam emacs -nw -Q).


Jeśli się nie mylę, zamiast tego Alt jest odczytywany jako M.
Braiam

Nie rozumiem, masz na myśli M, a nie Metę, prawda? Dlaczego to mówisz?
rahul

Emacs Meta key. Nie możesz nacisnąć Mx?
Braiam

To mój problem. Spodziewałem się, że Alt-x wygeneruje Mx (jak ma to miejsce w trybie graficznym), ale dla mnie nie robi tego na xterm. Zamiast tego generuje (ø)
rahul

Odpowiedzi:


13

Jak widać na Arch Wiki , musisz zmusić Xterm do wysłania poprawnego klawisza Esc do programu:

Jeśli używasz Altklawisza do skrótów klawiaturowych, będziesz potrzebować tego w pliku zasobów:

XTerm*metaSendsEscape: true

Więc po prostu wykonaj:

echo 'XTerm*metaSendsEscape: true' >> ~/.Xresources

I uruchom ponownie sesję Xterm.


Dzięki, działało. Więc jeśli Alt wysyła teraz ucieczkę, w jaki sposób xterm obsługuje Escape? (Escape też działa, proszę o wyrozumiałość.)
rahul

@rahul Nie powiedziałem „Esc” Escape, ale klawisz Esc uciekł, naciśnij „^ M”
Braiam

4
zamiast wznawiać sesję, możesz także uruchomićxrdb -merge ~/.Xresources
Christian Fritz


1

Istnieje interesująca alternatywa do zarządzania plikami .Xdefaults/ .Xresourcesprzez podanie ciągu zasobów bezpośrednio jako xtermopcji wiersza poleceń:

xterm -xrm 'xterm*VT100.metaSendsEscape: true'

Jest to przydatne na przykład, jeśli i tak masz niestandardowy alias x-terminal-emulator.

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.