단축키를 사용할 수 없습니다++matlab에서 실행 emacs에서 실행 화면에서 실행

단축키를 사용할 수 없습니다++matlab에서 실행 emacs에서 실행 화면에서 실행

일반적인 설정에서는 matlab-emacs를 사용하여 Emacs GUI를 통해 Matlab을 실행합니다. 저는 Linux 서버에서 Matlab과 emacs를 실행하고 ssh와 X 전달을 사용하고 있으므로 이 모든 것이 내 Ubuntu 노트북에 로컬로 표시됩니다.

화면에서 emacs를 실행하여 이 설정을 더욱 복잡하게 만들고 싶습니다. 이는 Matlab에 코드 블록을 실행하도록 지시하는 키보드 단축키 ++가 아무 작업도 수행하지 않는 것처럼 보이는 Ctrl한 가지 주목할만한 예외와 함께 주로 작동합니다. 이 바로가기가 내 컴퓨터의 로컬 어딘가로 전송될 수 있을까요? 이 명령을 실행하려고 시도했을 때 랩탑 터미널 상단의 메뉴 표시줄이 변경된 것을 발견했습니다.AltEnter

CtrlMatlab 코드 블록을 예상대로 실행하기 위해 ++를 얻는 방법에 대한 현명한 제안이 있는 사람이 있습니까?AltEnter

답변1

터미널은 키가 아닌 문자를 전송합니다. Ctrl+ + Alt와 같은 키 또는 키 조합을 누르면 Enter터미널은 이를 문자 또는 문자 시퀀스로 변환해야 합니다. 모든 키를 나타내는 문자가 충분하지 않으므로 대부분의 이러한 조합은 이스케이프 문자로 시작하는 문자 시퀀스인 이스케이프 시퀀스로 전송됩니다.

몇 가지 일반적인 규칙이 있지만 이스케이프 시퀀스에 대한 보편적인 표준은 없습니다. 예를 들어, Alt+는 key일반적으로 이스케이프 문자 뒤에 문자 또는 이스케이프 시퀀스를 보냅니다.열쇠;그러나 Ctrl+가 전송되는 것에 대한 표준은 없습니다 Enter. 일부 터미널은 구성 가능하고 일부 터미널에는 하드코드된 이스케이프 시퀀스가 ​​있습니다.

당신은 또한 볼 수 있습니다터미널 사용 시 키 바인딩 문제Xterm에 대한 더 자세한 설명과 가능한 솔루션을 얻으십시오.

선호하는 터미널을 통해 ++를 전송할 수 없는 경우 Ctrl다른 키 바인딩을 선택할 수 있습니다. GUI Emacs에서 Matlab을 사용하는 경우 OK를 눌러 명령++를 실행하세요. 그런 다음 명령 이름이 어디에 있는지 입력하면 어떤 키가 바인딩되어 있는지 알려줍니다. 쉽게 입력할 수 있는 바인딩이 없으면 초기화 파일에 다음과 같이 추가하세요.AltEnterCtrlAltEnterC-h c C-M-returnC-h w matlab-foo RETmatlab-foomatlab-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. 그것이 무엇인지 알아내려면 ; 를 입력하십시오 C-h k C-M-return. 이는 "CM-return이 `matlab.el`에서 대화형으로 컴파일된 Lisp 함수인 matlab-foo 명령을 실행합니다"와 같은 내용을 알려줍니다. Lisp 파일의 이름은 해당 줄의 마지막 숫자에서 해당 .el부분을 뺀 숫자입니다. 의 경우 matlab-mode-map키맵의 이름을 바꿉니다. 이는 일반적 으로 끝에 C-h v major-mode RET추가된 주요 모드("해당 값은 matlab-mode") 의 이름입니다.-map

아니면 정말로 Screen을 사용해야 합니까? Emacs가 연결 해제 상태에서도 살아남도록 하기 위해 이것을 사용하는 경우에는 실제로 이렇게 할 필요가 없습니다. Emacs를 데몬( )으로 시작하고 emacs --daemonSSH를 통해 원격으로 연결하기 위해 실행하여 새 GUI 프레임을 엽니다. emacsclient -c여러 모니터에서 GUI 프레임을 켜고 끌 수 있으며 모니터가 왔다 갔다 해도 Emacs는 계속 실행됩니다.

1은 실제로 바이트이지만 여기서는 중요하지 않습니다.

관련 정보