ctags দুটি বৈশিষ্ট্য সক্ষম করে: ফাংশন কলগুলি থেকে তাদের সংজ্ঞায়িত করতে ও ওমনি সমাপ্তির অনুমতি দেয়। প্রথমটির অর্থ হ'ল আপনি যখন কোনও পদ্ধতিতে কল পেলেন তখন হিট করছেন g]বা CTRL-]যেখানে সেই পদ্ধতিটি সংজ্ঞায়িত বা প্রয়োগ করা হয়েছে সেখানে চলে যাবেন। দ্বিতীয় বৈশিষ্ট্যটির অর্থ হ'ল আপনি যখন টাইপ করবেন foo.বা foo->, এবং যদি foo একটি কাঠামো হয়, তবে ক্ষেত্র সমাপ্তির সাথে একটি পপ-আপ মেনু প্রদর্শিত হবে।
cscope এর প্রথম বৈশিষ্ট্যও রয়েছে - ব্যবহার করে set cscopetag- তবে শেষ নয়। তবে সিস্কোপ অতিরিক্তভাবে যেখানে কোনও ফাংশনও বলা হয় সেখানে যে কোনও জায়গায় লাফ দেওয়ার ক্ষমতা যুক্ত করে।
যতক্ষণ না কোনও কোড বেসের চারপাশে জাম্প দেওয়ার বিষয়টি বিবেচনা করা হয়, ctags কেবল আপনাকে সেই জায়গার দিকে নিয়ে যাবে যেখানে ফাংশনটি প্রয়োগ করা হয়েছে, যেখানে সিস্কোপ আপনাকে দেখাতে পারে যেখানে কোনও ফাংশনও বলা হয়।
কেন আপনি একে অপরকে বেছে নেবেন? ভাল, আমি উভয় ব্যবহার। ctags সেট আপ করা সহজ, দ্রুত চালানো এবং যদি আপনি কেবলমাত্র এক উপায়ে ঝাঁপ দেওয়ার বিষয়ে চিন্তা করেন এটি আপনাকে কম লাইন দেখায়। আপনি কেবল চালাতে পারেন :!ctags -R .এবং g]ঠিক কাজ করতে পারেন । এটি ওমনি সম্পূর্ণ জিনিসকে সক্ষম করে।
Cscope বড়, অজানা কোড ঘাঁটির জন্য দুর্দান্ত। সেট আপটি একটি ব্যথা কারণ পার্স করার জন্য সিস্কোপের ফাইলগুলির নামের তালিকা থাকা একটি ফাইল দরকার। এছাড়াও ভিমে, ডিফল্টরূপে কোনও কী বাঁধাই সেট আপ করা হয় না - আপনাকে :cscope blah blahম্যানুয়ালি চালানো দরকার ।
মুষ্টির সমস্যাটি সমাধান করার জন্য আমার কাছে একটি বাশ স্ক্রিপ্ট পাওয়া গেছে cscope_gen.shযা এরকম দেখাচ্ছে:
#!/bin/sh
find . -name '*.py' \
-o -name '*.java' \
-o -iname '*.[CH]' \
-o -name '*.cpp' \
-o -name '*.cc' \
-o -name '*.hpp' \
> cscope.files
# -b: just build
# -q: create inverted index
cscope -b -q
এটি কোডটি অনুসন্ধান করে যা আমি আগ্রহী, cscope.files তালিকা তৈরি করে এবং ডাটাবেস তৈরি করে। এইভাবে আমি সেট আপের সমস্ত ধাপগুলি মনে রাখার পরিবর্তে ":! Cscope_gen.sh" চালাতে পারি।
আমি এই স্নিপেটের সাহায্যে সিএসপিএল অনুসন্ধানটি সিটিআরএল-স্পেস এক্স 2 এ ম্যাপ করব, যা সিস্কোপের অন্য ডাউনারকে প্রশমিত করে:
nmap <C-@><C-@> :cs find s <C-R>=expand("<cword>")<CR><CR>
আছে প্লাগইন এই cscope_maps.vim অনুরূপ বাইন্ডিং একটি গুচ্ছ আপ যে সেট। সমস্ত বিকল্পের অর্থ কী তা আমি কখনই মনে করতে পারি না, তাই সিটিআরএল-স্পেসে লেগে থাকুন।
সুতরাং উপসংহারে: ctags সেটআপ করা সহজ এবং বেশিরভাগ কিছুই না করে কাজ করে, এটি ওমনি-সম্পূর্ণের জন্যও অত্যাবশ্যক। আপনার যদি একটি বৃহত এবং বেশিরভাগ অজানা কোড বেজ বজায় রাখতে হয় তবে সেক্ষেত্রে আরও বেশি লেগের কাজ প্রয়োজন হলে সিস্কোপ আরও বৈশিষ্ট্য সরবরাহ করে।
make tagsকর্নেলের রুট ডিয়ারে করেছিলাম এবং চারপাশে লাফিয়ে খেলছিলাম এবং বেশিরভাগ সময় ভুল জায়গায় চলে যায়। আমি পড়লাম যে সিটি্যাগগুলিতে সি প্রিপ্রোসেসর নিয়ে সমস্যা রয়েছে, তবে যে সিটি্যাগগুলি এলএক্সআর-তে ব্যবহৃত হয় তা বিবেচনা করে অবশ্যই কিছু করা উচিত।