Vim에서 다음 줄에 주석 계속을 비활성화 할 수 있습니까?


63

Vim에서 코드 파일에 주석을 입력하고을 누르면 Enter자동으로 줄 바꿈도 주석이됩니다.

예를 들어, Ruby 파일에서 :

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

일반적으로 이것은 내가 원하는 것이지만 항상 그런 것은 아닙니다. 이 자동 주석 동작을 일시적으로 해제하려면 어떻게해야합니까?


일시적으로, 한 번만 수행하는 명령을 원하거나 다시 켤 때까지 몇 가지 명령에 대해 지속되는 옵션을 설정 하시겠습니까? 가능한 사이트 간 중복 : stackoverflow.com/questions/4896003/...
치로 틸리新疆改造中心996ICU六四事件

답변:


86

당신이 찾고 있다고 생각합니다

:set formatoptions-=cro

보낸 사람 :help fo-table:

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

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

12
정말 고맙습니다! 이 행동은 나를 귀찮게했다. 나는 유닉스 vi에서 리눅스 vim으로왔다. Google 직원의 경우 : 영구적으로 사용하려면 stackoverflow.com/questions/6076592/…를 참조 하고이 행을 / etc / vimrc에 입력하십시오.autocmd BufNewFile,BufRead * setlocal formatoptions-=cro
bgStack15

도움이되지 않았다; 입력하면 /**<ESC>o여전히 다음 줄에 별표가 추가 됩니다 .
Qix

8

'붙여 넣기'옵션을 임시로 설정하면 원하는 작업을 수행 할 수 있지만 다른 Vim 기능도 많이 비활성화됩니다.

:set paste켜거나 끌 때 사용하십시오 :set nopaste. 또는 :set paste!전환하는 데 사용할 수 있습니다.

참조 :

:help 'paste'
:help 'pastetoggle'

이러한 명령은 작은 따옴표로 입력됩니다.


4
:set paste전원을 켜하고 :set nopaste그것을 해제
사용자

2
또는 당신은 사용할 수 있습니다 :set paste!그것은 TRUE 및 FALSE 전환
펠리페 알바레즈

3

로 형식화되지 않은 일반 줄 바꿈을 입력 <CR>합니다.

주석 처리 된 블록에 다음 줄을 계속 입력하려면 O평소와 같이 키를 사용하십시오 .

이 시도:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>

1
무슨 뜻 <CR>인가요? 특별한 열쇠?
Peter Mortensen

1
CR은 캐리지 리턴을 나타냅니다. 내가 사용한 컴퓨터에서 Enter 키에 매핑되었습니다.
Sebastian Jylanki

0

나는 이것으로 끝났다.

nnoremap <Leader>o o<Esc>^Da
nnoremap <Leader>O O<Esc>^Da

새 행을 추가하고 거기에 이미 삽입 된 모든 항목을 삭제하며 형식 옵션을 망칠 필요없이 들여 쓰기 된 열에 커서를 삽입 모드로 둡니다.


0

이 답변은 데비안 과 그 파생어 중 일부에 적용됩니다 .

데비안 배포판에서 Vim의 기본값은 불합리합니다. 그것들은 /usr/share/vim/vim80/defaults.vim(!) /etc/vim/vimrc가 실행 된 후에 위치하고 적용됩니다 . Vim에 기본값을 사용하지 않도록 지시하는 유일한 방법 ~/.vimrc은 비어있는 경우에도 존재 하는지 확인 하는 것입니다. 시작시 Vim은에서 읽기를 시도 .vimrc하지만 파일을 찾을 수 없으면 기본값이 적용되어 마우스 통합, 복사-붙여 넣기 쿼크, 주석 자동 랩핑 등과 같은 원하지 않는 동작이 많이 발생합니다.

데비안에서는 간단히 실행하여 모든 것을 고칠 수 있습니다 touch ~/.vimrc

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