我正在尝试编写一个带有字符串的elisp函数,该字符串是根据当前缓冲区的文件类型设置的(但不仅仅是文件类型)。例如,我该如何替换它:
(defun run ()
(interactive)
(async-shell-command (concat "./" (file-name-base buffer-file-name)))
)
用这个:
(defun run ()
(interactive)
(async-shell-command (concat cmd (file-name-base buffer-file-name)))
)
其中cmd =“./”
我尝试过使用defvar,但每次尝试使用字符串时都会出错,但是这样:
(defvar flowers)
(set 'flowers '(rose)
让flycheck给我错误,“global / dynamic var`flowers'缺少前缀”(并且它在我的函数中不起作用)。
答案 0 :(得分:2)
所以我只能假设你没有真正尝试运行自己的代码?你试图修改一些不起作用的东西。
只需用变量名替换字符串,但在括号中不(在任何一种情况下),因为("foo")
和(someVariable)
都是调用a的尝试功能
(defun foo ()
(interactive)
(shell-command "foo")
)
(defun foo ()
(interactive)
(shell-command someVariable)
)