2013-01-05 3 views
2

원치 않는 키 바인딩을 제거하고이는 내가 원하는 것 방법을하지 않는 무언가이다 : 그것은 C-M-F 바인딩 원래 그림자와 C-M-F로 대체합니다. 나는. 그것을 선택하는 대신 sexp를 전달합니다. | 첫눈에 바인딩이 정의 된 장소를 찾을 수 없었습니다.Paredit : 나는 ParEdit 모드를 시도하고

어떤 방식 으로든이 동작을 취소 할 수 있습니까? 또는, 섹스를 선택하는 ParEdit의 아날로그 명령은 무엇입니까?

편집 :

당신에게 무슨 일의 더 나은 아이디어를 제공하기 위해, 나는 할 경우 채널 K ParEdit가 활성화 한 다음 CMSf 이것은 내가 무엇을 얻을 때 :

C-M-f (translated from C-M-S-f) runs the command paredit-forward, 
which is an interactive compiled Lisp function in `paredit.el'. 

It is bound to C-M-f. 

(paredit-forward) 

Move forward an S-expression, or up an S-expression forward. 
If there are no more S-expressions in this one before the closing 
    delimiter, move past that closing delimiter; otherwise, move forward 
    past the S-expression following the point. 

C-M-f 

(foo |(bar baz) quux) 
    -> 
(foo (bar baz)| quux) 

(foo (bar)|) 
    -> 
(foo (bar))| 

[back] 

아무 것도 번역하고 싶지 않습니다. 이것은 절대적으로 바람직하지 않은 행동입니다. 이후

편집

미래 sexp 달리, paredit 이상의 키를 제거/

(eval-after-load "paredit" 
    '(progn 
    (define-key paredit-mode-map (kbd "C-M-f") nil))) 

엄격 progn가 불필요 말하기,하지만 당신은 다시 정의 할 수 있습니다 :

+0

"C-h b"는 모든 keybindinds를 표시하므로 선택 명령을 검색 할 수 있습니다. paredit.el을 편집하고 C-M f 키 바인딩을 변경/제거하려고 시도 했습니까? 내 버전에서 394 – coelhudo

+0

paredit에서'C-M-F'의 바인딩을 볼 수 없습니다. 'C-M-f'는 더 똑똑한'forward-sexp'를 제공하고자합니다. –

답변

2

당신은 사용할 수 있습니다 -forward는 shift가 눌러 졌는지 확인하지 않습니다. 당신이

(eval-after-load "paredit" 
    '(progn 
    (define-key paredit-mode-map (kbd "C-M-S-f") 
    (lambda() 
     (interactive) 
     (unless (region-active-p) 
     (set-mark (point))) 
     (paredit-forward))))) 

편집

에게 같은 일을 (다음 sexp를 선택) 할 수있는 다른 방법을 사용하여 시도해 볼 수도 있습니다, C-M-공간이 될 것입니다. 그런 다음, 당신이 그렇게하고 싶어한다 (당신이 CUA를 사용하는 경우 또는 CX (여기 지연 없음) CX CX), 당신은

편집은 (마지막?) CX CX로 포인트와 마크를 교환 할 수

적절한에게 Shift를 누를 때 기능을 표시하는 방법은 다음과 같습니다.

(put 'paredit-forward 'CUA 'move) 
+0

어떤 Paredit 버전을 사용하고 있습니까? 왜냐하면 여기서 Paredit 23 (마지막 안정 버전)을 사용하면''CUA'' 속성을''move''로 설정하는 것은 효과가 없습니다. 고맙습니다. – Elena

+1

지금 당장'24 (beta) '를 사용하고 있는데, Shift 자체를 다루고 있습니다. FWIW, 나는 이맥스에있다 '24.4.1'. – sabof

+0

그 차이점은 다음과 같습니다. Paredit 24 (베타)의 변경 내역 "모션 명령은 GNU Emacs 24 이상에서 시프트 선택을 지원합니다." – Elena

2

Paredit이 키를 변환하지 않습니다. 이맥스입니다. 그것은 모든 모드에서 동일합니다. C-M-F에 대한 바인딩이 없다면, Emacs는 대신 C-M-f를 시도 할 것입니다.

포인트 뒤에 S- 표현식을 선택하려면이 표준 Emacs 키는 C-M-SPC입니다.

관련 문제