উত্তর:
হ্যাঁ, উদাহরণস্বরূপ, যদি আপনি এটি করতে চান তবে ls
চেষ্টা করুন:
:!ls
শেল স্প্যান করতে, ব্যবহার করুন
:shell
:w !sudo tee %
nano
আমি ctrl+z
ভিআই ঘুমানোর জন্য ব্যবহার করি, শেলটিতে আমার যা প্রয়োজন তা চালাই, তারপরে fg
vi শুরু করতে। আপনার প্রশ্নের সঠিক উত্তর নয়, তবে আমি এটি কাজ করার খুব দ্রুত উপায় বলে মনে করি।
আপনি যদি ভুলে যান না যে আপনার ব্যাকগ্রাউন্ডে vi আছে (আপনি যখন ব্যস্ত ctrl+d
থাকবেন তখন এটি ঘটতে পারে), আপনি যখন শেলটি ব্যবহার করে লগ আউট করার চেষ্টা করবেন তখন আপনাকে সতর্ক করা হবে যে আপনার ব্যাকগ্রাউন্ড কাজ চলছে, এবং আপনি সেগুলি বন্ধ করতে পারেন, অথবা লগ আউট করতে আবার সিটিআরএল + ডি চাপুন। এছাড়াও, আপনি যদি একই ফাইলটি a
আবারও খোলার চেষ্টা করেন তবে আপনি পুনরুদ্ধারের সতর্কতা পান, তাই আপনি বাতিল করতে চাপতে পারেন, এবং vi এ ফিরে যেতে fg চালাতে পারেন।
যেহেতু আপনি "স্টাডআউট পান" উল্লেখ করেছেন, আপনি খেয়াল রাখতে পারেন তা নোট করুন
:r! command
এবং কমান্ডের আউটপুট ফাইল যুক্ত করা হবে, বা
:<range>!command
কমান্ডের মাধ্যমে পরিসরের বিষয়বস্তু ফিল্টার করার জন্য [যেমন :1,$!wc
]
:%!command
দেখতে বেশ দরকারী
:.,+20 !sort
]
আমার পছন্দের প্রতিমাটি হ'ল
!!command
যা সংক্ষিপ্ত
:.!command
যা কমান্ডের মাধ্যমে বর্তমান লাইনটি পাইপ করে এবং আউটপুটটিকে ফাইলে সন্নিবেশ করে। আমার পক্ষে সর্বাধিক সাধারণ বিষয় হ'ল কমান্ডটি ভিআই দিয়ে চালানো এবং চালানো:
!!sh
অথবা
!<motion>command
যেমন (উদাহরণস্বরূপ)
!apsh
শেল মাধ্যমে বর্তমান অনুচ্ছেদ পুরো চালাতে।
!}
অনুচ্ছেদের শুরুতে আপনার অবস্থানের জন্য নোট , চেষ্টা করুন !ap
। (আমি জানি না এটি প্রতিটি vi বা কেবল vim এ আছে)
কোলন এবং বিস্ময়কর বিন্দু ব্যবহার করে আপনি শেল পাথ এবং শেল স্ক্রিপ্টগুলিতে যে কোনও কমান্ড চালাতে পারেন, মনে রাখবেন যে কমান্ডটি vi / vim প্রোগ্রামটি চালাচ্ছে এবং তার পরিবেশ ব্যবহার করে ব্যবহারকারীর অধীনে চলে।
:!<command>
যেহেতু vi চালিত হওয়ার সময় কার্যকর পরিবেশ কার্যকর হয়েছিল তাই এটি প্যারেন্ট কমান্ডে একই পথ ব্যবহার করে। মনে রাখবেন যে কয়েকটি শাঁস প্রোগ্রামগুলিতে একটি ক্যাশে রাখে এবং vi এই ক্যাশে (এটি যে শেলটি ব্যবহার করে এবং এটির সংস্করণ নির্ভর করে) এর সাথে কাজ করতে পারে না, সুতরাং আপনার আরও কিছু ক্ষেত্রে ভুল বাইনারি চালিয়ে যেতে পারেন একই নামের এক বাইনারি চেয়ে।
আমার .vimrc এ এটি আছে। কিছুক্ষণ আগে স্ট্যাক ওভারফ্লোতে পাওয়া গেছে:
" Executes the current line in a bash shell; syntactically similar to slimv's ,d feature
:nmap ,,d Y:!<C-R>"<C-H><CR>
আমি লিনাক্সে দুটি টার্মিনাল কমান্ড লাইন উইন্ডো খোলার মাধ্যমে একটিতে vi চালিয়ে অন্যটি একই সাথে অন্য কাজের জন্য উপলব্ধ হয়ে সহজেই এটি পেতে পারি।