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


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.