ভিম সিনটাস্টিক এ ত্রুটির অবস্থান নেভিগেশন


11

আমি ভিমে সিন্টাস্টিক ইনস্টল করেছি এবং এটি পুরোপুরি ত্রুটিগুলি খুঁজে পাচ্ছে (বেশিরভাগ পাইথন কোডে আমি কাজ করছি)। যদি কার্সারটি কোনও প্রাসঙ্গিক লাইনের ওপরে থাকে তবে আমি যদি ফাইলে সাধারণত ঘুরে দেখি তবে স্ট্যাটাস বারের ত্রুটিগুলি দেখতে পাচ্ছি।

আমি বুঝতে পারছি না যে ত্রুটিগুলির মধ্যে সরাসরি কীভাবে নেভিগেট করা যায়।

আমি বুঝতে পারি যে সিনটাস্টিক ত্রুটিগুলি একটি ভিএম অবস্থানের তালিকায় লোড করছে এবং আমি এটি দিয়ে উপস্থিত হতে পারি :lopen, সেই উইন্ডোটিতে স্যুইচ করতে, একটি লাইন চয়ন Enterকরতে এবং হিট করে ডান লাইনের মূল উইন্ডোতে নিয়ে যাওয়া যায়।

আমি যা করতে চাই তা হল, তালিকাটি খোলা নেই, কেবল ত্রুটি সহ ফাইলটিতে সম্পাদনা করা হবে এবং পরবর্তী সতর্কতা / ত্রুটি যেখানেই হোক না কেন সেখানে যেতে একটি কীবোর্ড শর্টকাট হিট করুন।

এটা কি সম্ভব? দস্তাবেজগুলি এটিকে প্রস্তাব দেয় :lNextএবং :lpreviousপ্রাসঙ্গিক হয় তবে তারা আমাকে পায় E553: No more items

উত্তর:


12

:lne[xt]এবং :lp[revious]সঠিক শর্টকাটগুলি।

তবে এর :lN[ext]মতো নয় :lne[xt]: এটি বিকল্প :lp[revious]

আপনি যে বার্তাটি পেয়েছেন তা হ'ল এই কারণটি যখন আপনি শেষ বা প্রথম ত্রুটিতে পৌঁছান তখন এই কমান্ডটি মোড়ানো হয় না।

আপনার প্রশ্নে তালিকাভুক্ত কমান্ডগুলি উভয়ই পূর্ববর্তী ত্রুটিতে চলে যায় তবে সম্ভাবনা হ'ল আপনি ইতিমধ্যে প্রথম ত্রুটিতে রয়েছেন এবং এর আগে কিছুই নেই । সঠিক কমান্ডগুলি ব্যবহার করুন, মনে রাখবেন যে তারা চারপাশে মোড়ানো নয় এবং আপনি ভাল হবেন।

:h location-listকমান্ডের একটি সম্পূর্ণ তালিকা জন্য পড়ুন ।


এগুলি গুটিয়ে ফেলার কোনও উপায় আছে কি?
বলপয়েন্টবেন

না, এগুলি মোড়ানো করার কোনও উপায় নেই। যদিও এই থ্রেডে বিভিন্ন মোড়ক-ভিত্তিক সমাধান রয়েছে এবং প্লাগইন আকারে আরও রয়েছে। আমার নিজের প্লাগইন তেজ-জনপ্রিয় হয়েছে সেই । আপনি যদি কেবল কয়েকটি ম্যাপিংয়ের জন্য একটি পূর্ণ-প্লাগইন না চান তবে বাস্তবায়নটি এখানে রয়েছে
রোমেনেল

6

তালিকায় যদি কেবলমাত্র একটি সমস্যা থাকে তবে :llতা এতে নেভিগেট করবে।

এখানে আপনার .vimrc জন্য একটি ফিক্স যে কী করতে হবে ম্যাপ এর :lnextএবং :lprev(এটি জাম্পিং দ্বারা) শুধুমাত্র এক ইস্যু ক্ষেত্রে সঠিকভাবে হবে। আপনার পছন্দসই মূল ক্রমের শেষে ন্যামপিংগুলি পরিবর্তন করুন।

( 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ইত্যাদি টাইপ করতে ক্লান্তিকর (আপনি সাধারণত তাদের উপর দ্রুত পুনরাবৃত্তি করতে চান, আনপেইমারড.ভিম - হ্যান্ডি ব্র্যাকেট ম্যাপিংস প্লাগইনের জোড়গুলি সংক্ষিপ্ত ]lম্যাপিং সরবরাহ করে।


1

30 অক্টোবর 2017 লিখেছেন

আমি ভিআইএম-অবিবাহিত প্লাগইন ইনস্টল করার পরামর্শ দেব

এটি আরও সাধারণভাবে ভিএম তালিকার একটি দুর্দান্ত রেফারেন্স

সিনটাস্টিক 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 )


আসলে, এর চেয়ে কম পুনরাবৃত্তি সমাধান রয়েছে তবে এটি `প্রতিধ্বনি" অবস্থানের তালিকা খালি "with দিয়ে করতে পারে`
টম হেল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.