ভিমে বাইরের কমান্ডে বাফারটি পাইপ করা হচ্ছে


94

আমি এক ধরনের ভিম আভিজাত্য। আমি বর্তমান বাফারের সামগ্রীগুলি বাইরের কমান্ডের স্টিডিনে প্রেরণ করতে চাই (মেল বলতে পারি)। আমার চূড়ান্ত উদ্দেশ্য হ'ল বর্তমান ভিম বাফার থেকে দ্রুত ইমেল প্রেরণের জন্য একটি শর্টকাট সেট করা। আমি অনুমান করছি এটি একটি তুচ্ছ জিনিস হওয়া উচিত, তবে আমি বাইরের কমান্ডে ভিম বাফারটি প্রেরণের কোনও উপায় খুঁজে পাইনি। আগাম ধন্যবাদ.


STDINশেল কমান্ড হিসাবে নির্বাচিত পাঠ্য সরবরাহের জন্য সম্পর্কিত প্রশ্নগুলি : তথ্য লাইনে শেল এবং পাইপ পাইপ এবং নির্বাচিত মূল পাঠ্যটি আউটপুট দিয়ে প্রতিস্থাপন করুন
user1129682

উত্তর:


135

আপনি :w !cmdএকটি বাহ্যিক কমান্ডের স্টিডিনে বর্তমান বাফারটি লিখতে ব্যবহার করতে পারেন । থেকে :help :w_c:

: [রেঞ্জ] ডাব্লু [অনুষ্ঠান] [++ অপ্ট]! {সেমিডি}

সম্পাদন {cmd}সঙ্গে [range]মান ইনপুট (সামনে স্থান মনে রাখবেন যেমন লাইন '!')। {cmd}এর সাথে মৃত্যুদন্ড কার্যকর করা হয় ":!{cmd}", যে কোনও '!'পূর্ববর্তী কমান্ডের সাথে প্রতিস্থাপিত হয় |:!|

একটি সম্পর্কিত কমান্ড :%!cmdযা একই কাজ করে এবং তারপরে কমান্ডের আউটপুট সহ বর্তমান বাফারকে প্রতিস্থাপন করে। সুতরাং :%!sortবর্তমান বাফারটিকে যথাযথভাবে সাজানোর জন্য বাহ্যিক সাজানোর কমান্ডটি চাওয়া হবে।


6
এটি জসনকে ফর্ম্যাট করতে দরকারী: :'<,'>!python -mjson.toolবা:%!python -mjson.tool
ট্রিনিট্রনএক্স

4
ফর্ম্যাট করার জন্য, :%!gofmtসর্বশেষ ব্যতীত ব্যবহার করুন %, কারণ এটি সেভ সংস্করণ (যা বর্তমান বাফার থেকে পৃথক হতে পারে) ব্যবহার করতে পারে
থোমাসরুতের

কেবলমাত্র সাফল্যের সাথে কমান্ড আউটপুট দিয়ে বর্তমান বাফারটি প্রতিস্থাপনের কোনও উপায় আছে কি ? যদি কমান্ডটি শূন্য -হীন ফিরে আসে, বাফারটি প্রতিস্থাপন করবেন না?
থোমাসরুটটার

@ থমাসর্টটার যদি বাফারটি উদ্দেশ্যভিত্তিক আউটপুটটির পরিবর্তে একটি ত্রুটি বার্তা দ্বারা প্রতিস্থাপন করা হয় তবে আপনি কেবল uপূর্বাবস্থার জন্য চাপতে পারেন
t --rzsmókus

1

কমান্ড লাইন থেকে বাহ্যিক স্টিডিনে বর্তমান বাফারটি কীভাবে প্রেরণ করা যায় তা উদাহরণস্বরূপ:

vim -es +"w >> /dev/stdout" -cq! /etc/hosts

এটি স্ক্রিপ্টিংয়ের জন্য দরকারী।

আরও কমান্ড-লাইন কৌশলগুলির জন্য, পরীক্ষা করুন:

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