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


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.