我試圖編寫一個函數來根據其他窗口中的緩衝區是否綁定了一個文件,不。在emacs lisp中寫入kill-or-bury-other-buffer
它有時似乎有效,並不總是選擇其他窗口中的緩衝區來殺死。 我使用錯誤的功能或功能錯誤嗎?
(defun kill-or-bury-other-buffer()
(interactive)
(let* ((other-buf (window-buffer (other-window 1 nil)))
(other-has-file (buffer-file-name other-buf))
(buf-action (if other-has-file
'bury-buffer
'kill-buffer)))
(funcall buf-action other-buf))))
我見這個緩衝區文件名是一個變量以及一個函數 - 在elisp中這很常見嗎?例如(我知道命名空間被拆分) – Squidly
這並不罕見,例如許多次要模式都有一個功能來切換它們和一個具有相同名稱的變量來存儲切換的狀態。 – juanleon