vim이 새로운 줄 앞에 주석을 남기지 않게하려면 어떻게해야합니까?


50

.vimrc파일을 편집 하고 있으며 주석을 포함하고 있습니다. 이와 같은 의견이있을 때 :

" example comment

그런 다음 주석을 마친 후 줄 끝에서 Enter 키를 누르면 다음 줄이 자동으로 주석으로 설정됩니다 (따옴표가 자동으로 삽입 됨).

" example comment
" 

이 동작을 어떻게 막을 수 있습니까?

답변:


66

이것은 formatoptions설정 으로 제어됩니다 . 부터 :help fo-table:

'formatoptions'옵션을 사용하여 Vim이 텍스트를 형식화하는 방법에 영향을 줄 수 있습니다 . 'formatoptions'아래 문자를 포함 할 수있는 문자열입니다. 기본 설정은 tcq입니다. 가독성을 위해 옵션 문자를 쉼표로 구분할 수 있습니다.

많은 파일 유형이 파일 유형에 가장 적합한 형식 옵션을 변경하기 때문에 "기본값"에 대한 설명은 다소 오해의 소지가 있습니다. 예를 들어 /usr/share/vim/vim74/ftplugin/vim.vim:

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql

당신은 현재 formatoptions를 볼 수 있습니다 :

:set fo?
  formatoptions=jcroql

그리고 그들이 어디에 설정되어 있는지 확인하십시오 :

:verbose set fo?
  formatoptions=jcroql
      Last set from /usr/share/vim/vim74/ftplugin/vim.vim

이 경우 r플래그 를 제거하고 아마도 co플래그 도 제거하려고합니다 .

r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.

다음과 같이 할 수 있습니다 :

:set formatoptions-=r formatoptions-=c formatoptions-=o

사용 :set formatoptions-=cro은 예상대로 작동하지 않습니다 (문자열이기 때문에 cro종종 작동하지 않는 순서대로 문자열을 찾습니다 ).

현재 버퍼에 대해서만 변경 사항을 설정하려면 :setlocal대신을 사용하십시오 :set. 이 옵션 을 항상 사용하려면 autocmdvimrc에서 를 사용하는 것이 가장 좋습니다 . 예를 들면 다음과 같습니다.

au FileType vim setlocal fo-=c fo-=r fo-=o

이 옵션 은 'vim'파일 형식에 대해서만 옵션을 설정하며 다른 파일 형식에는 영향을주지 않습니다.

당신이 할 경우 항상 으로 설정, 사용

au FileType * set fo-=c fo-=r fo-=o

set fo-=cro많은 파일 유형이 설정 / 확장 되었기 때문에 사용 이 작동하지 않습니다 formatoption(위 그림 참조). FileType autocmd는 파일 형식 파일이로드 된 후에 실행 됩니다.


1
확인했습니다. 또한 여기에 답변되어 있습니다 : stackoverflow.com/questions/16030639/vim-formatoptions- 또는
Melon

1
au FileType * set fo-=o.vimrc에 추가 하지 못했습니다. o주석 처리 된 줄을 눌러도 여전히 주석 처리됩니다.
Ixx

이것은 오랫동안 나를 괴롭 혔습니다. 기본적 formatoptions으로 내 txt 파일을 래핑했습니다. 나는 주위에 내 머리를 파괴했다 textwidthwrapmargin하지만 아무것도 작동하지 않습니다. 심지어 내 vim을 8.1에서 8.0으로 다운 그레이드 버그라고 생각했습니다. 이것은 내 문제를 해결했습니다. 감사합니다.
anishjp

1

이것을 vimrc에 추가하십시오 :

au BufEnter * set fo-=c fo-=r fo-=o

FileType다른 플러그인이 설정되었으므로 사용 이 작동하지 않습니다 formatoption.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.