【问题标题】:Change dd command in evil mode to not write to clipboard在邪恶模式下更改 dd 命令以不写入剪贴板
【发布时间】:2016-06-13 10:29:59
【问题描述】:

我想使用普通模式命令,例如 d c x 等,而不会将内容复制到剪贴板。

我想制作 emacs,以便只有 y 命令将任何内容写入剪贴板。 d 等其他命令应该只删除内容而不向剪贴板写入任何内容。

【问题讨论】:

    标签: emacs clipboard evil-mode


    【解决方案1】:

    按照Gordon Gustafson 的建议,使用arround adviceevil-delete 是 emacs 用于各种删除的东西,因此将其删除到黑洞寄存器可以解决问题。只需将以下内容添加到您的.emacs

    (defun bb/evil-delete (orig-fn beg end &optional type _ &rest args)
        (apply orig-fn beg end type ?_ args))
    (advice-add 'evil-delete :around 'bb/evil-delete)
    

    【讨论】:

      【解决方案2】:

      这是朝着正确方向迈出的一步:

      (evil-define-operator evil-change-into-null-register (beg end type register yank-handler)
        "Change text from BEG to END with TYPE. Do not save it in any register."
        (interactive "<R><x><y>")
        (evil-change beg end type ?_ yank-handler))
      
      (evil-define-operator evil-delete-into-null-register (beg end type register yank-handler)
        "Delete text from BEG to END with TYPE. Do not save it in any register."
        (interactive "<R><x><y>")
        (evil-delete beg end type ?_ yank-handler))
      
      (define-key evil-normal-state-map "c" 'evil-change-into-null-register)
      (define-key evil-normal-state-map "d" 'evil-delete-into-null-register)
      

      但是,CDsSxX 以及其他几个可能也需要反弹,这似乎不适用于x(它仍然期待动议):

      (evil-define-operator evil-delete-char-into-null-register (beg end type register yank-handler)
        "Delete text from BEG to END with TYPE. Do not save it in any register."
        (interactive "<R><x>")
        (evil-delete-char beg end type ?_ yank-handler))
      
      (define-key evil-normal-state-map "x" 'evil-delete-char-into-null-register)
      

      最好的办法是在 evil-delete 周围添加 around advice 并始终将其传递给 ?_ 寄存器(抱歉,我现在没有时间这样做,但我想我会发布我所拥有的)。

      【讨论】:

        【解决方案3】:

        这并不容易,因为 delete 操作符调用 yank 操作符。但是,您可以重新定义 evil-delete 并简单地删除对 evil-yank 的调用。

        【讨论】:

          猜你喜欢
          • 2022-06-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-26
          • 1970-01-01
          相关资源
          最近更新 更多