কীভাবে (সিক্স কে) এডিফের (এ, বি, সি) বাফারগুলি স্বয়ংক্রিয়ভাবে প্রতিটিটিতে মারা যায় ediff-quit
?
কীভাবে (সিক্স কে) এডিফের (এ, বি, সি) বাফারগুলি স্বয়ংক্রিয়ভাবে প্রতিটিটিতে মারা যায় ediff-quit
?
উত্তর:
(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*
পাশাপাশি, কিন্তু যারা সাধারণত আমাকে বিরক্ত করবেন না।
আমি একটি উত্তর যুক্ত করছি কারণ এটি এই প্রথম লিঙ্ক যা এই বিষয়ে আমার জন্য পপ আপ হয়েছে, এবং এটি সত্যই সহজ উপায়।
আপনি "কিউ" এ উপসর্গটি পাস করতে পারেন এবং এটি এডিফ বাফারদের হত্যা করার অনুরোধ জানাবে।
চিউ কি
আপনি যদি কাস্টমাইজ করেন তবে ediff-keep-variants
এটি আচরণটির বিপরীত হবে: প্রস্থান করার সময় বাফারদের হত্যা করার অনুরোধ জানানো হয় এবং যদি উপসর্গটি ব্যবহার করে তা খোলা রাখবে।
(এটি এডিফ ম্যানুয়াল থেকে পেয়েছে)
আমি এই কোডটি ব্যবহার করছি (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)
আপনি এই হুক চেষ্টা করতে পারেন:
(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))))
lambda
হুকগুলিতে ফাংশনগুলি আবদ্ধ করার পরামর্শ দেওয়া হয় না (এবং পরামর্শগুলি)। এটি হুক ভেরিয়েবলগুলি পর্যালোচনা করা এবং হুকগুলি থেকে ক্রিয়াকলাপগুলি অপসারণ করে তোলে।
উইন্ডোজটি বন্ধ করতে আমি এটি ব্যবহার করছি:
(add-hook 'ediff-after-quit-hook-internal 'winner-undo)