একটি বিভক্ত ফলকে একটি শেল কমান্ডের আউটপুট খুলুন


23

যে কোনও ব্যাখ্যািত প্রোগ্রামিং ভাষা বিবেচনা করুন।

আমি ব্যবহার করে বর্তমানে খোলা স্ক্রিপ্টটি চালাতে পারি ! interpreter %এবং এক্সিকিউশন শেষ হয়ে গেলে ভিমে ফিরে আসতে রিটার্ন কীটি ব্যবহার করতে পারি।

সম্পাদিত শেল কমান্ডের আউটপুট দিয়ে বর্তমান উইন্ডোটি প্রতিস্থাপন না করে পরিবর্তে নতুন স্প্লিট ফলকে আউটপুটটি খোলা কি সম্ভব? আমি আমার স্ক্রিপ্টটি কার্যকর করার সময় আমার উত্স কোডটি দেখতে চাই।

আমি চেষ্টা করেছি :split ! interpreter %, কিন্তু কাজ হয়নি।

কোন উপায় আছে? আমি ভিএম 7.3 ব্যবহার করছি।

উত্তর:


29

এর সাথে :!, বাহ্যিক কমান্ডটি শেলের মধ্যে কার্যকর করা হয়, এবং বহরের বহির্গমন আউটপুট ভিমের অভ্যন্তরে ধরা পড়ে না; আপনি কেবল টার্মিনালে কী মুদ্রিত হবে তা দেখুন, তারপরে বাহ্যিক কমান্ড শেষ হওয়ার পরে ভিমে ফিরিয়ে আনুন নিয়ন্ত্রণ করুন।

আউটপুটটি ধরে রাখতে, আপনাকে এটি একটি ভিম বাফারে পড়তে হবে । তার জন্য, :read!কমান্ড আছে। একটি নতুন স্ক্র্যাচ বাফার খুলতে, এটির সাথে একত্র করুন :new:

:new | 0read ! <command>

আপনি যদি বর্তমান বাফারের ফাইলের নামটি ( %) বাহ্যিক কমান্ডের কাছে দিতে চান তবে আপনাকে ব্যবহার করতে হবে :execute, যাতে এটি ইতিমধ্যে বর্তমান বাফারে মূল্যায়ন করা হয়:

:execute 'new | 0read ! interpreter' expand('%')

অথবা, আপনি এই সত্যটি ব্যবহার করেন যে একটি নতুন বাফার দিয়ে পূর্বেরটি বিকল্পটি হয়ে যায় এবং #পরিবর্তে ব্যবহার করুন %:

:new | 0read ! interpreter #

এর সাথে স্ক্র্যাচ বাফার থেকে মুক্তি পান :bdelete!

আউটপুটটি কার্যকর হওয়ার সময় আপনি যদি অযৌক্তিকভাবে দেখতে চান তবে @ চাওস উত্তরে উল্লিখিত আপনার একটি বাহ্যিক মাল্টিপ্লেক্সার বা একটি প্লাগইন প্রয়োজন।


উপরের ": এক্সিকিউট করুন ..." কমান্ডটি আমার পক্ষে কাজ করে, তবে যখন আমি এটিকে F9 কীস্ট্রোকের সাথে আবদ্ধ করার চেষ্টা করি, তখন এই .vimrc এন্ট্রিটি ব্যবহার করে [nnoremap <buffer> <F9>: এক্সিকিউট করুন 'নতুন | 0 পড়ুন! / Usr / bin / env পাইথন 3 'প্রসারিত ('% ')]], আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: [/ বিন / ব্যাশ: -সি: লাইন 0: matching' 'প্রসারিত ('% ') এর সাথে মিল রেখে অপ্রত্যাশিত ইওএফ )]। আমি বেশ কয়েকটি পালানোর সিকোয়েন্স চেষ্টা করেছি, তবে আমার ধারণা সঠিক নয়। = :)। কোন ধারনা? ধন্যবাদ.
এনওয়াইসিজেস

2

আমি যতদূর জানি, আপনি এটি করতে পারবেন না vim। তবে এর জন্য টার্মিনাল মাল্টিপ্লেক্সার ব্যবহার করুন screen। ভিম খোলার আগে মাল্টিপ্লেক্সার শুরু করুন:

screen

তারপরে ctrl- a Sঅনুভূমিকভাবে ছড়িয়ে পড়া স্ক্রিনের জন্য ctrl- হরিটিজোটোনালের জন্য এবং a |টিপুন।

এখন vimবিভক্ত স্ক্রিনগুলির মধ্যে একটিতে একটি ফাইল খুলুন । এবং ctrl- ব্যবহার করে অন্য স্ক্রিনে ঝাঁপুন a tab। লক্ষ্য করুন, দ্বিতীয় স্ক্রিনে আপনাকে প্রথমে নতুন স্ক্রিনটি খুলতে হবে ( ctrl- a c) এটি ব্যবহার করার আগে।

ভিমে স্ক্রিনে আপনি ফাইলটি সম্পাদনা করতে পারবেন এবং অন্য স্ক্রিনে আপনি এটিকে সম্পাদন করতে পারবেন এবং বার্তা এবং কোড স্থায়ীভাবে দেখতে পাবেন।

একটি এখানে দ্রুত রেফারেন্স জন্য screen


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