ভিএম-তে বর্তমান অবস্থানে একটি সিস্টেম কমান্ডের আউটপুট প্রবেশ করান


33

ভিমে, যখন আমি ব্যবহার করি

:r !ls somefilename

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

যদি আমি করি

let @a = system("ls")

এবং পরে

"ap

এটি এখনও বর্তমান লাইনের নীচে একটি নতুন লাইনে আউটপুট সন্নিবেশ করায়।

বর্তমান অবস্থানে ভিএম sertোকানো আউটপুট করার কোনও উপায় আছে?


এই দরকারী উত্তরটি দেখুন
রেফ ভিএম

উত্তর:


14

Trোকানো মোডে (এবং অন্যান্য বাফারগুলির জন্য অনুরূপ পদ্ধতির) জন্য আপনি ক্লিপবোর্ড বাফারের সামগ্রীগুলি Ctrl-R * এর সাথে অক্ষরগুলির মধ্যে পেস্ট করতে পারেন। সুতরাং আপনি যদি সিস্টেম কমান্ডটি একটি বাফারে পেতে পারেন তবে আপনাকে সেট করা উচিত। (উত্স: https://stackoverflow.com/questions/1491135/paste-m Multi- line- string- into- gvim- at- cursor- position )।

:let @a=system("ls -l")আউটপুট ls -lরেজিস্টার করা হবে a। তারপরে আপনি এটি দিয়ে (সন্নিবেশ মোডে) পেস্ট করতে পারেন ^R-a


এছাড়াও, বেশিরভাগ প্ল্যাটফর্মে ক্লিপবোর্ডটি একটি নিবন্ধকের সাথে সিঙ্ক হয় (সাধারণত *) তাই আপনি যদি আপনার কমান্ড আউটপুটটিকে আপনার ক্লিপবোর্ডে পাইপ করেন তবে এটি আপনাকে "*ব্যবহার করার জন্য থাকবে।
ব্রুনো ব্রোনোস্কি 21

39
:r !command 

কমান্ড থেকে আউটপুট পড়বে এবং এটি বর্তমান লাইনের নীচে লাইনে সন্নিবেশ করবে। Vi কে এইভাবে প্রোগ্রাম করা হয় আপনি আচরণ পরিবর্তন করতে পারবেন না।

কিন্তু যদি বলি আপনি লাইন সংখ্যা 3 আপনি চেষ্টা করুন :r !date। এটি 4 নম্বর লাইনে তারিখের মান সন্নিবেশ করবে।

আপনি যদি চান যে তারিখের মানটি 3 নং লাইনে প্রদর্শিত হবে, তবে আপনি চেষ্টা :2r !dateকরবেন 3 নং লাইনে তারিখের মান sert োকানো হবে।


4
এটি একটি আলাদা লাইনে সন্নিবেশ করায়, তবে এখনও এটি নিজস্ব লাইনে on আমি এটি বর্তমান অবস্থানে toোকাতে চাই!
দেশমুখ

13

কার্সারের আগে বহিরাগত কমান্ড থেকে আউটপুট আটকানোর বিকল্প উপায়:

:exe 'norm i' . system("ls -l")

বা এক্সপ্রেশন রেজিস্টার ব্যবহার করুন ( :help @=):

"=system('ls -la')

তারপর আঘাত P। বা এর মাধ্যমে আরও ছোট:

<CTRL-R>=system('ls -la')<CR>

4
এই উত্তর।
জ্যাকব

1
একমত! এটি সত্যই সঠিক উত্তর হওয়া উচিত, কারণ এতে আরও একটি প্রোগ্রাম্যাটিক সমাধান রয়েছে (সহ :exe) যা কমান্ডগুলিতে অন্তর্ভুক্ত করা যেতে পারে can
রূপান্তর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.