विम सिंथेटिक में त्रुटि स्थान नेविगेशन


11

मुझे सिंटैस्टिक को विम में स्थापित किया गया है और यह पूरी तरह से त्रुटियों को पा रहा है (ज्यादातर पायथन कोड में मैं काम कर रहा हूं)। यदि मैं फ़ाइल में सामान्य रूप से इधर-उधर कूदता हूं तो मुझे स्थिति पट्टी में त्रुटियाँ दिखाई देती हैं जब कर्सर एक प्रासंगिक रेखा से अधिक होता है।

मैं यह पता नहीं लगा सकता कि त्रुटियों के बीच सीधे कैसे नेविगेट करें।

मैं समझता हूं कि सिंटैस्टिक त्रुटियों को विम लोकेशन सूची में लोड कर रहा है और मैं इसके साथ प्रकट हो सकता हूं :lopen, उस विंडो पर स्विच कर सकता हूं , एक लाइन चुन सकता हूं और हिट कर सकता हूं और Enterसही लाइन पर मुख्य विंडो पर ले जाया जा सकता है।

हालांकि मैं क्या करना चाहूंगा, क्या सूची खुली नहीं है, बस त्रुटियों के साथ फाइल में संपादन किया जा सकता है और अगले चेतावनी / त्रुटि को छोड़ने के लिए एक कीबोर्ड शॉर्टकट मारा।

क्या यह संभव है? डॉक्स सुझाव देते हैं :lNextऔर :lpreviousप्रासंगिक हैं, लेकिन वे मुझे प्राप्त करते हैं E553: No more items

जवाबों:


12

:lne[xt]और :lp[revious]सही शॉर्टकट हैं।

लेकिन :lN[ext]ऐसा नहीं है :lne[xt]: यह एक विकल्प है :lp[revious]

आपके द्वारा प्राप्त संदेश इस तथ्य के कारण है कि जब आप अंतिम या पहली त्रुटि तक पहुंचते हैं, तो ये कमांड नहीं लपेटते हैं।

आपके द्वारा अपने प्रश्न में सूचीबद्ध आदेश दोनों पिछली त्रुटि पर जाते हैं, लेकिन संभावना है कि आप पहले से ही पहले त्रुटि पर हैं और पहले कुछ भी नहीं है । सही कमांड का उपयोग करें, ध्यान रखें कि वे चारों ओर न लपेटें और आप अच्छे होंगे।

:h location-listआदेशों की पूरी सूची के लिए पढ़ें ।


क्या उन्हें लपेटने के लिए एक रास्ता है?
बॉलपॉइंटबैन

नहीं, उन्हें लपेटने के लिए कोई रास्ता नहीं है। इस थ्रेड में विभिन्न आवरण-आधारित समाधान हैं और प्लगइन्स के रूप में अधिक, हालांकि। मेरा अपना प्लगइन vim-QF है उन । कार्यान्वयन यहाँ है यदि आप एक युगल मैपिंग के लिए एक पूर्ण प्लगइन नहीं चाहते हैं।
रोमेल

6

यदि सूची में केवल एक समस्या है, तो :llउस पर नेविगेट करेंगे।

यहाँ आपके .vimrc के लिए एक फिक्स है जो केवल एक इश्यू (इसे जंप करके) के मामले में सही तरीके से मैप :lnextऔर :lprevकाम करेगा । अपने पसंदीदा कुंजी अनुक्रम के अंत में nmappings बदलें।

( https://github.com/scrooloose/syntastic/issues/32 से )

" Fix syntastic error jumping
function! <SID>LocationPrevious()
  try
    lprev
  catch /^Vim\%((\a\+)\)\=:E553/
    llast
  endtry
endfunction

function! <SID>LocationNext()
  try
    lnext
  catch /^Vim\%((\a\+)\)\=:E553/
    lfirst
  endtry
endfunction

nnoremap <silent> <Plug>LocationPrevious    :<C-u>exe 'call <SID>LocationPrevious()'<CR>
nnoremap <silent> <Plug>LocationNext        :<C-u>exe 'call <SID>LocationNext()'<CR>
nmap <silent> e[  <Plug>LocationPrevious
nmap <silent> e]  <Plug>LocationNext

यह बदसूरत है यदि स्थान सूची से पहले निष्पादित किया गया है, या बिना किसी त्रुटि के जनसंख्या के बाद। एक फिक्स के लिए मेरा जवाब देखें ।
टॉम हेल

4

चूंकि :lnextआदि टाइप करने के लिए थकाऊ हैं (आप आमतौर पर उन पर जल्दी से पुनरावृति करना चाहते हैं, unimpaired.vim - आसान ब्रैकेट मैपिंग प्लग के जोड़े दूसरों के बीच) छोटे ]lमैपिंग प्रदान करता है ।


1

30 अक्टूबर 2017 को लिखित

मैं vim-unimpaired प्लगइन स्थापित करने की सलाह दूंगा

यह भी आम तौर पर विम सूची पर एक महान संदर्भ है

सिंथेटिक locationsसूची का उपयोग करता है । नीचे दिए गए कमांड (तारांकन के साथ चिह्नित मैपिंग unimpaired.vimऊपर उल्लिखित प्लगइन से आते हैं)।

यहाँ छवि विवरण दर्ज करें


0

पहली से आखिरी त्रुटि वाले स्थान (और इसके विपरीत) के आसपास रैप की अनुमति दें:

" Allow :lprev to work with empty location list, or at first location
function! <SID>LocationPrevious()
  try
    lprev
  catch /:E553:/
    lfirst
  catch /:E\%(42\|776\):/
    echo "Location list empty"
  catch /.*/
    echo v:exception
  endtry
endfunction

" Allow :lnext to work with empty location list, or at last location
function! <SID>LocationNext()
  try
    lnext
  catch /:E553:/
    lfirst
  catch /:E\%(42\|776\):/
    echo "Location list empty"
  catch /.*/
    echo v:exception
  endtry
endfunction

यह निम्नलिखित त्रुटियों को पकड़ता है:

E42: No Errors
E776: No location list

और नम्रता से कहता है: Location list empty

(श्रेय lcd074 )


वास्तव में, एक कम दोहरावदार समाधान है, लेकिन यह `गूंज" स्थान सूची खाली "" के साथ कर सकता है।
टॉम हेल

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