উত্তর:
এটি ঘটে, কারণ সাধারণত ভিম বিকল্প স্ক্রিনে স্যুইচ করে এবং সেখানে কাজ করে। প্রস্থান করার পরে, ভিমটি আবার স্যুইচ করবে এবং অতএব আপনি আপনার ভিম অধিবেশন থেকে কিছু অবশিষ্ট দেখতে পাচ্ছেন না, তবে কমান্ডের ফলাফল ভিম শুরু করার আগেই কার্যকর করা হয়েছে।
এই বৈশিষ্ট্যটি (লিঙ্ক) এ ব্যাখ্যা করা হয়েছে:h xterm-screens
সুতরাং আপনি মূলত এটি চান না এবং তাই এটি অক্ষম করতে চান। আপনি :set t_ti= t_te=খালি এটি সম্পাদন করে এমন টার্মিনাল কোডগুলি সেট করে , এটি করতে পারেন।
সব কিছু একসাথে রেখে, আপনি এইভাবে ভিম শুরু করতে চান:
vim -c ':set t_ti= t_te= nomore' -c 'scriptnames|q!'
আমরা 'more'বিকল্পটি পুনরায় সেট করছি , যাতে আপনি হিট-এন্টার-প্রম্পটটি দেখতে না পান।
lessরয়েছে। কেবল এটির মতো কম পাইপ করুন vim -c ':set t_ti= t_te= nomore' -c 'scriptnames|q!' | less। লেআউটটি প্রথমে স্ক্রু আপ হতে পারে (এটি আমার টার্মিনালে রয়েছে), তবে <CL> টিপানোর পরে সবকিছু সুন্দর এবং জঘন্য।
vim -c ':set t_ti= t_te= nomore' -c 'scriptnames|q!', কেবলমাত্র একটি "দ্রুত ফ্ল্যাশ" রয়েছে, কোড 0 সহ কমান্ড প্রস্থান করুন, আউটপুট নেই। আমি কিছু অনুপস্থিত করছি?
আমি ক্রিশ্চিয়ান ব্র্যাব্যান্ডের দেওয়া উত্তরটির প্রশংসা করি তবে আমি মনে করি এর থেকে আরও ভাল উত্তর হ'ল এইভাবে অন্য-সি কমান্ডটি ব্যবহার করে ছাড়ার আদেশটি আলাদা করা:
vim -c ':set t_ti= t_te= nomore' -c 'scriptnames' -c 'q!'
এই পদ্ধতিটি ব্যবহার করার অর্থ হ'ল আপনি এক সাথে বিভিন্ন কমান্ডের একসাথে স্ট্রিং করতে পারবেন এবং তারপরে চূড়ান্ত 'কিউ' ব্যবহার করতে পারবেন! ভিএম বাইরে বেরোতে।
আপনি যে পরিস্থিতিটি সম্পূর্ণরূপে লোড করে নেওয়ার প্রয়োজন সেই পরিস্থিতিতে যেমন আপনি নিজেই এটি শুরু করেছিলেন, এটি কাজ করে:
vim -c "autocmd! CursorHold * <commands to run>"
উদাহরণস্বরূপ, আমি :mapশেল থেকে কোনও ফাইলের আউটপুট পুনর্নির্দেশ করতে চেয়েছিলাম , কিন্তু আমি ভিএম -এয়ারলাইনটির ম্যাপিংটি ক্যাপচার করতে চেয়েছিলাম যা এটির ট্যাবলাইন প্রদর্শিত হবে (উপরে শীর্ষে রেখাঙ্কনটি সমস্ত বাফারনাম খোলা আছে)) কারণ এটি মনে হচ্ছে এই অবিচ্ছিন্নভাবে, কেবল -cকোনও ফাইলের পুনর্নির্দেশ চালানো ম্যাপিংগুলিকে সময় দেয়নি। আরও ভাল উপায় হতে পারে, তবে এটি আমার পক্ষে কাজ করে, বিশেষত যেহেতু আমি ইতিমধ্যে (০.০ সেকেন্ড) updatetimeসেট করে রেখেছি 100, যা CursorHoldইভেন্টটি চালিত হওয়া অবধি কতক্ষণ প্রভাবিত করে । ডিফল্টরূপে, ভিম এটিকে 4 সেকেন্ডে সেট করে।
vim -c "autocmd! CursorHold * set nomore | redir! > mapNew | map | redir END | q"