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))
Другие вопросы по тегам