শেল থেকে ভিএম কমান্ড কিভাবে চালানো যায়?


12

এটি বোবা প্রশ্ন হতে পারে তবে আমার সাথে সহ্য করুন।

আমি নতুন কাজের পরিবেশ স্থাপনের সময় আমি যে কিছু সাধারণ জিনিস করি তা স্বয়ংক্রিয় করছি এবং Vim কমান্ডটি :BundleInstall(আমার সমস্ত ভিম প্লাগইন ইনস্টল করার জন্য) স্বয়ংক্রিয় করতে চাই ।

শেল থেকে এটি চালানো কি সম্ভব?

বিকল্পভাবে, স্ক্রিপ্টটি ভিম চালানো :BundleInstall, সম্পাদন করা, এটি শেষ না হওয়া এবং অপেক্ষা না করা পর্যন্ত অপেক্ষা করা সম্ভব ?

ধন্যবাদ।

উত্তর:


14

থেকে vim(1)মানুষ পৃষ্ঠা:

+ + {কমান্ড}

-c {আদেশ

প্রথম ফাইলটি পড়ার পরে {কমান্ড exec কার্যকর করা হবে। {কমান্ড একটি এক্স কমান্ড হিসাবে ব্যাখ্যা করা হয়। যদি {কমান্ড স্পেস থাকে তবে এটি অবশ্যই ডাবল কোটে আবদ্ধ থাকতে হবে (এটি ব্যবহৃত শেলের উপর নির্ভর করে)। উদাহরণ: Vim "+ set si" main.c

দ্রষ্টব্য: আপনি 10 "+" বা "-c" কমান্ড ব্যবহার করতে পারেন।


3
ধন্যবাদ! আমি জানতাম আমি বোবা বোধ করব ...: - / সঠিকভাবে ম্যানপেজটি না পড়ার জন্য আমাকে সঠিকভাবে পরিবেশন করে। আমি ব্যবহার শেষ vim +BundleInstall +qall!
ইম্পিরিক

4

আপনি আপনার আদেশটি এভাবে কার্যকর করতে পারেন:

vim -E -c BundleInstall -c q

যা আপনার টার্মিনালে একটি ভিম উইন্ডো খোলার এড়াবে।

দ্রষ্টব্য: আমার প্রথম উত্তরে -sআমি অন্য অ্যাপ্লিকেশনটির জন্য আমার প্রয়োজনীয় অপশনটি অন্তর্ভুক্ত করেছি তবে এটি এখানে ভুল ছিল কারণ এটি BundleInstallকমান্ডকে সংজ্ঞায়িত করে এমন প্লাগইনটি স্রোসিং সহ ভিমের অন্তর্নিহিতকরণকে অনেকটা প্রতিরোধ করেছিল ।


1
ধন্যবাদ, তবে কিছু কারণে এটি আমার পক্ষে কার্যকর হবে না।
ইমেরিক

1
এখন দেখছি কেন। আমি ভুলে গিয়েছি যে -sনির্দিষ্ট বার্তাগুলি বাধা দেওয়ার চেয়ে বেশি কিছু করে - এটি ইনটালাইজেশনগুলিকে বাধা দেয় - তাই বুঁদলইনস্টল এর সংজ্ঞাটি উত্সর্গীকৃত হয়নি। ফিক্স করার এক উপায় যে প্রথম এই মত একটি বিকল্প যোগ হবে -c: --cmd 'runtime plugin/bundle.vim'। মামলা ফাইলের নাম অনুসারে সম্পাদনা করুন। দেখুন :help -s-ex
গ্যারিজহান

2

যদিও উপরের ভিএম নির্দিষ্ট রেসিপিটি এটি করার সঠিক উপায়, আপনি সর্বদা অটোএক্সেক্টের মতো আরও সাধারণ পদ্ধতির ব্যবহার করতে পারেন ।


0

আপনি যে পরিস্থিতিটি সম্পূর্ণরূপে লোড করে নেওয়ার প্রয়োজন সেই পরিস্থিতিতে যেমন আপনি নিজেই এটি শুরু করেছিলেন, এটি কাজ করে:

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"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.