2013-06-11 3 views
1

omnifunc와 함께 AutoComplopop을 사용하고 있습니다.어떻게 vim에서 자동 완성을 다시 매핑 할 수 있습니까?

보다는 자동 완성 자동 완성 팝업에서 선택을, 내가 + (또는 다른 조합)를 입력하고 은 평소와 같이없이 행동을 입력해야 Ctrl 키를 사용하고 싶습니다 입력합니다.

마지막 요점은 중요합니다. 캐리지 리턴을 삽입하고 자동 완성 팝업에 강조 표시된 것이 있으면 Enter를 두 번 눌러야합니다.

So : 어떻게 자동 완성 키를 재 매핑 할 수 있습니까?

답변

1

AutoComplPop 플러그인이 아무 것도하지 않는다고 생각합니다. 키를 입력하십시오. 오히려 완료 팝업이 표시 될 때 이것이 기본 동작입니다. :h popupmenu-keys 참조 :

The behavior of the <Enter> key depends on the state you are in: 
    first state:  Use the text as it is and insert a line break. 
    second state:  Insert the currently selected match. 
    third state:  Use the text as it is and insert a line break. 

그냥 기본적으로 그 AutoComplPop합니다 (이하지 않는 내장 된 완성하는) 첫 경기를 선택합니다. (나는 완전히 당신이 원하는 행동을하지 않습니다하지만)

귀하의 질문에 대답하기 :

팝업 메뉴에 대한 특별한 모드가 없습니다, 당신은 :help map-expr을 사용하고 pumvisible()와 팝업 메뉴를 확인해야합니다. (나는 종교적으로 사용하는, 예를 들어, 이동 불가능)

:inoremap <expr> <CR> pumvisible() ? '<C-e><CR>' : '<CR>' 
+0

작품의 이런 종류의,하지만 몇 가지 다른 플러그인과 호환이 아니다 예를 들어, <Enter> 중단 완성을 만들어 줄 바꿈을 삽입합니다. 그래도 최고의 답변 일 가능성이 높습니다. 왜 그것이 downvoted되었는지 잘 모르겠다. 문제를 해결하기 위해 많은 노력을 기울인 끝에 (이제 갈등으로) 방금 YouCompleteMe로 이동했습니다. –

관련 문제