我想用缩进/未连续区域定义两个键绑定4个空格。
hello
world
foo
bar
world
和foo
。hello
world
foo
bar
我还想将< 绑定到unindent区域
我不熟悉emacs
,请帮助。
答案 0 :(得分:24)
已有键盘快捷键:
缩进: C-u 4 C-x TAB
Unindent 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)
使用此代码,大于(&gt; )和小于(&lt; )键将缩进/取消一个标记的区域,每个区域有4个空格。
答案 1 :(得分:2)
(defun keyboard-indent (&optional arg)
(interactive)
(let ((deactivate-mark nil)
(beg (or (and mark-active (region-beginning))
(line-beginning-position)))
(end (or (and mark-active (region-end)) (line-end-position))))
(indent-rigidly beg end (* (or arg 1) tab-width))))
(defun keyboard-unindent (&optional arg)
(interactive)
(keyboard-indent (* -1 (or arg 1))))
答案 2 :(得分:1)
除了@Thomas已编写的内容之外,您可能不希望使用键<
和>
进行缩进或取消隐藏。只是图像你需要写一些HTML,不能再输入这些字符了。这就是我在init file
中插入以下内容作为关键设置的原因:
(global-set-key (kbd "C-<") 'my-indent-region)
(global-set-key (kbd "C->") 'my-unindent-region)
注意:如果没有(kbd ...)
,它就无法运作。你会收到一个错误:
global-set-key: Key sequence C - > starts with non-prefix key C