বাহ্যিক কমান্ড ব্যবহার না করে কোড প্রকল্পে নেভিগেট করা


9

Ctags বা অন্যান্য বাহ্যিক সরঞ্জাম ব্যবহার না করে কোনও কোড-বেস নেভিগেট করার জন্য আমি কমান্ড বা অনুসন্ধান মোডে, ভিএম কমান্ড / কোয়েরিগুলির একটি টুলবক্স সংগ্রহ করার চেষ্টা করছি । Ctags দুর্দান্ত তবে আপনি যে পরিবেশের পরিবেশ আটকে আছেন তার উপর নির্ভর করে সমর্থন আলাদা হতে পারে। আমি শুধু Vim জ্ঞান উপর নির্ভর করতে চাই।


4
হতে পারে আপনার "সিটি্যাগস" এর পরিবর্তে "বাহ্যিক সরঞ্জামগুলি" বলা উচিত, কারণ আমার প্রথম পরামর্শটি সিস্কোপ হবে।
মুড়ু

1
একটি জিনিস যা আমি ব্যবহার করি তা হ'ল কমান্ড gd। এটি কার্সারের অধীনে ভেরিয়েবলের স্থানীয় ঘোষণায় কার্সার গ্রহণ করে।
নীতিশাচ

@ মুরু আমি কোনও বাহ্যিক সরঞ্জাম ব্যবহার করতে চাই না। আমি যা শিখতে চেষ্টা করছি তা হ'ল ভিম কমান্ডগুলি ব্যবহার করে কোনও কোড ভিত্তিতে দক্ষতার সাথে নেভিগেট করার কৌশল। আমি জানি এটি করা সম্ভব, তবে স্পষ্টতই আমার চেয়ে গভীরতর ভিম জ্ঞান প্রয়োজন। এটি এতটা ওপেন শেষ হওয়ায় সম্ভবত কোনও ভাল এসই প্রশ্ন নয় তবে অন্য কোথায় দেখতে হবে তা আমি জানি না।
ব্যবহারকারী 1332148

উত্তর:


11

"অন্তর্ভুক্ত অনুসন্ধান" এই জাতীয় একটি সরঞ্জাম:

[I and ]I      " search current buffer and included files for
               " the word under the cursor, skipping comments
:ilist foo     " same as above but for 'foo'
:ilist /foo    " same as above but for a word containing 'foo'

"অন্তর্ভুক্ত অনুসন্ধান", "সংজ্ঞা অনুসন্ধান" সম্পর্কিতও আকর্ষণীয়, এছাড়াও:

[D and ]D      " search current buffer and included files for
               " the definition of the symbol under the cursor
:dlist foo     " same as above but for definition of 'foo'
:dlist /foo    " same as above but for a definition containing 'foo'

:dlist /       " list all definitions from the current buffer
               " and included files

উভয় সরঞ্জামই বিভিন্ন বিকল্পের উপর নির্ভর করে যা আপনার ফাইল টাইপ প্লাগইনগুলি দ্বারা সেট করা হতে পারে।

দেখুন :help include-search


এছাড়াও আপনি ব্যবহার করতে পারেন gdএবং gDএর লাইটওয়েট সংস্করণ হিসাবে [Dএবং ]D

দেখুন :help gd


বর্তমান বাফারে, নীচের কমান্ডটি প্রতিটি ফাংশন সংজ্ঞা এবং এর লাইন নম্বর তালিকাভুক্ত করবে:

:g/func/#

দেখুন :help :g


:grepএবং :vimgrepএছাড়াও দরকারী, শুধুমাত্র যদি কারণ তাদের ফলাফলের quickfix তালিকা সাথে নেভিগেট করা যাবে মধ্যে প্রতিপালিত হয় :cn, :cp... আর খুব কুশলী quickfix উইন্ডোতে প্রদর্শিত।

দেখুন :help :grep, :help :vimgrepএবং :help quickfix


Quickfix তালিকা / উইন্ডো কথা বলছেন, আমি লিখেছি এই ফাংশন (অন্যদের কাজের উপর ভিত্তি করে) ফলাফল প্রদর্শন করে [I, ]I, :ilist, [D, ]Dএবং :dlistquickfix তালিকায় / উইন্ডো। অবশ্যই ওয়াইএমএমভি।


কঠোরভাবে নেভিগেশন সরঞ্জাম না হয়ে, আমি যে ফাংশনটি নিয়ে কাজ করছি তার স্বাক্ষরটি একবার দেখার জন্য আমি পূর্বরূপ উইন্ডোটিকে খুব দরকারী বলে মনে করি।

দেখুন :help preview-window


বলেছিল…

ভিম আপনার কোডিং সম্পর্কে কিছু জানেন না এমন কয়েকটি রেইগেক্স ধাঁচের বাইরে যা আপনার কোডিং শৈলীতে বা যা কিছু ফিট করতে পারে। এর অর্থ ctags, cscope বা GNU GLOBAL এর মতো বাহ্যিক সরঞ্জামগুলির সাহায্যে কোড নেভিগেশন আরও ভালভাবে সম্পন্ন হয়েছে।


5

কোডের মাধ্যমে নেভিগেট করার জন্য অনেকগুলি উপায় রয়েছে (ভিম এবং বহিরাগত অন্তর্ভুক্ত), আমি এখনও সেগুলি আবিষ্কার করি। আমি প্রতিদিনের কাজে যা ব্যবহার করি তা হ'ল:

  • প্রকল্পের ফাইলগুলিতে টেক্সট গ্রেপ করা এবং কুইকফিক্স উইন্ডোতে নেভিগেট করা (আমি গ্রেপিংয়ের জন্য সিলভার সন্ধানকারী ব্যবহার করি)।
  • ভাষা সম্পর্কিত প্লাগইন ব্যবহার করে, আমি জানি যে জাভাস্ক্রিপ্ট, রুবি, গো, যা প্রোগ্রামের মডিউলগুলির মধ্যে ঝাঁপ দেওয়ার অনুমতি দেয় (জাভাস্ক্রিপ্ট প্লাগইনে হ'ল gfকম্যান্ড)
  • Ctrl+O, Ctrl+I- নেভিগেশনের "ইতিহাস" এ পিছনে বা সামনের দিকে এগিয়ে যান
  • g; - ফাইলের সর্বশেষ সম্পাদিত জায়গায় লাফ দিন
  • নির্দিষ্ট জায়গায় "বুকমার্ক" রাখার জন্য চিহ্ন ব্যবহার করা Using আপনি '[some_letter]কমান্ড দিয়ে চিহ্ন রাখতে পারেন , যদি চিঠি মূলধন হয় তবে আপনি এমন চিহ্ন পাবেন যা কোনও ফাইল (বাফার) থেকে পৌঁছতে পারে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.