ভিমে সব মিলিয়ে (নয়) লাইনগুলি লুকান ide


87

Vi বা Vim- এ সমস্ত মিলের লাইনগুলি দেখানো / আড়াল করা কি সম্ভব? হাইলাইট নয় কেবল কেবল সেই লাইনগুলি দেখান।

উদাহরণস্বরূপ আমার কাছে শব্দটি সহ একটি পাঠ্য রয়েছে ERROR। আমি কীভাবে এটি কেবলমাত্র যুক্ত লাইনগুলি প্রদর্শন করব ERRORএবং কীভাবে কেবলমাত্র লাইনগুলি প্রদর্শন করব ERROR?

সমস্ত মিলে যাওয়া লাইনগুলি মোছা এবং তারপরে কেবল এটি পূর্বাবস্থায় না ফেলে কোনও সমাধান আছে ?


উত্তর:


109

আপনি কি :globalআদেশ সম্পর্কে জানেন ? এটি কি আপনি চান কি না?

:g/ERROR

এবং বিপরীতে:

:g!/Error

বা সমতুল্য:

:v/Error

19
এটি খুব ভাল না। একবার আপনি নীচে স্ক্রোল করুন, তারপরে কমান্ডটি শেষ হবে এবং সবকিছু আবার প্রদর্শিত হবে। এটি সত্যিই contents বিষয়বস্তুগুলি গোপন করছে না।
কান লি

@ কানলি g<আবার দেখার জন্য হিট করুন , বা @:যদি আপনি চালনা এবং আদেশ না পেয়ে থাকেন।
ডি বেন নোবেল

53

আপনার ব্যবহার কেস উপর নির্ভর করে আরেকটি পন্থা ব্যবহার হবে vimgrep এবং তার ফলাফল quickfix । আপনি নিম্নলিখিতটি করতে পারেন:

:vimgrep pattern %বর্তমান ফাইলটি অনুসন্ধান করবে এবং আপনাকে প্রথম অনুসন্ধানের ফলাফলে নিয়ে যাবে। আরও গুরুত্বপূর্ণ বিষয় এটি "কুইকফিক্স তালিকায়" ফলাফলও রাখে।

:copenতারপরে কুইকফিক্স তালিকাটি পৃথক কুইকফিক্স-উইন্ডোতে খুলবে। সুতরাং আপনার সর্বশেষ ভিমগ্রাইপ থেকে সমস্ত লাইন সহ একটি পৃথক উইন্ডো থাকবে। কুইকফিক্স-উইন্ডোর অভ্যন্তরে আপনি তারপরে এন্টার টিপুন বা আপনার মূল ফাইলের সংশ্লিষ্ট লাইনে যেতে লাইনটিতে ডাবল-ক্লিক করতে পারেন।

:colderআপনাকে পুরানো কুইকফিক্স তালিকায় ফিরে যেতে দেবে (পুরানো ভিমেগ্রপের ফলাফল)। এবং :cnewerআরও নতুন অনুসন্ধান ফলাফলের দিকে এগিয়ে যায়।

দ্রষ্টব্য যে চলমান অবস্থায় কুইকফিক্স তালিকাটিও আপডেট করা হয় :make(এজন্য ত্রুটিগুলি স্থির করার জন্য এটি কুইকফিক্স বলে)। এর কারণে কুইকফিক্স তালিকার একটি বিকল্পও রয়েছে যা "অবস্থানের তালিকা" বলে " এটি ব্যবহার করার পরিবর্তে আপনি ব্যবহার :lvimgrep, তারপর সি-পূর্বে সমাধান কমান্ড চেয়ে L-পূর্বে সমাধান কমান্ডগুলি ব্যবহার বরং - :lopen, :lolder, :lnewer

অবশ্যই, আপনি আরও অনেক কিছু করতে পারেন। দেখুন :help quickfixআরও তথ্যের জন্য।

পিএস, আপনি বলেছিলেন যে আপনি এমন কোনও পন্থা চান না যা লাইনগুলি মুছে ফেলে এবং তারপরে পূর্বাবস্থায় ফেলা। তবে যেহেতু আপনি g/ERRORউত্তর হিসাবে চিহ্নিত করেছেন আমি ভেবেছিলাম আমি দ্রুত এবং নোংরা উপায়টি করবো g!/ERROR/d। এরপরে আপনি সহজেই এটি ব্যবহার করে পূর্বাবস্থায় ফেরাতে পারেন u। এছাড়াও এফওয়াইআই, আপনি আদেশগুলির :set hlsearchসাথে মেলে নিদর্শনগুলি হাইলাইট করতে পারেন do:g


4
গৃহীত উত্তরের চেয়ে ": g! / ERROR / d" এ টিপ দেওয়ার জন্য ধন্যবাদ।
ভিনগারিয়া

প্যাটার্নের সাথে মেলে না এমন লাইনগুলি দিয়ে আপনি এটি করতে পারেন ?
জ্যাকটোজ

38

তুমি ব্যবহার করতে পার

:g/ERROR/

ERROR দিয়ে সমস্ত লাইন মুদ্রণ করতে

এছাড়াও একটি ভিম প্লাগইন রয়েছে যা আমি বহুবার দেখেছি কিন্তু ব্যবহার করি নি: ফোল্ডারআরচ: ফোল্ড অফ লাইনগুলি যা প্রদত্ত প্যাটার্নের সাথে মেলে না


15
ফোল্ডারচ প্লাগইনে লিঙ্কের জন্য +1। এটি আপত্তিজনক এবং কাজে আসতে পারে।
ব্যবহারকারী 55400

26

এটি করার সর্বোত্তম উপায় হ'ল->

:vimgrep /something/g % | copen

এটি আপনার কীওয়ার্ডের জন্য মিলগুলির তালিকা খুলবে এবং কুইকফিক্স উইন্ডোতে কেবল মিলিত লাইনগুলি প্রদর্শন করবে।

যদি বর্তমান ফাইলটি বিবেচনা না করা হয় তবে% ফাইলের পথে প্রতিস্থাপন করুন।


4
আপনি যদি বর্তমান ফাইলটি বিবেচনা না করে থাকেন তবে% पथ ফাইলের সাথে প্রতিস্থাপন করুন।
শিবেন্দ্র

প্যাটার্নের সাথে মেলে না এমন লাইনগুলি দিয়ে আপনি এটি করতে পারেন ?
জ্যাকটোজ

2

আপনি যদি ব্যবহার fzfকরতে পারেন তবে আপনি ব্যবহার করতে পারেন:

  • :Lines সমস্ত খোলা ফাইলগুলিতে
  • :BLines শুধুমাত্র ওপেন বাফারে
  • :Rg [pattern] ব্যবহার ripgrep

1

:vimgrep /something/g % | copenদুর্দান্ত কাজ করে। এছাড়াও :g/<pattern>/dপ্যাটার্ন সঙ্গে ডিলিট লাইন ব্যবহার করা যেতে পারে


এটি এই প্রশ্নের ঠিক অন্য উত্তর।
শিবেন্দ্র


0

আপনি সম্ভবত কম vi ভিআইএম এবং / প্যাটার্নে / যা প্যাটার্ন / (গ্রেপের মতো) যুক্ত লাইনগুলি দেখায় তাতে কমান্ডটি বোঝায়।

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