একটি ফাইলে বাফারের একটি অনুলিপি কীভাবে সংরক্ষণ করবেন?


9

আমি বাফারের একটি অনুলিপি (বা একটি স্ন্যাপশট) একটি ফাইলে সংরক্ষণ করতে সক্ষম হতে চাই। আচরণটি এই জাতীয় ফাইলটি দেখার জন্য বাফার সেট নাwrite-file করে ব্যতীত অনুরূপ হবে।

ইউজকেসটির জন্য, কল্পনা করুন যে আপনার শেল সেশন রয়েছে এবং আপনি এটি দ্রুত কোনও লগ ফাইলে সংরক্ষণ করতে চান। বাফারটির নতুন নামকরণ করা উচিত নয় (যাতে বাফার নামের উপর নির্ভর করে ফাংশনগুলি এখনও কাজ করে), এবং এটি কোনও ফাইলের পরিদর্শন করা উচিত নয় (যাতে ফাইলটি দুর্ঘটনাক্রমে ওভাররাইট করা না হয় এবং ইমাকগুলি প্রস্থান করার সময় কোনও সতর্কতা থাকে না)।

আমি এটি করার কয়েকটি নোংরা উপায়গুলি কল্পনা করতে পারি, আমি এটি একটি স্ব-উত্তর হিসাবে পোস্ট করব, তবে ম্যানুয়াল থেকে পড়া, পুরো "ভিজিট করা ফাইল" সিস্টেমটি দেখতে যত জটিল তার চেয়ে জটিল, এবং আমি অনুমান করি যে এটি একটি খসড়া তৈরি করা সহজ is ভুল সমাধান। এটি অর্জনের কোনও লুকানো, অন্তর্নির্মিত উপায় আছে?

উত্তর:


18

কেবলমাত্র পুরো বাফার ( C-x h) নির্বাচন করুন এবং ব্যবহার করুন write-region


3
আপনি যদি write-regionলিস্প (যেমন আপনার নিজের কমান্ডে) থেকে ব্যবহার করে থাকেন তবে আপনাকে বাফার পাঠ্য নির্বাচন করার দরকার নেই । কেবলমাত্র এটি পাস করুন (point-min)এবং (point-max)ফাইলের নাম সহ।
ড্রিউ


নির্বাচিত বাফার এবং আসল M-x write-regionকমান্ডের জন্য আপনাকে ধন্যবাদ ।
গ্রান্ট বোম্যান

0

elispআমি যা করতে চাই নোংরা করছে:

(defun tv/copy-buffer-to-file (filename)
  (interactive "sFile to write? ")
  (let ((bufname (buffer-name)))
    (set-visited-file-name filename)
    (save-buffer)
    (set-visited-file-name nil)
    (rename-buffer bufname)))

এটি প্রয়োজনের তুলনায় অনেক বেশি ঝামেলার মতো দেখায়, যেহেতু আমাদের দেখা ফাইল এবং বাফার নাম উভয়েরই যত্ন নিতে হবে এবং আমরা নিশ্চিত হতে পারি না যে আমরা অন্য কিছু ভুলে যাইনি।

নতুন বাফারে বাফার পাঠ্যটি অনুলিপি করার সাথে সম্পর্কিত অন্যান্য সমাধানগুলি, তবে সেই বাফারটি সংরক্ষণ করা এবং হত্যা করা সম্ভবত আরও ভাল কাজ করবে, তবে আমি তখন বড় বাফারগুলির সাথে পারফরম্যান্সের সমস্যা নিয়ে চিন্তিত হতে পারি।

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