1
我想複製區域到Emacs中的另一個(臨時)緩衝區,但如果沒有(活動)區域,我想複製整個當前緩衝區。我所做的是如下:如何在Emacs中將區域或整個緩衝區複製到另一個緩衝區而不影響kill ring?
(defun do-something-with-region-or-buffer()
(interactive)
(save-excursion
(let ((begin (point-min)) (end (point-max)))
(when (region-active-p)
(setq begin (region-beginning))
(setq end (region-end)))
(copy-region-as-kill begin end)
(with-temp-buffer
(switch-to-buffer (current-buffer))
(rename-buffer "*My Temp Buffer*")
(delete-other-windows)
(yank)
(do-something-with-current-buffer)))))
但是,我有強烈的感覺,這是不理想的,因爲我搞亂殺戒。如何做到這一點而不影響它? (獎金問題:是我與該地區或整個緩衝區如果沒有有源區一個很好的做事方式?)
非常感謝!如果沒有其他更好的答案出現,我會在明天左右接受這個答案。 'with-temp-buffer':它是一種視覺玩具,對當前緩衝區的內容做一些有趣的事情,當它結束時我想讓它消失。 – mbork