Intereting Posts
Когда требуется xargs? Как читать полное руководство «grep»? Можете ли вы установить значения sysctl для Linux во время компиляции Идентификатор Makefile для установки в первый доступный каталог Как заставить xcape работать в сеансе ssh Устранение неполадок RPM Другой вопрос awk (ward) – подстановка подстроки с несколькими ключами ловушка для отладочного сигнала вызывалась дважды, прежде чем функция оболочки будет выполняться, когда функция «functrace» включена Как узнать, что процесс заканчивается? Как установить Fedora из ISO на USB? Как восстановить доступ к Интернету? ТОЛЬКО программа, которая по-прежнему пользуется Интернетом – это разнообразие (приложение для обоев) Почему принудительно fsck при включении Sheevaplug? "Sec_error_unknown_issuer" в Iceweasel 22.0 «Образ диска базы данных искажен» Подключите диск с помощью ярлыка на рабочем столе вместо терминала

Я не могу использовать сочетание клавиш <ctrl> + <alt> + <enter> в matlab, запущенном в emacs, запущенном на экране

В моей обычной настройке я использую matlabemacs для запуска Matlab через emacs gui. Я запускаю matlab и emacs на сервере linux и использую пересылку ssh и X, поэтому все это появляется на моем локальном ноутбуке ubuntu.

Я хотел бы еще больше усложнить эту настройку, запустив emacs на экране. Это в основном работает с заметным исключением, что сочетание клавиш Ctrl + Alt + Enter, которое указывает Matlab на запуск блока кода, похоже, ничего не делает. Я предполагаю, что этот ярлык отправляется, возможно, где-то локально на мою собственную машину? Я замечаю, что панель меню наверху моего терминала на моем ноутбуке меняется, когда я пытаюсь запустить эту команду.

У кого-нибудь есть умное предложение о том, как я могу получить Ctrl + Alt + Enter для запуска блоков кода Matlab, как ожидалось? Благодаря!

Терминалы передают символы¹, а не клавиши. Когда вы нажимаете клавишу или комбинацию клавиш, например Ctrl + Alt + Enter , терминал должен перевести его на символ или последовательность символов. Недостаточно символов для представления всех ключей, поэтому большинство таких комбинаций передаются как escape-последовательности: последовательность символов, начинающихся с escape-символа.

Для escape-последовательностей нет универсального стандарта, хотя есть некоторые общие соглашения. Например, клавиша Alt + часто отправляет escape-символ, за которым следует символ или escape-последовательность для ключа ; но нет стандарта для того, что посылает Ctrl + Enter . Некоторые терминалы конфигурируются, некоторые из них имеют жестко кодированные escape-последовательности.

См. Также Проблемы с привязкой клавиш при использовании терминала для более подробного объяснения, а также возможные решения с Xterm.

Если вы не можете получить Ctrl + Alt + Enter для передачи через ваш любимый терминал, вы можете выбрать другое связывание ключей. Выясните, какая команда Ctrl + Alt + Enter запускается, нажимая Ch c CM-return когда вы используете Matlab в графическом интерфейсе Emacs. Затем введите Ch w matlab-foo RET где matlab-foo – имя команды; это скажет вам, к какому ключу (-ам) относится matlab-foo . Если нет привязки, которую вы можете легко ввести, добавьте ее в файл инициализации, с чем-то вроде

 (defun my-eval-after-load-matlab () (define-key matlab-mode-map [f9] 'matlab-foo)) (eval-after-load "matlab" '(my-eval-after-load-matlab)) 

Для "matlab" подстановка – имя файла Lisp, определяющего команду matlab-foo . Чтобы узнать, что это такое, введите Ch k CM-return ; это говорит вам что-то вроде «CM-return» запускает команду matlab-foo, которая представляет собой интерактивную скомпилированную функцию Lisp в `matlab.el`. Имя файла Lisp – это последний бит в строке, минус часть .el . Для matlab-mode-map замените имя раскладки клавиатуры; это, как правило, название основного режима ( Ch v major-mode RET , «Его значение – режим Matlab») плюс -map в конце.

Кроме того, вам действительно нужно использовать Screen? Если вы используете его только для того, чтобы Emacs выжил в отключении, на самом деле это не обязательно. Запустите Emacs в качестве демона ( emacs --daemon ) и подключитесь к нему удаленно через SSH, запустив emacsclient -c чтобы открыть новый графический интерфейс. Вы можете открывать и закрывать графические интерфейсы на нескольких дисплеях, а Emacs будет работать, даже если дисплеи приходят и уходят.

¹ На самом деле байты, но этот бит здесь не имеет значения.