গ্রেপ-এন এর ফলাফল দেওয়া, আমি কীভাবে সেই নির্দিষ্ট লাইনে ভিএম খুলতে পারি? (কেবল কীবোর্ড ব্যবহার করে)


9

যখন আমি দৌড়ে যাই grep "keyword" -nএবং ফলাফলগুলির নীচের তালিকাটি পাই:

a/b/c:10:    keyword
a/b/c:70:    keyword
a/b/d:50:    keyword

যে ফাইলটি পাওয়া গেছে তাতে আমি কীভাবে একটির মধ্যে ফাইল খুলতে পারি (তালিকার ২ য় তালিকায় বলি)?

আমি এখন কেবলমাত্র আমার মাউস ব্যবহার করে আউটপুটটি অনুলিপি করছি এবং এটির পরে অনুলিপি করব vimএবং তারপরে +আমি কপি করা লাইন নম্বরটি যুক্ত করব। (অর্থাত্ আমি vim a/b/c +70ফাইলের নাম পেতে মাউস অনুলিপিটি ব্যবহার করে এবং লাইন নম্বর পেতে অন্য একটি মাউস অনুলিপি ব্যবহার করে লিখছি [বা আমি কেবল এটি হাতে হাতে অনুলিপি করছি, যখন এটি যথেষ্ট সংক্ষিপ্ত])

কিবোর্ড শর্টকাট দিয়ে এটি করার কোনও উপায় আছে?


আপনি যে ভালো কিছু চেষ্টা করতে পারেন: echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset
আরকাদিউস দ্রবকিজিক

2
এছাড়াও, আপনি যদি ভিমকে আরও দক্ষতার সাথে ব্যবহার করতে আগ্রহী হন তবে উত্সর্গীকৃত ভিআই এবং ভিম স্ট্যাক এক্সচেঞ্জ সাইটটি দেখুন।
মুড়ু

উত্তর:


14

দুটি জিনিস:

  1. ভিমের কিছুটা সমর্থন রয়েছে grep

    আপনি যদি ভিমটি খোলেন, এবং করেন :grep keyword ..., তবে ভিম ফলাফলের সাথে কুইকফিক্স তালিকাটি জনপ্রিয় করে তোলে এবং প্রথম ফাইলটিতে লাফ দেয়। এরপরে কোনো তিড়িং লাফ পারেন এন ম quickfix এন্ট্রি :cc n(এবং অন্যান্য কমান্ড)।

  2. আপনি গ্রেপের আউটপুট ব্যবহার করে উল্লিখিত কুইকফিক্স তালিকাটি তৈরি করতে পারেন:

    vim -q <(grep -n keyword ...)
    

    এবং তারপরে উপরে উল্লিখিত কুইকফিক্স নেভিগেশন কমান্ডগুলি ব্যবহার করুন।

হয় গ্রেপ এর আউটপুট ম্যানুয়ালি চারপাশে খেলার চেয়ে সহজ।

(২) এর বিকল্প হিসাবে, আপনি গ্রেপের আউটপুট একটি ফাইলে সংরক্ষণ করতে পারেন এবং পরিবর্তে সেই ফাইলটি ব্যবহার করতে পারেন, যদি আপনি মনে করেন যে আপনি প্রয়োজনীয়ভাবে ভিমের পরে খুলবেন না:

grep ... | tee log
vim -q log

গিট স্ট্যাটাসে একই পদ্ধতিটি ব্যবহার করার চেষ্টা
করেও

3
@ সিআইফোর্স কুকিজ যা grep -n( <filename>:<line>: ...) এর মতো বিন্যাসে হবে না । আমি গিটের জন্য পলাতক প্লাগইন ব্যবহার করি এবং তারপরে এটি একটি বিষয় :Gstatus, পছন্দসই ফাইলটিতে যান এবং এন্টার টিপুন।
মুড়ু

বিটিডাব্লু, আমি সর্বদা রঙ ব্যবহার করার জন্য আমার ~ / .Bashrc সম্পাদনা করেছি grep aliasএবং এটি কোনও কারণে -q >()বিকল্পটি ভেঙে দিয়েছে ...
সিআইএসফোর্ডকুইজ

2

আপনি যদি তাই করতে পারেন তবে ইতিমধ্যে @ মুরুর উত্তর হিসাবে গ্রেপের পক্ষে সমর্থন না থাকলে:

:cexpr system("grep -n keyword")

এটি অন্য কমান্ডের সাহায্যে ব্যবহার করা যেতে পারে git grepfor

এছাড়াও, আপনি একটি বাফারে আউটপুটটি খুলতে এবং এটিতে "সিবিফার" ব্যবহার করতে পারেন।

এটি সম্পর্কে ম্যানুয়াল থেকে কুইকফিক্স বিভাগ দেখুন ।

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