ভিআইএম: রিপ্লেস কমান্ডে স্ট্রিং থেকে স্ট্রিং ব্যবহার করুন


16

আমি প্রায়শই /আমার নিয়মিত অভিব্যক্তিগুলি যাচাই করতে ভিম অনুসন্ধান কমান্ডটি ব্যবহার করি (এটির সাথে কী মিলছে তা দেখার জন্য)। এর পরে আমি সাধারণত :%sপ্রতিস্থাপন কমান্ডটি ব্যবহার করি, যেখানে আমি সন্ধান থেকে সেই রেজিপ্সপকে স্ট্রিং প্রতিস্থাপন করার জন্য ব্যবহার করি, উদাহরণস্বরূপ আমি প্রথমে এই জাতীয় স্ট্রিংটি সন্ধান করি:

/TP-\(\d\{5\}\)-DD-\d\{3\}

এটি যা চাই ঠিক তার সাথে মেলে, তাই আমি আমার প্রতিস্থাপনটি করব:

:%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g

তবে আমাকে আবার পুরো রেজিএক্সএক্স এখানে লিখতে হবে। সাধারণত যে রেজিপ্সপ অনেক দীর্ঘ হয়, সে কারণেই আমি সমাধান খুঁজছি:

সেই অনুসন্ধানের প্যাটার্নটি সরাসরি প্রতিস্থাপন কমান্ডে আটকানোর জন্য কি কোনও বিদ্যমান শর্টকাট বা ভিএম স্ক্রিপ্ট রয়েছে?

আমি টার্মিনালে ভিএম ব্যবহার করি (জিভিএম নেই)।

উত্তর:


20

সাধারণভাবে, একটি খালি নিয়মিত এক্সপ্রেশন মানে পূর্বে প্রবেশ করা নিয়মিত অভিব্যক্তিটি ব্যবহার করা, তাই :%s//\1/gআপনি যা চান তা করা উচিত।


ওহ, এটি এত সহজ! ঠিক আমার যা প্রয়োজন, ধন্যবাদ।
kars7e

10
এছাড়াও, যদি আপনি যাচাই বা সর্বশেষ ব্যবহৃত প্যাটার্ন পরিবর্তন করতে চান, আপনি ব্যবহার করতে পারেন কন্ট্রোল-R তারপর /সামগ্রীগুলি প্রবেশ করানোর জন্য (সার্চ প্যাটার্ন রেজিস্টার /) সরাসরি একটি আংশিকভাবে টাইপ করা কমান্ড লাইন মধ্যে (যেমন পরে :%s/)।
ক্রিস জনসন

পাশাপাশি খুব দরকারী ইঙ্গিত। ধন্যবাদ @ ক্রিস! +1
kars7e

আমি যদি ২৩ বলে কিছু সংখ্যার সাথে "\ 1" অনুসরণ করতে চাই তবে কী হবে? আমি এটিকে "\ 123" হিসাবে ব্যাখ্যা করা এড়ানো কীভাবে করব?
চ্যাম্প

@ চ্যাম্প যেমন পিছনের তথ্যসূত্রগুলি কেবল \9তেমন যায় না, কোনও অস্পষ্টতা নেই।
কুসালানন্দ

4

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

  • অনুসন্ধান করা: অনুসন্ধানের পরিবর্তে ?বা /অনুসন্ধানের জন্য, চেষ্টা করুন q/বাq?
  • প্রাক্তন কমান্ডের চেয়ে বরং :চেষ্টা করুনq:
  • এই মোড ব্যবহার থেকে প্রস্থান করতে CtrlC

আরও পড়তে দেখুন :help q:

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