2016-10-13 6 views
0

음의 인수가 앞에 붙는 명령을 M-b에 바인드하려고합니다. 내 코드를 게시합니다. 나는 그것이 작동 할 수있는 방법emacs의 음수 - 인수 + 명령에 키 바인딩

(global-unset-key (kbd "M-b"))               
(global-set-key (kbd "M-b") (lambda() (interactive) (negative-argument(forward-whitespace))))  

작동하지

(global-unset-key (kbd "M-f"))               
(global-set-key (kbd "M-f") 'forward-whitespace)          

작업?

답변

2

당신이 가지고있는 특정 문제가 쉽게 해결된다 :

(global-set-key (kbd "M-b") (lambda() (interactive) (forward-whitespace -1))) 

당신이 부정적인 인수를 대화 형으로 임의의 명령을 호출 할 매크로를 쓸 수 있다면 당신은 궁금 할 것이다. 정말, 어떤 준수 기능도 같이 잘 작동 것

(defmacro call-with-negative-argument (command) 
    `(lambda() 
    (interactive) 
    (prefix-command-preserve-state) 
    (setq prefix-arg '-) 
    (universal-argument--mode) 
    (call-interactively ,command))) 
(global-set-key (kbd "...") (call-with-negative-argument forward-whitespace)) 

:하지만

정말 어려운 일이 아니다

(defmacro call-with-negative-argument (command) 
    `(lambda() 
    (interactive) 
    (,command -1))) 
+0

당신을 감사합니다! 이 대답에 관해서는 불행히도 또 다른 질문이 있습니다. http://stackoverflow.com/questions/40024130/tell-emacs-to-interpret-words-breaking-them-at-newline-and-whitespace를보십시오. – Nisba