2010-02-13 2 views
2

나는 이맥스에 자동 완성 elisp를 사용하고있다. 현재 M-TAB을 눌러서 사용하고 있지만 4 자 후에 자동 완성되기를 바랍니다.Emacs에서 자동 완성을 얻고 버튼을 누를 때 자동 완성을 얻는 방법

자동 완성을위한 소스로 yasnippet을 사용합니다. 그래서 4 문자 뒤에 자동 완성되도록 설정하면 if, for, inc, main과 같은 완료를 표시하지 않습니다.

자동 완료를 시작하도록 설정하면 입력 한대로 변경됩니다.

내가 바인딩하고 4 자 후 자동 완성을 시작 말할 키를 설정하면 키 - 바인딩을 무시하고 때가 완료 될 때까지 내가 좋아하는 것

(setq ac-auto-start 4) 
(define-key ac-mode-map (kbd "M-TAB") 'auto-complete) 

완료 시작되지 않습니다 M-TAB을 누르거나 4자를 누릅니다.

편집

: 나는 나는 또한 그것은 여전히 ​​작동하지 않았다

(global-auto-complete-mode t) 

(setq ac-auto-start 4) 
(global-set-key (kbd "M-TAB") 'ac-start) 

을 시도했다. M-TAB을 누르면 미니 버퍼에서 "아무 것도 완료되지 않음"이 표시됩니다.

답변

1

"ac-mode-map"은 자동 완성 팝업이 표시 될 때만 정의되므로 위의 "정의 키"가 작동하지 않습니다. 어쩌면 "global-set-key"를 대신 사용하십시오.

또한 자동 채우기가 아닌 "ac-start"에 바인딩해야한다고 생각합니다.

요약하면, 다음을 시도하십시오

(setq ac-auto-start 4) 
(global-set-key (kbd "M-TAB") 'ac-start) 
+0

나는 그게 사실이라고 생각하지 않습니다. 'ac-complete-mode-map'은 팝업이 보여 질 때만 사용할 수있는지도입니다. 'ac-mode-map'은 자동 완성 모드를 활성화했을 때 사용할 수있는 맵입니다. 이 기능을 활성화하면 질문에 작성한 코드가 제대로 작동합니다. '(global-auto-complete-mode t) ' – pheaver

+0

다시 정정되었습니다. 모드 맵. 왜 우리 제안 중 어느 것도 유해물에 효과가없는 이유는 알 수 없습니다. – sanityinc

+0

이 방법이 저에게 맞는지 확인합니다. –

관련 문제