【问题标题】:Emacs copy region/line and comment at the same timeEmacs 同时复制区域/行和注释
【发布时间】:2014-06-28 14:33:28
【问题描述】:

我正在尝试实现以下内容:复制当前选定的区域或一行(如果没有选择)并在comment-or-uncomment-region-or-line 的帮助下注释掉原始区域。

我想我可以使用kill-region,然后是yank,但是我原来的选择丢失了,所以我不能发表评论。另一方面,如果我先发表评论,我将把我所在区域的两个副本都注释掉。

我的另一个想法(我认为更好,因为我使用邪恶模式)是使用evil-yank 然后evil-visual-restore 来恢复选择,以便我可以将其注释掉。但我不知道要传递给evil-yank 以指定所选区域的参数。

我在这里错过了什么?

【问题讨论】:

    标签: emacs elisp evil-mode


    【解决方案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))
    

    【讨论】:

    • 谢谢!在此之后如何向下移动一行?我试过(下一行 1),但由于某种原因它似乎不起作用。
    • 见函数forward-line
    • 它也不好用。我怀疑它与邪恶模式有关,如果我选择带有V 的区域,forward-line 不起作用。
    • 也许可以针对您现在遇到的任何问题发布另一个问题。正如您所怀疑的那样,它可能更特定于 Evil。 (我假设您至少在不使用 Evil 模式的情况下进行了比较。)
    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多