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


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.