如何在标记区域内定义键绑定

时间:2011-04-13 14:59:28

标签: emacs vi region

我有一个想法,可以更轻松地在emacs中标记区域。

  1. 我按下C-SPC开始。

  2. 我使用vi样式键来扩展选择。例如

  3. "j" : line down
    "k": line up
    

    而不是使用箭头键或C-n,C-p,更容易按下单个字符

    1. 完成选择后,我选择一个键做一些事情,也使用vi样式键

      “c”:无效区域,复制区域。 “d”删除区域 “#”评论区域 “空间”离开时没有做任何事情

    2. 我知道我可以使用“M-w”“M-k”或其他东西来做,但我认为vi样式键是一种更简单的方法来完成这项工作。

      我到处搜索,但没有elip包可以做这样的事情。

      有人可以帮我写一些功能吗?或者给我一些建议。

      我找到了一个很好的方法,分享解决方案:

      defvar active-region-mode-map
        (let ((map (make-sparse-keymap)))
          map)
        )
      
      (define-minor-mode active-region-mode
        "Active Region minor mode."
        :init-value nil
        :lighter " Region"
        :keymap active-region-mode-map
        :group 'active-region
        )
      
      (defun active-region-on ()
        (active-region-mode 1))
      (defun active-region-off ()
        (active-region-mode -1))
      (add-hook 'activate-mark-hook 'active-region-on)
      (add-hook 'deactivate-mark-hook 'active-region-off)
      

      现在,享受它,“active-region-mode-map”地图键绑定你喜欢。例如:

      (define-key active-region-mode-map (kbd "j") 'next-line)
      

1 个答案:

答案 0 :(得分:0)

您可以查看viper-mode