- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定 emacs lisp 是如何处理函数对象的,是否有一个我没有看到的隐藏参数,当我有这个时,当我点击 C-c p
时它会给出错误错误类型参数:commandp, load-cenet-files
我根本不懂 lisp。
(defun load-cenet-files ()
(load-file "~/.emacs.d/cedet/common/cedet.elc")
(require 'semantic-gcc)
)
(global-set-key (kbd "C-c p") '(load-cenet-files))
最佳答案
Emacs 区分 functions 和 commands - 后者是一种特殊类型的函数,即可以由用户交互调用的函数。错误消息 Wrong type argument: commandp, load-cenet-files
告诉您代码中的某个点需要一个命令,但得到了其他内容。 commandp
是一个谓词函数,用于检查其参数是否为命令;在这里,它测试了load-cenet-files
,发现它不是命令,因此被拒绝。
您可以通过将函数声明为交互式来将其转换为命令。为此,您可以在 (defun function-name (args)
之后的第一行添加 (interactive)
声明。请注意,(interactive)
是一种特殊的构造,它并不是真正的函数调用,而是一个声明。
(defun load-cenet-files ()
(interactive)
(load-file "~/.emacs.d/cedet/common/cedet.elc")
(require 'semantic-gcc)
)
一旦你把一个函数变成一个命令,你就可以通过 M-x function-name
调用它。此外,如果要将函数绑定(bind)到键盘快捷键,则它必须是命令。后者正是您看到该错误消息的原因:您已将 load-cenet-files
函数绑定(bind)到 C-c p 但它是一个函数,而不是命令.一旦你插入 (interactive)
你应该没问题。
最后,您尝试将此功能绑定(bind)到键盘快捷键似乎有些不寻常。你不能把 load-file
和 require
放到你的“.emacs”文件中吗?或者,如果您不希望全局加载文件,请将其附加到 mode-specific hook ?
关于elisp - 在 emacs lisp 中将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9588239/
以下伪代码的elisp代码 if "the emacs version is less than 23.1.x" do something else something-else 写成 (if
我想使用雅虎从 Emacs Lisp 程序中获取股票价格。我有两个问题。 我如何制作http GET? 在 Elisp 中存储数据的最佳方法是什么,以便我可以对数据进行比较?换句话说,我应该使用一个哈
是的,我知道 emacs 分析器功能。我正在寻找类似于 time 的东西bash 中的关键字,例如: (time (myfunc)) 这将返回或打印 myfunc 所花费的时间称呼。有这样的事情吗?
您如何编写一个应该绑定(bind)到按键的 elisp 函数,该函数默认情况下不提示,但在 Ctrl-u 之前会提示用户输入参数。类似的东西(这是错误的语法,但我希望你明白)? (defun my-
在我自己编写的函数中,我想调用命令 compile 但让它以交互方式运行,就好像我已经完成了 Meta-x compile .仅仅调用 (compile) 并不像预期的参数那样工作。那么如何强制 em
我看到了 buffer-has-markers-at至少会告诉是否有指向某个位置的标记,但它不仅自 24.3 以来已被标记为过时,而且不提供实际获取标记对象的方法。 看着 the C source ,
当用户单击链接时,我有以下代码来调用 elisp 函数“myfun”: #+BEGIN_SRC elisp :results output raw (defun myfun(filepath li
emacs 是否支持不适合整数的大数字?如果是这样,我该如何使用它们? 最佳答案 Emacs Lispers frustrated by Emacs’s lack of bignum handling
什么是 elisp 对 Python 的等效项 range(start, end, [step]) ? 最佳答案 number-sequence类似于python的range但它的输出却大不相同。 例
相当于 {'a':1, 'b':2} 之类的 Python 字典是什么意思?在省略? 再说一次,elisp 有任何 map-reduce api 吗? 最佳答案 除了关联列表,(算法复杂度适合小表,大
我已经编写了类似于 progn 的函数(实际上是一个宏,但无论如何)。如何告诉 emacs 这个函数应该像 progn 一样缩进? 最佳答案 应该这样做 (put 'myfunc 'lisp-inde
是否有一个 emacs-lisp 命令可以用来用 gnuplot 绘制一组数字,就像我可以在 Excel 中根据数字数组创建简单的折线图一样? 例如,我想要一个名为 plot-with-gnuplot
我有这段工作代码 (setq block_id nil) (setq myHash (make-hash-table :test 'equal)) (puthash "5" "a" myHash) (
如何在 elisp 中的一个 block 中一个接一个地运行多个命令。像这样但不准确, ((message "first message") (message "second message"))
在 elisp 中, (cons 1 2) `returns` (1 . 2) (list 1 2) `returns` (1 2) 两个输出之间有什么区别? 最佳答案 (cons 1 2)创建一个像
我想编写一个需要文件名作为参数的脚本。我想利用“ido-find-file”来获取文件,因为它是这样的这是选择文件名的好方法,但我不想打开该文件因此,只需将其用作我的函数的参数即可。 最佳答案 ido
我想编写一个需要文件名作为参数的脚本。我想利用“ido-find-file”来获取文件,因为它是这样的选择文件名的好方法,但我不想打开文件因此,只需将它用作我的函数的参数即可。 最佳答案 ido-fi
我使用以下代码运行“ls -l ./”并在暂存缓冲区中获取结果。 (start-process "my-process" "*scratch*" "ls" "-l" "./") 如何在剪贴板或其他东西
我有一个文本文件,其中包含相关内容/段落。假设我从文本中剪切/杀死段落 A。我想编写一个在这种情况下调用的函数,因此相关的段落——比如说 B——也被删除了。一个很好的例子是其中包含引用/引用的文档。
Emacs 版本。 25.1.1 所有 emacs 源文件都在文件夹中:...\emacs\share\emacs\25.1\lisp\ 假设我在 emacs 文件中打开 网址.el .在这个文件中有
我是一名优秀的程序员,十分优秀!