প্রাক্তন কমান্ড আউটপুট গ্রিপ কিভাবে?


11

প্রাক্তন কমান্ড আউটপুটে কোনও প্যাটার্নটির জন্য কীভাবে অনুসন্ধান করা যায়? উদাহরণস্বরূপ, :scriptnamesকমান্ডের আউটপুটে ফাইলের নামের প্যাটার্নটি কীভাবে অনুসন্ধান করতে হবে ? সমস্ত স্বাদের জন্য সাহায্যে grepএবং vimgrepসেখানে {file}অনুসন্ধান সম্পাদন করার জন্য কেবল এমন এক জায়গা রয়েছে।

উত্তর:


6

আপনি করতে পারেন:

:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))

এর মানে কি:

:redir => scriptn                      "redirect following output to variable scriptn
:sil exe 'scriptnames'                 "silently execute scriptnames
:redir end                             "end the redirection
:echo(system('grep pattern',scriptn))  "echo the call of grep witht that input with the pattern `pattern`

12

:filterকমান্ড এই একটি সহজ, এক লাইন পন্থা।

:filter /indent/ scriptnames

কমান্ডের আউটপুট থেকে প্যাটার্নের সাথে মেলে কেবল লাইনগুলি showindent:scriptnames


আমি :redirপ্রায়শই এই জাতীয় প্রশ্নের সমাধানগুলি দেখতে পাই, যা ভাল হয় এবং প্রচুর শক্তি এবং বিকল্পগুলি সরবরাহ করে, তবে আমি মনে করি তারা যখন কিছুটা বেশি না হয় তখন কিছুটা ওভারকিল হয়, আপনার কেবল কিছু আছে কিনা তাড়াতাড়ি খতিয়ে দেখা উচিত। :filterমুহুর্তে এবং মরা সহজ ব্যবহার করতে সুবিধাজনক।


2
এটি পরিষ্কার এবং আরও সংক্ষিপ্ত।
jdhao

প্রকৃতপক্ষে, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। (Edi9999 এর উত্তর যদিও, অত: পর ভোট দিন থেকে অনেক কিছু শিখেছি।)
toraritte

4

প্রথমত, আপনাকে এর আউটপুট গ্রহন করতে scriptnamesহবে এবং এটি একটি বাফারে রেখে দিতে হবে।

আপনি এটির :redirজন্য ব্যবহার করতে পারেন :

:redir @a       " redirect output of following ex commands to register a
:scriptnames    " press G to get to the end of the output if it's too long
:redir END      " end the redirection
:vnew           " new buffer in vertical window
:put a          " put content of register
/pattern        " search for 'pattern'

এটি বলেছিল, এমন একটি :scriptnameআউটপুট যা আপনার নিজের চোখ দিয়ে স্ক্যান করা খুব দীর্ঘতর গভীর সমস্যার লক্ষণ হতে পারে।


আপনার শেষ বাক্যটির সাথে একমত যদি আউটপুট দীর্ঘ হয় তবে ফিল্টারিং সরাসরি কমান্ড লাইন থেকে করা উচিত, প্রাক্তন থেকে নয়।
ওয়াইল্ডকার্ড

দুঃখিত, খুব দীর্ঘ তালিকার অর্থ আপনি কী বোঝেন না। উদাহরণস্বরূপ সিনথেস্টিকের সেই তালিকায় 10 টি ফাইল রয়েছে, আরও 13 টি ফাইল রয়েছে, ইত্যাদি
আল বার্গার

2
আপনার আউটপুট যদি :scriptnamesম্যাগনা কার্টার চেয়ে দীর্ঘ হয় তবে আপনি টিম পোপের স্ক্রিপ্টটি ইনস্টল করার বিষয়টি বিবেচনা করতে পারেন । এটি এমন একটি ক্রিয়াকলাপ সরবরাহ করে :Scriptnamesযা সমস্ত জাঙ্ককে কুইকফিক্স তালিকায় রাখে। সেখানে আপনি এটি আপনার হৃদয়ের সামগ্রীতে অনুসন্ধান করতে পারেন, এটি কোনও ফাইলে সংরক্ষণ করতে পারেন বা সংশ্লিষ্ট স্ক্রিপ্টগুলিতে যেতে পারেন।
সাতো ক্যাটসুর

@ অ্যালবার্গার, খুব দীর্ঘ তালিকার অর্থ অনেকগুলি প্লাগইন এবং / অথবা প্লাগইন খুব বড় বা খারাপ লেখা। একক প্লাগইনের জন্য ১৩ টি ফাইল অনেক বেশি।
রোমেনেল

আপনি কি প্রস্তাব দিচ্ছেন যে NERDTreeআউটপুট :scriptnamesসংক্ষিপ্ত রাখার জন্য তার সমস্ত ফাংশন একটি একক ফাইলে রাখা উচিত ? এটি কি এটি আরও ভাল লিখিত প্লাগইন তৈরি করতে পারে?
সাতো ক্যাটসুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.