확장 탭이 설정되면 삽입 모드에서 탭 삽입


12

파일 에서 여러 문자 로 변환 하도록 설정 expandtab했습니다 . 그러나 일부 파일 (예 : Makefile)에는 실제로 삽입 된 문자 가 필요합니다 ..vimrctabspacetab

tab입력 하는 동안 삽입을 강제하는 쉬운 방법이 있습니까?

답변:


27

을 누르는 대신 먼저을 Tab누른 Ctrl-V다음을 누릅니다 Tab.

다양한 특수 문자를 삽입하는 데 사용할 수 있습니다. 자세한 내용 :help i_CTRL-V을 참조하십시오.

Ctrl-V또한 명령 줄 모드 ( :help c-CTRL-V) 및 일부 다른 프로그램 에서도 작동합니다 . (예 : bash, mutt)

이 경우 Ctrl-V다른 것으로 매핑, 시도 Ctrl-Q. 이는 Vim에서와 동일한 효과를 Ctrl-V갖지만 일부 터미널은 제어 흐름에이를 사용하므로 Vim에서는이를 볼 수 없습니다.


5
또는 <c-v>009탭 키 또는 하드 코어 ASCII 순수 주의자가 깨진 경우 :-)
Martin Tournoij

17

행동을 바꾸는 대신 (오류가 발생하기 쉽다).
이 파일 형식에 대해 vim을 다르게 작동하도록 설정했습니다.

일반적인 편집에서는 탭을 확장합니다. 그러나 특히 make파일의 경우 noexpandtab탭이 유지되도록 설정했습니다 .

~ / .vimrc 파일에 다음을 추가하십시오.

" Normal action
set expandtab

if has("autocmd")

    " If the filetype is Makefile then we need to use tabs
    " So do not expand tabs into space.
    autocmd FileType make   set noexpandtab

endif

3
나는 그의 질문에 대답했지만, 당신은 실제로 근본적인 문제가 내가했던 것보다 더 나은 것을 알아 냈습니다. 잘 했어.
Rich

나는 두 대답 모두 가치가 있다고 생각합니다. 때로는 원격 위치에 로그인하여 vim 구성을 망설이지 않고 신속하게 Makefile을 편집하려고하기 때문입니다.
Daniel Schmitz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.