Yorumların devam etmesini Vim'deki bir sonraki satıra devre dışı bırakabilir miyim?


65

Vim'de, bir kod dosyasına Enterbir yorum yazarsam ve ben vurursam , yeni satırı da otomatik olarak bir yorum yapar.

Örneğin, bir Ruby dosyasında:

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

Genelde istediğim bu ama her zaman değil. Bu otomatik yorumlama davranışını geçici olarak nasıl kapatabilirim?


Geçici olarak, tek seferlik yapan bir komut mu istiyorsunuz, yoksa tekrar açana kadar birkaç komut için devam edecek bir seçenek belirleyin mi? Olası çapraz site kopyası: stackoverflow.com/questions/4896003/…
Ciro Santilli,

Yanıtlar:


86

Sanırım aradığın

:set formatoptions-=cro

Kimden :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.
...

13
Çok teşekkür ederim! Bu davranış beni rahatsız ediyordu. Unix vi'den Linux vim'e geldim. Google çalışanları için: Sürekli kullanım için ayrıca stackoverflow.com/questions/6076592/… adresine de bakın ve bu satırı / etc / autocmd BufNewFile,BufRead * setlocal formatoptions-=cro
vimrc

Yardım etmedi; yazmak /**<ESC>ohala bir sonraki satıra bir yıldız ekler.
Qix

Çalışmıyor Z
felwithe

8

'Yapıştır' seçeneğini geçici olarak ayarlamak istediğiniz şeyi yapabilir, ancak diğer birçok Vim özelliğini de devre dışı bırakır:

:set pasteAçmak ve kapatmak için kullanın :set nopaste. Alternatif olarak, :set paste!onu değiştirmek için kullanabilirsiniz .

Ayrıca bakınız:

:help 'paste'
:help 'pastetoggle'

(Bu komutlar tek tırnak işaretleri ile yazılmıştır.)


4
:set pasteaçmak ve :set nopastekapatmak için
Kullanıcı

2
alternatif olarak :set paste!DOĞRU ve YANLIŞ arasında geçiş yapmak için kullanabilirsiniz
Felipe Alvarez

3

Biçimlendirilmemiş düz yeni satırlara giriyorum <CR>.

Yorumlanan bloğa bir sonraki satırı yazmaya devam etmek istediğimde Oanahtarı her zamanki gibi kullanıyorum.

Bunu dene:

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

1
Ne demek istiyorsun <CR>? Belirli bir anahtar?
Peter Mortensen

1
CR, taşıma dönüşü anlamına gelir. Kullandığım bilgisayarlarda, Enter tuşuna eşleştirildi.
Sebastian Jylanki,

0

Ben bu sona erdi:

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

Yeni bir çizgi ekler, önceden eklenmiş olan her şeyi siler ve imleci biçim seçenekleriyle uğraşmadan girintili sütunda ekleme modunda bırakır.


0

Bu cevap Debian ve onun türevlerinden bazıları için geçerlidir .

Bir Debian dağıtımında Vim varsayılanları makul değildir. /usr/share/vim/vim80/defaults.vim(!) /etc/vim/vimrcÇalıştırıldıktan sonra yerleştirilir ve uygulanır . Vim'e varsayılanlarını kullanmamasını söylemenin tek yolu ~/.vimrc, boş olsa bile var olmasını sağlamaktır . Başlangıçtaki Vim okumayı deniyor .vimrc, ancak dosya bulunmazsa, fare entegrasyonu, kopyala-yapıştır tutamakları, yorum otomatik sarma, vb.

Debian'da TÜM olanları sadece çalıştırarak düzeltebilirsiniz. touch ~/.vimrc

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.