我试图创建一个命令,将选定区域缩进4个空格。
适当的命令是:C-u 4 C-x <TAB>
,当C-u是“通用参数”命令的快捷方式,而C-x <TAB>
是indent-rigidly
的快捷方式时,我编写了此函数:
(defun my-tab ()
(interactive)
(universal-argument 4)
(indent-rigidly))
但是,当我试图运行函数(使用
M-x my-tab
)时,会出现以下错误:参数数目错误:(00),1个
怎么了?
谢谢!
最佳答案
如果查看indent-rigidly
(C-h f indent-rigidly
)的文档,您会注意到它需要3-4个参数:
(indent-rigidly START END ARG &optional INTERACTIVE)
所以,你也应该提供它的开始和结束位置您也应该正常地给出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))