কীভাবে এডিফের বাফারগুলিকে ছাড়তে হবে?


9

কীভাবে (সিক্স কে) এডিফের (এ, বি, সি) বাফারগুলি স্বয়ংক্রিয়ভাবে প্রতিটিটিতে মারা যায় ediff-quit?


উইন্ডোজ বন্ধ করার বিপরীতে অর্থাত্ বাফারগুলি বন্ধ করার অর্থ কী ?
গিলস

হ্যাঁ, আমার মানে কিল বাফারগুলি (সিক্স কে)
অস্বীকার করবে

আপনি এটি করতে ইচ্ছুক কেন? প্রায়শই আমি যখন একটি এডিফ করি তখন আমার পরে বাফারের একটিতে কাজ চালিয়ে যাওয়া প্রয়োজন।
অ্যান্ড্রু সোয়ান

আমার ক্ষেত্রে আমি ভিন্নতাগুলি দেখতে ztree-diff ব্যবহার করছি এবং আমি বেশিরভাগ সময় ডিফের পরে ফাইলগুলিতে আগ্রহী নই।
আলভিন স্কোম্যান

উত্তর:


1
(defun my-kill-ediff-buffers ()
  (kill-buffer ediff-buffer-A)
  (kill-buffer ediff-buffer-B)
  (kill-buffer ediff-buffer-C))

(add-hook 'ediff-quit-hook 'my-kill-ediff-buffers)

মনে রাখবেন যে এটি সর্বদা এডিফ-বাফারগুলিকে মেরে ফেলবে, এমনকি যদি সেগুলি এডিফ দ্বারা খোলা না হয় যেমন ediff-buffersআপনি যে কয়েকটি বাফার দিয়ে শুরু করেছিলেন যা দিয়ে শুরু করেছিলেন।

আপনার কাছে হত্যা করতে পারে যদি আপনি চাই প্রতি *ediff-errors*, *ediff-diff*, *Ediff-Registry*এবং *ediff-fine-diff*পাশাপাশি, কিন্তু যারা সাধারণত আমাকে বিরক্ত করবেন না।


2

আমি একটি উত্তর যুক্ত করছি কারণ এটি এই প্রথম লিঙ্ক যা এই বিষয়ে আমার জন্য পপ আপ হয়েছে, এবং এটি সত্যই সহজ উপায়।

আপনি "কিউ" এ উপসর্গটি পাস করতে পারেন এবং এটি এডিফ বাফারদের হত্যা করার অনুরোধ জানাবে।

চিউ কি

আপনি যদি কাস্টমাইজ করেন তবে ediff-keep-variantsএটি আচরণটির বিপরীত হবে: প্রস্থান করার সময় বাফারদের হত্যা করার অনুরোধ জানানো হয় এবং যদি উপসর্গটি ব্যবহার করে তা খোলা রাখবে।

(এটি এডিফ ম্যানুয়াল থেকে পেয়েছে)


1

আমি এই কোডটি ব্যবহার করছি (GNU Emacs 25.3.1 x86_64-pc-linux-gnu), নিম্নলিখিত https://emacs.stackexchange.com/a/17089/18662

জিডিইউ ইমাকস ম্যানুয়ালে যেমন এডিফ-প্রস্থান-হুক সম্পর্কিত কথা বলা হয়েছে ( https://www.gnu.org/software/emacs/manual/html_node/ediff/Hooks.html ):

এডিফ-কন্ট্রোল-বাফারে এডিফ-ক্লিনআপ-মেস শুরু হওয়ার আগে হুকগুলি কার্যকর করা মনে রাখবেন; তারা শেষ করার পরে এডিফ-নিয়ন্ত্রণ-বাফারকে বর্তমান বাফার হিসাবে ছেড়ে দেওয়া উচিত। এডিফ-ক্লিনআপ-মেসের পরে কার্যকর করা হুকগুলি বর্তমান বাফারটি হয় বাফার এ বা বাফার বি হতে পারে expect

সুতরাং, আমি * এডিফ কন্ট্রোল প্যানেল * বাফারকেও হত্যা করি । অন্যান্য এডিফ বাফারগুলিও যুক্ত হতে পারে।

(setq ediff-window-setup-function 'ediff-setup-windows-plain)
(setq ediff-split-window-function 'split-window-horizontally)

(defvar q-ediff-last-windows nil)

(defun q-store-pre-ediff-winconfig ()
    (setq q-ediff-last-windows (current-window-configuration)))

(defun q-restore-pre-ediff-winconfig ()
    (progn
       (set-window-configuration q-ediff-last-windows)
       (ediff-kill-buffer-carefully "*Ediff Control Panel*")))

(add-hook 'ediff-before-setup-hook #'q-store-pre-ediff-winconfig)
(add-hook 'ediff-quit-hook #'q-restore-pre-ediff-winconfig)

0

আপনি এই হুক চেষ্টা করতে পারেন:

 (add-hook 'ediff-load-hook
            (lambda ()
              (add-hook 'ediff-before-setup-hook
                        (lambda ()
                          (setq ediff-before-file (buffer-file-name))
                          (setq ediff-saved-window-configuration (current-window-configuration))))
              (let ((restore-window-configuration
                     (lambda ()
                       (set-window-configuration ediff-saved-window-configuration))))
                (add-hook 'ediff-quit-hook restore-window-configuration 'append)
                (add-hook 'ediff-suspend-hook restore-window-configuration 'append))))

2
lambdaহুকগুলিতে ফাংশনগুলি আবদ্ধ করার পরামর্শ দেওয়া হয় না (এবং পরামর্শগুলি)। এটি হুক ভেরিয়েবলগুলি পর্যালোচনা করা এবং হুকগুলি থেকে ক্রিয়াকলাপগুলি অপসারণ করে তোলে।
কুশল মোদী

2
এটি কার্যকরভাবে উইন্ডোজগুলি বন্ধ করে দেয় তবে প্রশ্নটি বাফারদের হত্যা করতে বলছে
গিলস 'অশুচি হওয়া বন্ধ করুন'

0

উইন্ডোজটি বন্ধ করতে আমি এটি ব্যবহার করছি:

(add-hook 'ediff-after-quit-hook-internal 'winner-undo)

1
এটি কার্যকরভাবে উইন্ডোজগুলি বন্ধ করে দেয় তবে প্রশ্নটি বাফারদের হত্যা করতে বলছে
গিলস 'অশুচি হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.