求大神指教,万分感谢!!如何在emacs-lisp以外的mode中,一次性运行一段elisp代码段
例如:在c mode下面运行
(setq avy-timeout-seconds 0)
(setq-default company-minimum-prefix-length 1)
用eval-expression的话只能显示一行,不利于一次性执行多行elisp代码
总不能要把一次性执行的elisp代码段也绑定到快捷键上吧?
求大神指教,万分感谢!!如何在emacs-lisp以外的mode中,一次性运行一段elisp代码段
例如:在c mode下面运行
(setq avy-timeout-seconds 0)
(setq-default company-minimum-prefix-length 1)
用eval-expression的话只能显示一行,不利于一次性执行多行elisp代码
总不能要把一次性执行的elisp代码段也绑定到快捷键上吧?
你这都是给变量赋值,为啥不用 buffer-local variable 呢?
另外,也可以将代码添加到 mode hook 中以便在 mode 激活时一次性执行代码
的确,不过我只是举个例子,比如需要在c-mode下一次性执行一段比较复杂的代码,但是又不想在刚刚激活mode时候加载,简单的说就是有没有办法在c-mode编辑时,生成一个临时buff,里面写一段elisp,然后执行这段代码,但是代码的效果只作用于c-mode那个buff
另外,十分感谢!
用 Local Variables 的 eval
Local Variables:
eval: (crs-auto-encrypt)
End:
这样每次打开文件 Emacs 都会问你要不要执行代码。不建议默认直接执行,因为很明显这样会有安全问题。
另外,如果只是一次性的代码,用 progn
(progn (foo)
(bar))
就可以把它们包成一整个表达式,这样你在 progn 外面 eval-expression
你也可以鼠标选中区域以后 eval-region
你也可以在 scratch buffer 写一次性代码,用 with-current-buffer 设定代码生效的 buffer,这样还能有高亮和补全用。
多谢!!!不知道spacemacs里面有没有集成类似于 “scratch buff 写一次性代码并执行” 的这个功能