그것은 밝혀, C-C의 C-D은 이미 python-mode
('python-pdbtrack-toggle-stack-tracking
에)에 바인딩됩니다.
참고 : 솔루션을 잘라내거나 붙여 넣기 만하려는 경우 답변의 끝으로 이동하십시오. 거기에 도착하는 방법에 대한 설명을 읽으십시오. 다시 할 수 있기를 바랍니다.
매크로는 좋은 시작이지만, 가지고있는 것은 잘 작동하지 않습니다. 당신이 키에 바인딩 할 수있는 무언가를 얻으려면, 그 매크로MX가 삽입-KBD-매크로 시도, 당신은 얻을 것이다 :
(fset 'add-docstring
(lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ("def ...unprintable characters...6\"3" 0 "%d")) arg)))
(흠 .... 인쇄 할 수없는 문자를, 내가 할 수있는 ' t를 잘라내어 붙여 넣기 만하면되지만 옳은 것을 얻기 위해 직접 할 수 있습니다.) 약간의 munging, 당신은 무엇을 얻을이 동일합니다 : 첫 번째 단계입니다
(fset 'add-docstring
(lambda (&optional arg)
"Keyboard macro."
(interactive "p")
(kmacro-exec-ring-item `(,(kbd "C-r def C-n C-a C-m C-p C-i C-u 6 \" C-u 3 C-b") 0 "%d")
arg)))
. 위의 경우 M-x add-docstring
을 수행하고 원하는 동작을 얻을 수 있습니다.
다음 단계는 키에 로컬로 바인딩하는 방법입니다.하고 관심 keybindings begins here에 대한 문서에 이르게의 Local Keymaps section 않습니다 :이 python-mode
가 켜져있을 때 호출되는 익명 함수를 설정하고 그 기능을 하나의 일을
(add-hook 'python-mode-hook
(lambda() (define-key python-mode-map (kbd "C-c C-d") 'add-docstring)))
- 그것은 특별히 파이썬 모드의 키맵에 원하는 키 바인딩을 설정합니다.
당신이 밀접하게 Keymaps section를 읽는다면, 당신은 이맥스 사용자 만 어떤 낮거나 대문자 문자 참조, (예를 들어 참조 d를에 commads을 결합한다 규칙을 따른다고 볼 수 있습니다 참조 T참조 피)이 모두 사용할 수 있으며, 패키지 퍼센트가 구두점 문자 또는 제어 키입니다 참조 %의에 모드 별 바인딩을 제한 (예 : 참조 참조C-c [C-c C-z].
바인딩을 C-c d으로 변경하면 패키지와 충돌하지 않을 것입니다. Emacs에 포함 된 python.el
은 대부분의 (모든?) 패키지가 이맥스와 함께 제공되는 것처럼이 규칙을 따른다.
kbd
을 사용하면 키 시퀀스를 읽을 수 있습니다. 이식성이 뛰어나고 읽기가 훨씬 쉽습니다.
- 는
(이 질문을 참조) 대신 후크의
named function
rewrite the macro in elisp
사용 eval-after-load
에서 사용자 지정을 넣어 : 이를 정리하는 당신이 할 수있는 더 가지가있다
다음은 # 1에서 할 수있는 일입니다. 다른 맞춤 설정을 할 수있는 편리한 장소를 제공합니다.
(add-hook 'python-mode-hook 'my-python-customizations)
(defun my-python-customizations()
"set up my personal customizations for python mode"
;; put other customizations in here
(define-key python-mode-map (kbd "C-c C-d") 'add-docstring))
(defun add-docstring (&optional arg)
"Keyboard macro."
(interactive "p")
(kmacro-exec-ring-item `(,(kbd "C-r def C-n C-a C-m C-p C-i C-u 6 \" C-u 3 C-b") 0 "%d")
arg))
원하는 경우 나중에 (remove-hook 'python-mode-hook 'my-python-customizations)
을 수행 할 수 있다는 점에서 명명 된 함수를 사용하는 것이 조금 깔끔합니다. 또한 후크 값 (C-h v 파이썬 모드 후크 RET)을 살펴보면 무엇이 불려지는지 알 수 있습니다 (익명 함수가 길어지고 읽기가 더 어렵습니다). 보너스 포인트
, 당신은이 지역에서 코드를 평가하는 이맥스 말할 것이다 .emacs
할 M-X 평가 - 지역,에 코드를 붙여 넣은 후. 기존 파이썬 버퍼의 변경 사항을 보려면 새 파이썬 파일/버퍼를 열면 키 바인딩 변경이 트리거됩니다. 이는 모든 파이썬 버퍼에 공통적입니다. 해피 해킹.
필연적 인 후속 조치 : 당연히 diff/ediff를 사용하기 시작 했으므로 응답자가 올바른 방향으로 나를 가리키게되어 기쁩니다. –