Verhindert, dass Vim Links während des Markdowns aufbricht


16

Angenommen, ich habe diese Markdown-Datei:

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

Gut aussehend. Aber der Link ist noch nicht fertig, also -longtippe ich und jetzt bricht Vim die Zeile:

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

Wegen meiner textwidth=80Einstellung ... Während das Unterbrechen eines Link-Mid-Tags ein technisch gültiger Abschlag ist, sieht es meiner Meinung nach sehr unansehnlich aus. gut aussehende Quelldateien zu haben, ist eine Art Abschlagpunkt.

Mit gqdem Problem ist oft noch schlimmer:

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)

Wird dies:

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)

Kann ich Vim oder der Markdown-Syntax mitteilen, dass Links auf diese Weise nicht unterbrochen werden sollen?

  • Vielleicht, indem Sie den gesamten Link (von [bis )) als ein einzelnes Wort behandeln.
  • Ich habe das gleiche Problem mit dem [this][type]Markdown-Link.

Antworten:


9

In der Vergangenheit hatte ich ähnliche Probleme mit Funktionssignaturen. Hier finden Sie eine Lösung, die an Ihr Problem angepasst ist. Hinzufügen zu .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

Beachten Sie, dass Sie möglicherweise den '^.*\[.*\](.*)$'regulären Ausdruck ändern möchten . Befindet sich nach dem Link ein Text, ist die Zeile möglicherweise wie in Ihrem Beispiel unterbrochen. Wenn der reguläre Ausdruck jedoch Zeilen mit Verknüpfungen in einem beliebigen Bereich abgleichen würde, kann ein anderes Problem auftreten:

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

In diesem Beispiel wird kein Zeilenumbruch nach eingefügt amet,und sollte manuell hinzugefügt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.