मार्कडाउन में लिंक मिड-टैग को तोड़ने से विम को रोकें


16

मान लीजिए कि मेरे पास यह मार्कडाउन फाइल है:

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

अच्छे दिख रहे हो। लेकिन लिंक इसे पूरा नहीं करता है, इसलिए मैं टाइप करता हूं -long, और अब विम लाइन को तोड़ता है:

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

मेरी textwidth=80सेटिंग के कारण ... लिंक को टैग करते समय मध्य-टैग तकनीकी रूप से मान्य मार्कडाउन है, यह बहुत भद्दा दिखता है IMHO; अच्छी दिखने वाली सोर्स फाइल्स का होना मार्कडाउन की तरह है।

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)

क्या कोई तरीका है जिससे मैं विम या मार्कडाउन सिंटैक्स को इस तरह लिंक न तोड़ने के लिए कह सकूँ?

  • हो सकता है कि (से पूरे लिंक का इलाज [करने के लिए )एक शब्द के रूप में)।
  • मुझे [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

ध्यान दें, आप '^.*\[.*\](.*)$'regex को बदलना चाह सकते हैं । वर्तमान में यदि लिंक के बाद कोई पाठ है, तो लाइन आपके उदाहरण के अनुसार टूट सकती है। हालांकि, अगर रेगेक्स अंदर कहीं भी लिंक के साथ लाइनों से मेल खाएगा, तो एक और समस्या दिखाई दे सकती है:

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,और मैन्युअल रूप से जोड़ा जाना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.