我正在尝试创建一个命令,将所选区域缩进4个空格。
适当的命令是:C-u 4 C-x <TAB>
,当Cu是“universal-argument”命令的快捷方式而C-x <TAB>
是indent-rigidly
的快捷方式时,所以我写了这个函数:
(defun my-tab ()
(interactive)
(universal-argument 4)
(indent-rigidly))
但是当我尝试运行该函数时(使用M-x my-tab
),我收到此错误:
参数数量错误:(0。0),1
有什么问题?
谢谢!
答案 0 :(得分:7)
如果您查看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))