2011-08-26 6 views
0

vim의 일반적인 동작은 삽입 모드의 C-o에 대해 사용자가 하나의 정상 모드 명령을 사용하고 삽입 모드로 돌아갈 수 있도록합니다. 이 comment의 제안에 따라Vimpulse에서 Ctrl-o를 사용하여 단일 표준 모드 명령을 실행 하시겠습니까?

, 나는

(vimpulse-imap "\C-o" 'viper-escape-to-vi) 

를 설정 한하지만 삽입 모드에서 C-o을 누를 때, 문자 "^ O"는 버퍼에 삽입하고 나는로 전환 할 수 없습니까 예상대로 한 명령에 대한 정상 모드. 나는 viper-escape-to-vi이 기본적으로 C-z에 바인딩되어 있음을 이해하지만이 키 조합 ("^ Z"가 버퍼에 대신 인쇄 됨)을 사용하여 일반 모드로 전환 할 수도 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

또한 두 번째 질문 : 내가 elscreen 용으로 사용하는 것처럼 viper-mode (또는 vimpulse)에 의해 바운드되지 않기를 바랍니다. C-z 만 남겨 두도록하려면 어떻게해야합니까?

편집 : 찾을 수 vimpulse - 기타 - keybindings.el 코드의이 비트 :

;; temporarily escape to vi state 
(define-key viper-insert-basic-map "\C-o" 'viper-escape-to-vi) 

그래서 이미 정의해야 하는가? 왜 작동하지 않는지 잘 모릅니다.

답변

1

광고 1) 나를 위해 작동합니다. 설정에 문제가있을 수 있습니까?

출력이 이상합니다. 얻을 수있는 유일한 방법은 따옴표 붙이 (또는 유사한)입니다.

viper-escape-to-vi 삽입 상태는 viper-toggle-key (기본값은 C-z 임)에 바인딩되어 있으므로 아래를 참조하십시오. 다시 출력이 이상합니다.

광고 2) viper-toggle-key으로 설정하고 바이퍼가로드되기 전에이를 사용자 지정해야합니다. (그것을 위해 일시 ​​중지 키를 사용) 이전에 대한

(setq viper-toggle-key [pause]) 
(require 'viper) 

당신은 vimpulse의 후속 인, evil을 시도해야합니다. 그것은 잘 따라오고 독사를 제거합니다.

거기에서 토글 키를 설정하면 (다시 일시 중지) (evil-set-toggle-key "<pause>") 거리에 있으며, sexp가 아닌 kbd 시퀀스입니다. C-o도 잘 작동합니다.

+0

'emacs -Q'로 emacs를 시작한 다음 viper 또는 vimpulse를로드해도 (vipi-toggle-key'를 선험적으로 설정), 동일한 문제가 발생합니다. git 저장소에서 만든 OS X에서 Emacs 24를 사용하고 있습니다. 아마도 이것이 문제 일 수 있습니다. 나는 악에 대해 몰랐다. 아직 성숙하지 않은 것 같지만 'C-o'는 상자에서 꺼내 사용할 수있다! – hatmatrix

+0

예, 그럴 수 있습니다. emacs-dev 메일 링리스트에 도움을 요청해야합니다. Evil은 시간적으로 성숙하지는 않지만 상당히 안정적이며 기능이 완벽합니다 (vimpulse와 비교 - 광범위한 문서 제외). –