때로는 Enter 키를 사용하여 제안을 선택하면 (Ctrl-N을 눌렀을 때 나타나는 완료 팝업에서) Vim이 줄 바꿈을 삽입하고 커서가 다음 줄로 이동합니다. 항상 그런 것은 아닙니다. Vim이 그것에 대해 현명 해 지려고 생각하고 이것이 내가 원하는 것이라고 생각하면 다음 줄로 나아갈 것입니다.
그러나이 동작을 비활성화하려면 (항상 똑똑하지 않기 때문에) Enter 키를 수동으로 눌러 항상 다음 줄로 이동해야합니다. 이것이 가능한가?
때로는 Enter 키를 사용하여 제안을 선택하면 (Ctrl-N을 눌렀을 때 나타나는 완료 팝업에서) Vim이 줄 바꿈을 삽입하고 커서가 다음 줄로 이동합니다. 항상 그런 것은 아닙니다. Vim이 그것에 대해 현명 해 지려고 생각하고 이것이 내가 원하는 것이라고 생각하면 다음 줄로 나아갈 것입니다.
그러나이 동작을 비활성화하려면 (항상 똑똑하지 않기 때문에) Enter 키를 수동으로 눌러 항상 다음 줄로 이동해야합니다. 이것이 가능한가?
답변:
삽입 완료를 사용하는 동안 <Enter> 키를 입력하면 Vim이 수행하는 작업은 완료 메뉴의 상태에 따라 다릅니다. 메뉴의 동작은 다음과 같습니다.
:help ins-completion-menu
삽입 완료 사용시 다양한 키의 동작은 다음 섹션에서 설명합니다.
:help popupmenu-keys
여기서 <Enter> 키의 동작은 메뉴 상태에 따라 다릅니다. 이해할 수 있듯이 <Enter>를 입력하면 커서 키를 사용하여 메뉴에서 일치 항목을 선택한 경우를 제외하고 줄 바꿈이 삽입됩니다.
원하지 않는 경우 개행을 삽입하지 않는 가장 좋은 방법은 Ctrl-Y 또는 Ctrl-E와 같은 다른 키를 사용하여 종료하거나 선택하는 것입니다.
또한보십시오
:help complete_CTRL-Y
삽입 모드가 완료되면 전체 설명에 대해
:help ins-completion
이 매핑을 .vimrc 파일에 추가 할 수 있습니다.
inoremap <expr> <CR> pumvisible() ? "\<C-Y>" : "\<CR>"
팝업 메뉴가 표시되면 삽입 모드의 리턴 키를 CTRL-Y 입력에 맵핑합니다. CTRL-Y는 새로운 줄을 입력하지 않고 메뉴에서 현재 선택된 항목을 선택합니다. 그렇지 않으면 리턴 키가 정상적으로 작동합니다.