是否有人拥有用于缩进(和取消缩进)文本块的Emacs宏?

是否有人拥有用于缩进(和取消缩进)文本块的Emacs宏?,emacs,lisp,elisp,Emacs,Lisp,Elisp,是否有人拥有用于缩进(和取消缩进)文本块的Emacs宏 我的意思是“缩进”在通常理解的意义上,而不是在Emacspeak中。换句话说,我想标记一个区域,按C-u 2,运行这个宏,让它在区域中的每一行之前添加两个空格 或者在运行宏之前按C-u-2,让它从区域中每行的开始处删除两个空格。如果它抱怨行没有足够的前导空格,那么它将获得额外的分数。严格缩进(绑定到C-x选项卡)完成您想要的操作。它位于indent.el中,应该是标准emacs发行版的一部分 另外,当某个地方没有足够的空格时,要让它抱怨/中

是否有人拥有用于缩进(和取消缩进)文本块的Emacs宏

我的意思是“缩进”在通常理解的意义上,而不是在Emacspeak中。换句话说,我想标记一个区域,按C-u 2,运行这个宏,让它在区域中的每一行之前添加两个空格

或者在运行宏之前按C-u-2,让它从区域中每行的开始处删除两个空格。如果它抱怨行没有足够的前导空格,那么它将获得额外的分数。

严格缩进(绑定到C-x选项卡)完成您想要的操作。它位于indent.el中,应该是标准emacs发行版的一部分

另外,当某个地方没有足够的空格时,要让它抱怨/中止,您可以这样做:(快速地对原始缩进代码进行丑陋的攻击)

(定义足够多的-whitespace-to-indent-p(起始-结束参数)
(省去远足
(转到字符结束)
(setq结束(点标记))
(转到字符开始)
(或(bolp)(前线1))
(while(和(<(点)end)
(>=(+(当前缩进)参数)0)
(前线1))
(>=(点)结束)))
(严格取消缩进,并保持挑剔(开始-结束参数)
(交互式“r\np”)
(if(或(plusp arg)(足够多的空格到缩进-p start-end arg))
(严格缩进起始端参数)
(消息“没有足够的空格取消登录!”)

使用
严格缩进
默认绑定到
C-x选项卡
也可以使用。 要插入两个空格:

C-x r t SPC SPC RET
删除两个空格是错误的

C-x r d
假设您已定义矩形以覆盖两个空格。CUA包中还有一个很好的矩形编辑功能。CUA软件包涵盖的不仅仅是矩形,因此如果您只需要矩形部分,请查看(完整内容,链接到我的博客)。

另请参阅:
C-x r d