Emacs копирует регион / строку и комментарий одновременно
Я пытаюсь реализовать следующее: дублировать текущий выбранный регион или строку (если выбора нет) и закомментировать исходный регион с помощью comment-or-uncomment-region-or-line
,
Я подумал, что мог бы использовать kill-region
с последующим yank
но тогда мой первоначальный выбор потерян, поэтому я не могу комментировать. Если же я сначала прокомментирую, я закомментирую обе копии моего региона.
Другая идея, которая у меня есть (которую я считаю лучше, потому что я использую злой режим), заключается в использовании evil-yank
а потом evil-visual-restore
восстановить выделение, чтобы я мог его закомментировать. Но я не могу понять, какие аргументы передать evil-yank
указать выбранный регион.
Что мне здесь не хватает?
1 ответ
Главное, чего вам не хватает - это функции copy-region-as-kill
,
(defun copy-and-comment-region (beg end &optional arg)
"Duplicate the region and comment-out the copied text.
See `comment-region' for behavior of a prefix arg."
(interactive "r\nP")
(copy-region-as-kill beg end)
(goto-char end)
(yank)
(comment-region beg end arg))