나는 C-l
을 덮어 쓰고 M-x erase-buffer
을 사용하고 이라는 수치를 시뮬레이션 한 후 m-shell-mode
인 경우에만 사용하고 싶습니다. C-l
이 기본값 인 recenter-top-bottom
이어야합니다. 어떻게해야합니까?emacs - 주요 모드에서만 단축키를 설정 하시겠습니까?
1
A
답변
3
m-shell-mode
만약 당신이 다음, 다른 프로세스와 상호 작용하는 쉘을 제공하는 많은 모드의 사실이다 comint-mode
에 기반 comint-send-input
함수를 사용하여 return
키 누르기를 matlab에 전달할 수 있습니다. 이 경우 다음 코드가 원하는대로 수행해야합니다.
(defun clear-and-return()
"Erases the buffer, and then passes a return to the buffer process.
Assumes the buffer is attached to a comint process."
(interactive)
(erase-buffer)
(comint-send-input))
(defun my-m-shell-mode-hook()
(local-set-key (kbd "C-l") 'clear-and-return))
(add-hook 'm-shell-mode-hook 'my-m-shell-mode-hook)
첫 번째 defun은 원하는대로 기능을 수행합니다. 두 번째 함수는 함수가 호출 될 때 활성화 된 버퍼에 대해 해당 함수에 C-l
을 바인딩하는 후크 함수입니다. add-hook
은 m-shell-mode
을 시작할 때마다 emacs가 두 번째 기능을 실행하도록 지시합니다. my-m-shell-mode
의 본문에 m- 쉘 모드 커스터마이징을 추가 할 수 있으며 Emacs는 모드를 시작할 때마다 Emacs를 모두 실행합니다.
comint-mode
을 기반으로하지 않는 경우 return
을 눌러야합니다. 모드를 실행하는 버퍼에서 리턴 키에 바인드 된 함수를 찾으려면 C-h k RET
을 입력하십시오. 위의 코드에서 comint-send-input
대신 해당 함수를 사용하십시오.
4
확실하지 무엇 m-shell-mode
이지만, 그것의 경우 major mode을 잘 정의 된, 그 트릭해야 다음
(require 'm-shell-mode)
(define-key m-shell-mode-map (kbd "C-l") 'erase-buffer)
내가 같은 시각적 효과를 결합 대안을 제시 할 수 있음을, 그러나 유지 주변의 버퍼 내용 (편리 할 수 있음).
(defun shell-clear-command (&optional a)
"\"clear\" the screen"
(interactive "P")
(recenter (or a 0)))
(define-key m-shell-mode-map (kbd "C-l") 'shell-clear-command)
1
당신은 당신의 m-shell-mode
후크에 다음 코드를 추가 할 수 있습니다
(local-set-key (kbd "C-l") 'erase-buffer)
관련 문제
- 1. JButton의 키보드 단축키를 설정 하시겠습니까?
- 2. GUI 모드에서만 특정 Emacs init 명령을 실행하십시오.
- 3. Komodo Mac에서 단축키를 편집 하시겠습니까?
- 4. Emacs (Lisp의)에서 현재 주요 모드를 감지합니까?
- 5. dirtree를위한 Emacs 설정
- 6. Windows에서 emacs 글꼴 설정
- 7. 자바 개발을위한 Emacs 설정
- 8. Emacs 색상 테마 설정
- 9. 디버그 모드에서만 메뉴 항목을 표시 하시겠습니까?
- 10. 주요 기능을 중지 하시겠습니까?
- 11. Emacs 셸에서 코딩 하시겠습니까?
- 12. Eclipse 단축키를 변경하는 방법은 무엇입니까?
- 13. AutoHotkey에서 개발 IDE 단축키를 설정 했습니까?
- 14. Wonderground API. 주요 설정 문제
- 15. Emacs 어느 기능 모드 설정
- 16. wxErlang 사용을위한 emacs + erlang 설정
- 17. 우분투에서 레일스 개발을위한 Emacs 설정?
- 18. Silverlight에서 브라우저의 단축키/단축키를 비활성화 하시겠습니까?
- 19. ASP.NET : Web.config : 릴리스 모드에서만 XML 요소를 포함 하시겠습니까?
- 20. 스크럼의 주요 프로세스를 나열 하시겠습니까?
- 21. Emacs 버퍼에서 URL을 추출 하시겠습니까?
- 22. Emacs Lisp에서 퀴즈를 생성 하시겠습니까?
- 23. 약식 모드 (Emacs)의 주요 모드 간 축약어
- 24. MacOS에서 이맥스에서 PYTHONPATH를 설정 하시겠습니까?
- 25. CQWP 편집 모드에서만 렌더링
- 26. 런타임 모드에서만 텍스트 상자
- 27. 프로덕션 모드에서만 예외 알림?
- 28. SerializationException은 릴리스 모드에서만 발생합니다.
- 29. 이클립스 메이크 파일 프로젝트의 주요 기능 설정
- 30. 릴리스 모드에서만 MVC3 메서드에 역할 특성을 추가 하시겠습니까?
은 확실히'm-shell-mode'를 의미합니다. MATLAB 터미널입니다. 어떤 식 으로든 ENTER 키를 누를 수도 있습니다. 기본적으로'erase-buffer'는 MATLAB 명령 창을 지울 것입니다; ENTER 키를 누르면'>'프롬프트가 뜹니다 (나는 거기에 있다는 것을 알고 있지만 그것은 내가 생각하는 시각적 인 것입니다). –
@Dang Koa, 당신이 시도하고 싶은 다른 바인딩. –
@TreyJackson, shell-clear-command이란 무엇입니까? 내 이맥스 (24 .. 94.1) 나 google에서는 볼 수 없다. – Tyler