Vimがマークダウンでタグの中間タグを分割しないようにする


16

このMarkdownファイルがあるとしましょう:

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

いい感じ。しかし、リンクは完成していないので-long、と入力すると、Vimは次の行を中断します。

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

私のtextwidth=80設定のために...リンクの中間タグを壊すことは技術的に有効なマークダウンですが、見た目は非常に見苦しいです。見栄えの良いソースファイルを持つことは、マークダウンのポイントのようなものです。

gq問題は、多くの場合、さらに悪くなります。

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)

これになります:

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またはマークダウン構文に指示できる方法はありますか?

  • たぶん(からのリンク全体で処理することにより[までを)一つの単語として)。
  • 私は[this][type]マークダウンリンクの同じ問題を抱えています。

回答:


9

過去に、関数のシグネチャに同様の問題がありました。ここにあなたの問題に適応した解決策があります。に追加.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

注、'^.*\[.*\](.*)$'正規表現を変更することもできます。現在、リンクの後にテキストがある場合、例のように行が壊れている可能性があります。ただし、正規表現が内部のどこかのリンクを持つ行と一致する場合、別の問題が発生する可能性があります。

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

この例では、改行は後に挿入されamet,ないため、手動で追加する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.