Як змусити xterm надсилати Alt ключ на emacs як Meta?


9

Я бачу, що це питання задавали кілька разів . Рішення, подані там, схоже, не стосуються моїх налаштувань. Ось моя історія:

Я використовую ubuntu 12.0.04 LTS, з xmonad (не понад gnome), і використовую xterm для своєї роботи. Я вважаю за краще використовувати xterm, а не інший термінал або власне вікно emacs. Під час використання emacs -nw я бачу, що Alt не розпізнається. Я перевірив, використовуючи xev, що Alt справді генерується. Далі, якщо я використовую rxvt, я бачу, що Alt стає розпізнаваним emacs -nw. Я використовую злий режим (як давно користувач vim та newmae emacs), і я дійсно вважаю за краще, щоб мій ключ відходу не був відбитим як alt (що було рішенням, поданим в іншій темі). Що я повинен зробити? (Якщо це допомагає, Alt-x у вікні xterm без запуску emacs генерує "ø" або якщо я запускаю emacs -nw -Q).


Якщо я не помиляюся, Alt читається як M натомість.
Брайам

Я не зрозумів, ви маєте на увазі M, а не Мета, правда? Чому ти це кажеш?
rahul

Мета ключ Emacs. Ви не можете натиснути Mx?
Брайам

О, це моя проблема. Я очікував, що Alt-x генерує Mx (як це відбувається у графічному режимі), але це не робить для xterm для мене. Натомість він генерує (ø)
rahul

Відповіді:


13

Як видно з Arch Wiki , вам потрібно зробити Xterm, щоб надіслати програму правильний ключ, що вийшов:

Якщо ви користуєтесь Altклавішею для клавіатурних скорочень, вам знадобиться це у вашому файлі ресурсів:

XTerm*metaSendsEscape: true

Отже, просто робіть:

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

І перезапустіть сеанс Xterm.


Дякую, що спрацювало. Отже, якщо Alt надсилає втечу зараз, як xterm обробляє Escape? (Втеча теж працює, я прошу розуміння.)
rahul

@rahul Я не сказав "Esc" втечі, але втік натисканням клавіші "^ M"
Брайам

4
замість перезапуску сеансу ви також можете запуститиxrdb -merge ~/.Xresources
Крістіан Фріц

2

Якщо оновлення ~ / .Xresources не працює для вас, виконайте, як зазначено в документації, та оновіть його ~/.Xdefaults

http://frequal.com/linux/XTermMetaSendsEscape.html


Це працювало для мене на голому сервері X, як і з startx /usr/bin/xterm, де ~/.Xresourcesбуло проігноровано.
Руслан

1

Існує цікава альтернатива керуванню вашими .Xdefaults/ .Xresourcesфайлами, надаючи рядок ресурсу безпосередньо як xtermпараметр командного рядка:

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

Це зручно, наприклад, якщо у вас все-таки є спеціальний псевдонім x-terminal-emulator.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.