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

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

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

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

One Solution collect form web for “Я не могу использовать сочетание клавиш <ctrl> + <alt> + <enter> в matlab, запущенном в emacs, запущенном на экране”

Терминалы передают символы¹, а не клавиши. Когда вы нажимаете клавишу или комбинацию клавиш, например 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 будет работать, даже если дисплеи приходят и уходят.

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

  • Идентификатор процесса печати (PID) экземпляра Matlab
  • Набор инструментов для получения изображений Matlab не распознает мою веб-камеру
  • Как получить анимированное всплывающее окно в MATLAB для отображения моих функций
  • Является ли AMD GPU FirePro достаточной для Linux Matlab и CUDA?
  • Доступ к исполняемому экземпляру MATLAB из командной строки
  • Как получить gcc-4.7 в /usr/bin/gcc-4.7 как второй gcc в Debian Jessie?
  • Как получить возвращаемое значение из функции MATLAB
  • Как изменить настройку «Размер входного буфера» в Minicom
  • запуск командной строки matlab на экране - не может быть введен после повторной привязки
  • Ошибка сегментации CentOS VM 3972
  • Как сделать это LookBehind в Regex?
  • Linux и Unix - лучшая ОС в мире.