কখন ব্যবহার করবেন: গ্রেপ এবং: ভিমে ভিমগ্রিপ?


17

ভিমে ইন :makeএবং ত্রুটিগুলি ঠিক করা সহজ করে তোলে :grepএবং এর :vimgrepমতো আচরণ করে :make। তবে কেন আপনার এই দুটি কমান্ডের দরকার? শুধু প্যাটার্নটি অনুসন্ধান এবং কেবল টিপুন না কেন n? কেবল অনুসন্ধানের মাধ্যমে তাদের কী কী সুবিধা রয়েছে?

উত্তর:


17

যেমনটি ডক বলেছেন:

Vim has two ways to find matches for a pattern: Internal and external.

সংক্ষেপে, :vimgrepফাইলগুলি পড়তে এবং সন্ধান করতে ভিমের গ্রেপ প্রক্রিয়া ব্যবহার করে। :grepএকই কাজ অর্জন করতে একটি বাহ্যিক আদেশ ব্যবহার করে।

/জন্য বর্তমান বাফার শুধুমাত্র, যেহেতু সার্চ হয় :[vim]grepফাইলের একটি প্যাটার্ন মাধ্যমে অনুসন্ধান, আপনি একসাথে একটি সম্পূর্ণ প্রকল্পে অনুসন্ধান করতে অনুমতি দেয়।

কটাক্ষপাত আছে :h grepআরও তথ্যের জন্য।


4

/?কেবলমাত্র বর্তমান বাফারটি অনুসন্ধান করুন :grepএবং :vimgrepস্বেচ্ছাসেবী ফাইল / নিদর্শন / গ্লোবগুলি আর্গুমেন্ট হিসাবে গ্রহণ করুন।


4

:[vim]grepওভারের একটি সুবিধা /?হ'ল ফলাফলগুলি কুইকফিক্স তালিকায় (বা আপনি যদি ব্যবহার করেন তবে অবস্থানের তালিকায় :l[vim]grep) অন্তর্ভুক্ত হয়ে যায়, এর অর্থ হল যে আপনি সমস্ত ম্যাচ ব্যবহার করে একটি তালিকা টানতে পারেন :cl। তারপরে আপনি তালিকা থেকে সরাসরি যে ফলাফলটি চান তাতে সরাসরি যেতে আপনি একটি নম্বর ব্যবহার করতে পারেন।

এর অর্থ হ'ল আপনি বর্তমান বাফারটি :[vim]grep pattern %অনুসন্ধান করতে যেমন আপনার পুরো কোড বেসটি অনুসন্ধান করার জন্য একই কমান্ডটি ব্যবহার করতে পারেন :[vim]grep pattern pathতাই এটিতে কিছু সুন্দর প্রতিসাম্য রয়েছে।

এর পরেও আপনি ব্রাঞ্চ আউট করতে পারেন এবং আপনাকে খুব শক্তিশালী অনুসন্ধান দিতে সিলভার সার্ফার / রিপগ্রিপ ব্যবহার করতে পারেন । এগুলি :[vim]grepকমান্ডে ম্যাপ করা যায় ।


0

আমি দেখতে 3 টি প্রাথমিক সুবিধা আছে

  1. একটি সামঞ্জস্যপূর্ণ regexইঞ্জিন / সিনট্যাক্স ব্যবহার করুন : ব্যবহারের:grep/vimgrep সাহায্যে আপনি একটিকে grepprgসংজ্ঞায়িত করতে পারবেন যা সংজ্ঞায়িত করা যায় grep/ack/ag। এটি ব্যবহার করে আপনি একটি সামঞ্জস্যপূর্ণ regexইঞ্জিন ব্যবহার করে বর্তমান বাফার বা একাধিক বাফার / ফাইল অনুসন্ধান করতে পারেন । অন্যদিকে, আপনি যদি ভিআইএম এর/pattern বিকল্পটি ব্যবহার করেন তবে আপনি ভিমের ডিফল্ট রেজেক্স ইঞ্জিনে আটকে আছেন, যার সিনট্যাক্সের তুলনায় আলাদা extended regular expressionসিনট্যাক্স রয়েছে। সুতরাং, যে কোন সময় আপনি একটি অভিব্যক্তি জন্য অনুসন্ধান করতে থাকে, তাহলে আপনি চিন্তা করতে হবে / স্মরণ কিনা ব্যবহার করা উচিত হবে \)বা শুধু )এবং অন্যান্য পার্থক্য। এটি খুব বিরক্তিকর হতে পারে ( /programming/3864467/whats-tiffer-between-vim-regex-and-normal-regex )

  2. vimgrep একটি কুইকফিক্স / অবস্থানের তালিকা পপুলেট করে: ব্যবহার করে :grep/vimgrepআপনাকে অনুসন্ধানের তালিকা তৈরি করতে দেয়। ( https://medium.com/@lakshmankumar12/quickfix-and-location-list-in-vim-ca0292ac894d )।

    আপনি যদি অবস্থানের তালিকাটি ব্যবহার করতে চান ]qতবে আপনার যদি টিম-পপস অবিবাহিত প্লাগইন থাকে তবে এটি নেভিগেট করতে শর্টকাট ব্যবহার করতে পারেন ( https://github.com/tpope/vim-unimpaired )

  3. ভিএম এর মধ্যে থাকা অবস্থায় জটিল অনুসন্ধানগুলি : সাধারণত যদি আপনাকে জটিল অনুসন্ধান করতে হয় তবে আপনাকে কমান্ড লাইন ব্যবহার করতে হতে পারে। তবে, আপনি যদি greprgসঠিকভাবে সংজ্ঞা দেন এবং একটি কমান্ড ব্যবহার করেন যেমন [1]

    : ভিএম / প্যাটার্ন 1 / find . -type f

    আপনি খুব জটিল অনুসন্ধান করতে পারেন এবং আপনার location listবা অনুসন্ধান ফলাফলগুলি প্রদর্শন করতে পারেন quickfix list

[1] http://vimcast.org/episodes/search-m Multipleple-files-with-vimgrep/

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