ভিম: উদ্ধৃতি চিহ্নগুলি অনুসন্ধান করতে আপনি উইন্ডোতে কীভাবে বহিরাগত গ্রেপ ব্যবহার করবেন?


5

কোনও কারণে আমি আমার জীবনের জন্য এটি বুঝতে পারি না যে ভিএম ব্যবহার করার সময় কীভাবে বাইরের সরঞ্জামগুলিতে একক উদ্ধৃতি চিহ্নগুলি পাস করতে হয়। উদাহরণস্বরূপ, আমি "foo (এটি, একটি একক উদ্ধৃতি চিহ্নের পরে শব্দটি শব্দ) এর পাঠ্যের জন্য ভিমের বহিরাগত গ্রেপকে কল করতে চাইতে পারি

সুতরাং আমি আদেশটি চেষ্টা করতে পারি:

:grep \"foo *.txt

তবে এর ফলে নিম্নলিখিত ত্রুটি বার্তায় ফলাফল:

!findstr /n \"foo *.txt >C:\Users\[username]\AppData\Local\Temp\VIeC244.tmp 2>&1
shell returned 1
E40: Can't open errorfile C:\Users\[username]\AppData\Local\Temp\VIeC244.tmp

নোট করুন যে আমি উইন্ডোতে রয়েছি (এবং এটি চালিয়ে যাচাই করা যেতে পারে echo &grepprg) গ্রেপটি 'ফাইন্ডস্টার / এন' ব্যবহার করতে পরিবর্তিত হয়েছে । আমি যা সন্ধান করি তা হ'ল আমি নিম্নলিখিতটি টাইপ করে কমান্ড লাইন থেকে নিজেই এটি করতে চাইলে আমি যে সন্ধানটি চাই তা সহজেই সম্পাদন করতে পারি:

findstr /n \"foo *.txt

যা আমি আশা করি ঠিক তেমন কাজ করে


1
ত্রুটি বার্তাটি দেখতে সহায়ক হতে পারে। এছাড়াও, আপনি দুবার উদ্ধৃতি চিহ্নটি পালানোর চেষ্টা করেছেন , অর্থাৎ \\\"? আমি কেবল ধরে নিতে পারি যে ভিআইএম প্রদত্ত প্যারামিটারগুলিকে সরিয়ে দেয় :grepএবং কল করে findstr /n "foo *.txt- যা অবশ্যই একটি অবৈধ আদেশ হবে এবং ত্রুটির কারণ ঘটবে।
n.st

ঠিক আছে, দুঃখিত, আমি ত্রুটি বার্তাটি দিয়ে প্রশ্নটি আপডেট করেছি। আমি এটিতে পুরো গুচ্ছটি চেষ্টা করেছিলাম, দুবার পালিয়ে যাওয়া সহ, তবে এটি কাজ করতে পারিনি
স্টিভ ভার্মিউলেন

1
আপনি চেষ্টা করেছেন :!findstr /n \"foo *.txt? যদি এটি ব্যর্থ হয়, আপনার কার্যনির্বাহী ডিরেক্টরি (চেষ্টা :pwd) আপনার প্রত্যাশা অনুযায়ী সেট করা নাও হতে পারে, সুতরাং *.txtকিছুই খুঁজে পাবে না। (ডিফল্টরূপে, ভিম স্বয়ংক্রিয়ভাবে কার্যকারী ডিরেক্টরিটিকে বর্তমান ফাইলের ডিরেক্টরিতে পরিবর্তন করে না)।
n.st

1
কার্যকারী ডিরেক্টরিটি বর্তমান ফাইল / বাফার ডিরেক্টরিতে স্বয়ংক্রিয়ভাবে পরিবর্তন করতে, আপনার ভিআরসিআরিতে নিম্নলিখিত লাইনটি যুক্ত করুন:set autochdir
n.st

1
আমি এই সম্পর্কে vim_dev করতে ... আপাতদৃষ্টিতে এটি একটি জায়গা যেখানে ডিফল্ট (এবং shellxquote এমনকি বাড়ানো "(মান ব্যর্থ এর পোস্ট করা হয়েছে। Groups.google.com/d/topic/vim_dev/sG2d6d3cPwg/discussion আমি কার্যসংক্রান্ত যে বলে মনে হয় পোস্ট উত্তর হিসাবে এই আদেশের জন্য কাজ করুন
বেন

উত্তর:


1

আপনি সাময়িকভাবে (বা স্থায়ীভাবে) একক উদ্ধৃতি চরিত্রের মতো 'শেলেক্সকোট' সেট করার চেষ্টা করতে পারেন like :set shellxquote=\"

দ্রষ্টব্য যে এটি &, |, <,> ইত্যাদি ইত্যাদির (বিশেষত শেলক্সেস্কেপের সমস্ত জিনিস ডিফল্টরূপে) ব্যবহার করে কিছু বাহ্যিক কমান্ড ভেঙে দেবে, সুতরাং আপনাকে এটির মানটি ছেড়ে না যেতে হতে পারে। তবে, দেখে মনে হচ্ছে এটি এমন এক জায়গা যেখানে ভিম .3.৩.৪৫০ থেকে ডিফল্ট শেলক্সকোয়েটের মানটি নষ্ট হয়ে গেছে।

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