Vi / vim এ, আমি কোনও ফাইলের ওভাররাইটের পরিবর্তে কীভাবে যুক্ত করব?


11

আমি জানি আমি কেবল কোনও ফাইল দিয়ে লিখতে পারি :w <file>। আমি কীভাবে কোনও ফাইলকে ওভাররাইট করার পরিবর্তে এটিতে যুক্ত করে কীভাবে লিখতে পারি তা জানতে চাই।

উদাহরণ ব্যবহারের ক্ষেত্রে: আমি লগ ফাইলের বাইরে কিছু ফর্ম নমুনা অন্য কোনও ফাইলে নিতে চাই। আজ তা অর্জন করতে আমি করতে পারি:

  1. লগ ফাইল খুলুন
  2. এর সাথে কিছু লাইন নির্বাচন করুন Shift+v
  3. একটি ফাইল লিখুন: :w /tmp/samples
  4. এর সাথে আরও কয়েকটি লাইন নির্বাচন করুন Shift+v
  5. সংযোজন করতে /tmp/samplesসঙ্গে:w !cat - >> /foo/samples

দুর্ভাগ্যক্রমে 5 ধাপ দীর্ঘ, কুরুচিপূর্ণ এবং ত্রুটির প্রবণ (একটি অনুপস্থিত >আপনাকে ডেটা হারাতে পারে)। আমি আশা করি এখানে ভিমের আরও ভাল কিছু আছে।


3
আপনি যদি ভিমকে আরও ভালভাবে ব্যবহার করতে আগ্রহী হন তবে চেকআউট বোন সাইট ভি এবং ভিম করুন
মুড়ু

উত্তর:


26

থেকে :h :w:

                                                :w_a :write_a E494
:[range]w[rite][!] [++opt] >>
                        Append the specified lines to the current file.

:[range]w[rite][!] [++opt] >> {file}
                        Append the specified lines to {file}.  '!' forces the
                        write even if file does not exist.

সুতরাং, আপনি যদি ভিজ্যুয়াল মোড ব্যবহার করে পাঠ্যটি নির্বাচন করে থাকেন তবে কেবল করুন :w >> /foo/samples( :'<,'>স্বয়ংক্রিয়ভাবে চাপ দেওয়া হবে)। আপনি যদি >এটিকে বাদ দেন , ভিম অভিযোগ করবেন:

E494: Use w or w>>

এটি নিখুঁত :) ডক্সটি পড়ার মতো কিছুই নয়। :hযদিও সম্পর্কে জানেন না । এটি আরও ব্যবহার করবে
ব্রুনো পোলাকো

1
@BrunoPolaco :hজন্য শুধু সাঁটে লেখার হয় :help। দিয়ে শুরু :help helphelp? : ডি
মুড়ু

0

একটি ফাংশন সংজ্ঞায়িত করুন:

fun! App(filename)
    exec "w !cat - >> " . shellescape(a:filename)
endfunc

একটি ফাংশন কল করুন:

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