একটি বাফার সামগ্রী পান


15

সুতরাং buffer-stringবর্তমান বাফার বিষয়বস্তু পায়। তবে এটি অন্যান্য বাফারগুলি নির্দিষ্ট করার অনুমতি দেয় না।

আমি কিভাবে এটি কাছাকাছি পেতে পারি? আমার save-window-excursionএটির কাজ করার মতো কিছু দরকার ?


আপনি যদি আমাকে জিজ্ঞাসা করতে আপত্তি না করেন তবে আপনি কী করার চেষ্টা করছেন?
লুক শিমকাস

@ কিং আমি একটি অ্যাসিক্রোনাস প্রক্রিয়া তৈরি করছি এবং আমি বাফার সামগ্রীটি এটি স্ট্যান্ডার্ড ইনপুট হিসাবে প্রেরণ করতে চাই। আমি বুঝতে পারি আমি ব্যবহার করতে পারি process-send-stringএবং আমি আটকে গেলাম।
ম্যাকিয়েজ গোসকিজিকি

উত্তর:


25

ইমাক্সে প্রচুর পরিমাণে বর্তমান বাফারে কাজ করে। আপনার বর্তমান বাফারটি পরিবর্তন করতে হবে এবং আপনার কাজ শেষ হয়ে গেলে এটি পুনরুদ্ধার করতে হবে। ব্যবহারের with-current-bufferসহজ ক্ষেত্রে যেখানে আপনি শুধু এবং অন্য বাফারে কিছু করতে হবে, এর জন্য save-current-bufferআরো জটিল ক্ষেত্রে যেখানে আপনাকে অনেকগুলি বাফার মধ্যে নেভিগেট করতে প্রয়োজন।

(defun buffer-string* (buffer)
  (with-current-buffer buffer
    (buffer-string)))

আপনি যদি বৈশিষ্ট্য ছাড়াই বাফারের পাঠ্য সামগ্রী চান তবে কল করুন buffer-substring-no-properties

buffer-stringকেবল বাফারের সংকীর্ণ অংশটি ফেরত দেয়। আপনার যদি পুরো সামগ্রীর প্রয়োজন হয় তবে সংকীর্ণতা সংরক্ষণের পরে এটি আরও প্রশস্ত করুন।

(defun buffer-whole-string (buffer)
  (with-current-buffer buffer
    (save-restriction
      (widen)
      (buffer-substring-no-properties (point-min) (point-max)))))

আপনার যদি পয়েন্টটি সংরক্ষণ করার প্রয়োজন হয় তবে save-excursionপাশাপাশি কল করুন । মনে রাখবেন যে save-excursionকেবলমাত্র বাফারে পয়েন্টটি পুনরুদ্ধার করুন, সুতরাং আপনার যদি অন্য কোনও বাফারে স্যুইচ করতে হয় এবং সেখানে ঘুরতে চান তবে save-excursionভিতরে কল করুন save-current-bufferবা with-current-buffer

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