【问题标题】:Conditionally execute a command at file load in emacs 24在 emacs 24 中的文件加载时有条件地执行命令
【发布时间】:2012-07-08 18:59:16
【问题描述】:

我正在寻求自动化我的开发,我希望 emacs 在我加载任何名为“project.clj”的文件时自动执行一些命令

具体来说,我希望它检查打开的缓冲区,如果没有名为“swank”的缓冲区,则执行 clojure-jack-in 命令,就好像它来自“project.clj”缓冲区一样,

然后我希望它也可以运行 shell 和 speedbar,但我想一旦我弄清楚如何执行上述操作,这些都会很容易。

我是一个完整的 elisp 菜鸟,但我对 lisp 很熟悉。

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    你可以这样做:

    (defun my-project-hook (filename)
      (when (string= (file-name-nondirectory filename) "project.clj")
        (do-stuff)))
    
    (add-hook 'after-load-functions 'my-project-hook)
    

    【讨论】:

    • 行得通,这是我用的:(defun clojure-open () (if (string= (file-name-nondirectory filename) "project.clj") (if (not (member "*swank*" (mapcar (function buffer-name) (buffer-list)))) (clojure-jack-in))))
    • 内部更简单一点的是(unless (get-buffer "*swank*") (clojure-jack-in))。顺便说一句,如果这个答案有效,请接受它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 2015-01-21
    • 2015-01-05
    • 2013-03-09
    • 2017-04-04
    • 2012-11-16
    相关资源
    最近更新 更多