Yorum satırlarını yeni satırların önüne koymaktan nasıl vazgeçebilirim?


50

Dosyamı düzenliyorum .vimrcve yorumları ekliyorum. Böyle bir yorumum olduğunda:

" example comment

Daha sonra satırı bitirdikten sonra satırın sonunda enter tuşuna basın, bir sonraki satır otomatik olarak bir yorum olarak ayarlanır (tırnak işaretleri otomatik olarak eklenir):

" example comment
" 

Bu davranışı nasıl durdurabilirim?

Yanıtlar:


66

Bu formatoptionsayar ile kontrol edilir ; from :help fo-table:

'formatoptions'Vim'in metni nasıl biçimlendirdiğini etkilemek için bu seçeneği kullanabilirsiniz . 'formatoptions'aşağıdaki harflerden herhangi birini içerebilen bir dizedir. Varsayılan ayar tcq. Okunabilirlik için seçenek harflerini virgülle ayırabilirsiniz.

"Varsayılanlar" ile ilgili ifadenin biraz yanıltıcı olduğunu unutmayın, çünkü birçok dosya tipi formatoptions'ı dosya türüne en iyi uyacak şekilde değiştirir; örneğin /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

Akımı formatoptionsşununla görüntüleyebilirsiniz:

:set fo?
  formatoptions=jcroql

Ve nerede olduklarını gördüklerine bakın:

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

Bu durumda, rbayrağı kaldırmak isteyebilirsiniz , ancak belki de cve obayrakları:

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.

Bu böyle yapılabilir:

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

Kullanmanın :set formatoptions-=crobeklendiği gibi çalışmayacağına dikkat edin (bir dize olduğundan, crogenellikle işe yaramayacak şekilde bu dizeyi arar .).

Değişiklikleri yalnızca geçerli arabellekte ayarlamak için :setlocalyerine kullanın :set. Her zaman bu seçeneklere sahip olmak istiyorsanız autocmd, vimrc'nizde bir tane kullanmak en iyisidir ; Örneğin:

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

Bu, yalnızca 'vim' dosya tipi için seçenekleri ayarlayacak ve diğer dosya tiplerine müdahale etmeyecektir.

Her zaman ayarlamak istiyorsanız, şunu kullanın:

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

Sadece kullanmak set fo-=cro, pek çok dosyaya ayarlanmış / genişletilmiş olduğundan işe yaramaz formatoption(yukarıda gösterildiği gibi); FileType autocmd, dosya tipi dosyalar yüklendikten sonra yürütülür .


1
Onaylanmış. Ayrıca, burada cevaplandı: stackoverflow.com/questions/16030639/vim-formatoptions-or
Melon

1
au FileType * set fo-=oBenim .vimrc ekleyerek işe yaramadı. Ben basın obir yorumladı çizgide ve hala da bunu yorumlar.
Ixx

Bu beni uzun zamandır rahatsız ediyor. Varsayılan formatoptions, txt dosyamı kaydırıyordu. Etrafa başım dönüyordu textwidthve wrapmarginbaşka bir şey çalıştı. Bir böcek olduğunu düşünerek bile pimimi 8.1'den 8.0'a indirdim. Bu sorunumu çözdü, teşekkürler.
anishjp

1

Bunu vimrc'nize ekleyin:

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

Kullanımı FileTypediğer eklentileri set yana çalışmaz formatoption.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.