比如我用elisp写一个函数时,经常把"(defun"打成"(defnu"。
出现错别字时,我能不能自动把"(defnu"替换成"(defun"?
我可以把替换"的定义写进去吗? (defnu" 与 "(defun" 挂钩?
谢谢!
user1001237
问问题
179 次
3 回答
3
您可以为此使用缩写:http ://www.gnu.org/software/emacs/manual/html_node/emacs/Abbrevs.html
只需将拼写错误定义为缩写,以便将其替换为正确的版本。
于 2013-10-13T05:56:58.490 回答
2
关于 的问题defun
,一个很好的方法是yasnippet
。
我只需键入d
和C-o(我已将其绑定为展开)。
这是它在 Elisp 缓冲区中扩展的内容:
# -*- mode: snippet -*-
# name: defun
# key: d
# --
(defun $1 ()
$0)
在 Clojure 缓冲区中:
# -*- mode: snippet -*-
# name: defn
# key: d
# --
(defn $1 [$0]
)
在 Octave 缓冲区中:
# -*- mode: snippet -*-
# name: function
# key: d
# --
function $1 = $2($0)
endfunction
一次性消除多种语言的样板文件的麻烦。
于 2013-10-13T07:47:09.020 回答
1
有两种主要的处理方法:
您可以使用缩写代替全名。有多种方法可以做到这一点,包括 Emacs “缩写”(参见 @Tom 的回复)和
dabbrev
(参见 Emacs 手册, nodeDynamic Abbrevs
),甚至只是defalias
anddefvaralias
。有些人使用模糊匹配来弥补此类拼写错误(拼写错误、更改的字母顺序和一些缩写:缺少字母)。有几种模糊匹配,从简单的“分散”或“灵活”匹配(缺少字母,但顺序相同)到复杂的(例如,涉及邻近分数)。
于 2013-10-13T06:14:58.787 回答