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

发布于 2024-10-31 18:03:47 字数 1130 浏览 1 评论 0原文

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

  1. 我按 C-SPC 启动。

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

"j" : 下一行
“k”:排队

与使用箭头键或 Cn、Cp 相比,单个字符更容易按

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

    “c”:非活动区域,复制区域。 “d”删除区域 “#”评论区 “空格”只是离开而不做任何事情

我知道我可以使用“Mw”“Mk”或其他东西来做到这一点,但我认为 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)

I have a idea to mark regions in emacs easier.

  1. I press C-SPC to start.

  2. I use a vi style key to extend selection. such as

"j" : line down
"k": line up

instead of using arrow key or C-n, C-p, a singe char is easier to press

  1. When finish selecting, I choose a key to do some thing, also use a vi style key

    "c": deactive region, copy region.
    "d" delete region
    "#" comment region
    "space" just leaving without do anything

I know I can use "M-w" "M-k" or something to do it, but I think vi style key is a easier way to do the job.

I search everywhere, but there is no elip package can do such thing.

Can someone help me to write some functions to do it? Or give me some suggestions.

I found a nice way to do it, share the solution:

(

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)

Now, enjoy it, "active-region-mode-map" map keybinding you like. For example:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

合久必婚 2024-11-07 18:03:48

您可以查看 viper-mode

You can have a look at the viper-mode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文