ভিমে, কমান্ড-লাইন থেকে আউটপুট দখল করার একটি দুর্দান্ত উপায় কী?


14

যদি আমি ভিমে থাকি এবং কমান্ড-লাইন থেকে কিছু আউটপুট পেতে এবং এটি আমার বর্তমান ফাইলে সন্ধান করতে চাই তবে আমি এটি চালাতে পারি:

:! echo "foo" >> %

এটি আমার বর্তমান ফাইলটিতে "ফু" যুক্ত করবে এবং আমাকে পুনরায় লোড করতে হবে।

এটি করার আরও কি আরও সুন্দর উপায় আছে - উদাহরণস্বরূপ, কি আউটপুটটি এমন একটি বাফারে যায় যা আমি পেস্ট করতে পারি?

উত্তর:


24

হ্যাঁ:

:r !echo "foo"

দেখা

:help :r!

এটি বর্তমান লাইনের পরে কমান্ডের আউটপুট সন্নিবেশ করবে। আপনি যদি কাস্ট করতে চান এমন কমান্ড আউটপুট যা আপনি আটকে দিতে পারেন, আপনি এটি করতে পারেন:

:let @a = system('echo "foo"')

এখন কমান্ডের আউটপুট (ট্রেলিং নিউলাইন সহ) রেজিস্টারে রয়েছে a। দেখা

:help let-@
:help system()

সহায়তাটি এবং পরীক্ষার পরে, আমি দেখতে পাচ্ছি যে 1) :r"পড়ুন" এর জন্য সংক্ষিপ্ত (যাতে আপনি 'পড়ুন' বা কেবল 'আর' টাইপ করতে পারেন এবং এটি একই কমান্ড), এবং 2) :r path/to/foo.txtএর সামগ্রীগুলি সন্নিবেশ করানো হবে কার্সার পরে ফাইল।
নাথান লং

এছাড়াও - আমি systemকল সম্পর্কে জানতাম না । সেটা খুবই ভালো!
নাথান লং

1
আমি নিজেও জানতাম না আপনি ম্যানুয়ালি রেজিস্টার সেট করতে পারবেন let @a = 'foo'। একটি দুর্দান্ত ধারণাটি হ'ল, অনুসন্ধান এবং প্রতিস্থাপনের পরে, আপনি অনুসন্ধানের শব্দটি অন্য কোনও জায়গায় পেস্ট করার জন্য কোনও রেজিস্টারে সংরক্ষণ করতে পারেন let @a = @/- "নিবন্ধকে আমার / শেষ নিবন্ধে থাকা / নিবন্ধকের মধ্যে থাকা বিষয়টিকে অন্তর্ভুক্ত করে দিন" "
নাথান লং

1
@ নাথান লং: আপনাকে স্বাগতম। / রেজিস্টার থেকে পেস্ট করার অন্যান্য উপায় হ'ল 1) :put /পরের লাইনে নিবন্ধের বিষয়বস্তু স্থাপনের জন্য কার্যকর করা এবং 2) সন্নিবেশ মোডে, Ctrl-R টাইপ করুন এবং অনুসরণ করে /কার্সার অবস্থানে নিবন্ধের বিষয়বস্তু সন্নিবেশ করান। তাদের আরও তথ্যের জন্য, দেখুন :help :putএবং :help i_CTRL-R
গ্যারিজোহান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.