如何将密钥绑定到emacs中的缩进/非紧急区域?

kev*_*kev 15 emacs

我想通过4个空格定义两个键缩放到缩进/非缩进区域.


之前:

hello
world
foo
bar
Run Code Online (Sandbox Code Playgroud)
  • 视觉选择worldfoo.
  • 类型 >

后:

hello
    world
    foo
bar
Run Code Online (Sandbox Code Playgroud)

我也想绑定<到unindent地区.
我不熟悉emacs,请帮忙.

Tho*_*mas 24

已有键盘快捷键:

缩进: C-u 4 C-x TAB

取消缩进 C-u - 4 C-x TAB

如果您发现键入的时间太长,可以将以下内容放在.emacs文件中:

(defun my-indent-region (N)
  (interactive "p")
  (if (use-region-p)
      (progn (indent-rigidly (region-beginning) (region-end) (* N 4))
             (setq deactivate-mark nil))
    (self-insert-command N)))

(defun my-unindent-region (N)
  (interactive "p")
  (if (use-region-p)
      (progn (indent-rigidly (region-beginning) (region-end) (* N -4))
             (setq deactivate-mark nil))
    (self-insert-command N)))

(global-set-key ">" 'my-indent-region)
(global-set-key "<" 'my-unindent-region)
Run Code Online (Sandbox Code Playgroud)

使用此代码,大于(>)和小于(<)键将标记区域缩进/取消每个4个空格.

  • 我刚刚编辑了代码以保持该区域处于活动状态。但您通常可以通过输入“Cx Cx”来重新选择。然后您还可以使用前缀参数:例如,`Cu 2 &gt;` 将缩进 8 个空格。 (2认同)