বিবটেক্স ফাইলগুলিতে ভীম কীভাবে অনুগ্রহ করে কমাতে সহায়তা করতে পারে?


11

আমি বেশ কয়েকটি বিবিটেক্স ফাইল সম্পাদনা করি এবং আমি নিয়মিতভাবে চলমান কমাগুলি ভুলে যাই:

উদাহরণ স্বরূপ:

@Book{cooke2015british,
 author = {Cooke, Lez},
 title = {British Television Drama},
 publisher = {Palgrave on behalf of the British Film Institute},
 year = {2015},
 keywords = {about}
 address = {London},
 isbn = {978-1844576234}
 }

আপনি দেখতে পাবেন যে আমি পরে কমা যোগ করতে ভুলে গেছি keywords = {about}, যার অর্থ হ'ল আমাকে ডিবাগিংয়ে সময় ব্যয় করতে হবে। ভিম কি আমাকে মনে করিয়ে দিতে পারে এমন কোন উপায় আছে? যাইহোক, আমি bib_autocomp.vim প্লাগইন ...


এমন নয় যে আমি জানি, কিন্তু আপনি এটি ঠিক করার ভালো কিছু চেষ্টা করে দেখতে পারেন: :%s/[^ ,]\zs\ze\n\s*[^ }]/,/।
— সাতো ক্যাটসুর

উত্তর:


6

দ্রুত এবং নোংরা সমাধান:

:match Error /^\s\+.*,\@<!\ze\n\s\+\w/

আপনি একই প্যাটার্নটি ব্যবহার করে বিবিটেক্স ফাইলগুলির জন্য একটি বিশেষ সিনট্যাক্স তৈরি করতে পারেন।

ব্যবহৃত নিয়মিত অভিব্যক্তি সম্পর্কে কিছু ব্যাখ্যা:

  1. ^\s\+ ইন্ডেন্টেড কীওয়ার্ডগুলির জন্য অনুসন্ধান করে।
  2. \ze পরের লাইনটি চিহ্নিত না করা যেমন প্যাটার্ন মিলছে তা থামায়।
  3. ,\@<!\n কমা দিয়ে শেষ না হওয়া লাইনের সন্ধান করে।
  4. \n\s\+\w গ্যারান্টি দেয় যে বর্তমানে স্ক্যান করার পরে একটি নতুন এন্ট্রি রয়েছে।

একই প্যাটার্নটি vimgrepনিম্নলিখিতটি ব্যবহার করে ভুল লাইনগুলির মধ্যে ঝাঁপিয়ে পড়তে ব্যবহার করা যেতে পারে :

:vimgrep /^\s\+.*,\@<!\ze\n\s\+\w/ %

যদি কুইকফিক্স উইন্ডোটি স্বয়ংক্রিয়ভাবে না খোলে, এটি ব্যবহার করে খোলা যেতে পারে :copen। এবং :cnextএবং :cpreviousত্রুটিগুলির মধ্যে লাফানোর জন্য ব্যবহার করা যেতে পারে।


এটা ভাল! আমি এন টিপলে আমি কি কোনওভাবে পরবর্তী ত্রুটিতে লাফিয়ে উঠতে পারি?
— ক্রিশ্চিয়ান নর্ডেস্টগার্ড

আপনি যা চেয়েছিলেন তা অন্তর্ভুক্ত করার জন্য আমি উত্তর আপডেট করেছি। এটি আপনার জন্য কাজ করে কিনা দেখুন।
— 25:38

0

একটি সম্ভাবনা .vimrcঅনুপস্থিত যোগ করতে একটি শর্টকাট সংজ্ঞায়িত করা হয়,

উদাহরণ:

:map \q  :%s/\v([}"])(\s*\n\s*\S+\s*\=)/\1,\2/<CR>

এবং \qছাড়ার আগে বা ডিবাগ করার আগে ব্যবহার করুন ।


আমার জন্য কাজ করছেন না? আমি পেয়েছি E10: \ should be followed by /, ? or & 24,1 60%, কিন্তু সম্ভবত আমি এটি ভুল করছি?
— ক্রিশ্চিয়ান নর্ডেস্টগার্ড

@ ক্রিশ্চিয়াননর্ডস্টগার্ড, .vimrcআমাদের প্রাথমিক ":" মুছে ফেলতে হবে। দয়া করে চেষ্টা করুনmap \q :%s/\v([}"])(\s*\n\s*\S+\s*\=)/\1,\2/e<CR><CR>
— জাজোয়া 17
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.