Vim'in markdown'daki etiketin ortasında bağlantıları kesmesini önleyin


16

Diyelim ki bu Markdown dosyasına sahibim:

[Lorem ipsum dolor sit ](http://vi.stackexchange.com/many-links-are-often-very)

Güzel görünüyorsun. Ama bağlantı bitmedi, bu yüzden yazıyorum -longve şimdi Vim çizgiyi kırıyor:

[Lorem ipsum dolor sit
](http://vi.stackexchange.com/many-links-are-often-very-long)

Benim textwidth=80ayarım yüzünden ... Bir bağlantıyı koparmak orta etiket teknik olarak geçerli bir işaretleme olsa da, çok çirkin görünüyor IMHO; güzel görünümlü kaynak dosyalara sahip olmak bir nevi markdown noktasıdır.

İle gqsorun genellikle daha kötü:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.
Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec
[Lorem ipsum dolor sit](http://vi.stackexchange.com/many-links-are-often-very-very-long)

Bu olur:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus.
Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec [Lorem
ipsum dolor
sit](http://vi.stackexchange.com/many-links-are-often-very-very-long)

Vim'e veya markdown sözdizimine bağlantıları bu şekilde kesmemesini söyleyebileceğim herhangi bir yol var mı?

  • Belki (tamamını linki davranarak [için )tek bir kelime olarak).
  • [this][type]Markdown link ile aynı problemim var .

Yanıtlar:


9

Geçmişte işlev imzalarıyla ilgili benzer bir sorunum vardı. İşte sorununuza uyarlanmış çözüm. Şuraya ekle .vimrc:

au CursorMovedI *.md call ModifyTextWidth() " Use only within *.md files

function! ModifyTextWidth()
    if getline(".")=~'^.*\[.*\](.*)$' " If the line ends with Markdown link - set big value for textwidth
        setlocal textwidth=500
    else
        setlocal textwidth=80 " Otherwise use normal textwidth
    endif
endfunction

Not, '^.*\[.*\](.*)$'normal ifadeyi değiştirmek isteyebilirsiniz . Şu anda bağlantıdan sonra herhangi bir metin varsa, satır örneğin örneğinde olduğu gibi kesilebilir. Ancak, normal ifade, içerideki herhangi bir yerdeki bağlantılarla çizgileri eşleştirirse, başka bir sorun ortaya çıkabilir:

Some info [here](https://www.google.com). Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris

Bu örnekte satır sonu sonra amet,eklenmez ve manuel olarak eklenmelidir.

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.