我正在尝试创建一个命令,将所选区域缩进4个空格.
适当的命令是:C-u 4 C-x <TAB>,当Cu是"universal-argument"命令C-x <TAB>的快捷方式并且是快捷方式时indent-rigidly,所以我写了这个函数:
(defun my-tab ()
(interactive)
(universal-argument 4)
(indent-rigidly))
Run Code Online (Sandbox Code Playgroud)
但是当我试图运行该函数时(带M-x my-tab)我收到此错误:
参数数量错误:(0.0),1
问题是什么?
谢谢!
如果你查看indent-rigidly(C-h f indent-rigidly)的文档,你会发现它需要3-4个参数:
(indent-rigidly START END ARG &optional INTERACTIVE)
Run Code Online (Sandbox Code Playgroud)
因此,您也应该为它提供开始和结束位置.你也应该正常给予ARG,而不是使用universal-argument.
(defun my-tab (start end)
(interactive (if (use-region-p)
(list (region-beginning) (region-end))
;; Operate on the current line if region is not to be used.
(list (line-beginning-position) (line-end-position))))
(indent-rigidly start end 4))
Run Code Online (Sandbox Code Playgroud)