小编abo*_*abo的帖子

Elisp:如何在字节编译时避免“未知函数被定义”?

我的包 ,lispy使用来自 的函数ace-jump-mode。我仍在考虑是否应该使用;; Package-Requires:cookie 或featurep为此使用cookie ,但主要问题是我想要一个干净的字节编译emacs -q.

我认为这应该消除字节编译警告:

(declare-function ace-jump-char-mode "ext:ace-jump-mode")
Run Code Online (Sandbox Code Playgroud)

但事实并非如此。对此有何想法?

确切地说,警告是“以下函数未知定义:ace-jump-char-mode,helm”。

emacs elisp

6
推荐指数
1
解决办法
3215
查看次数

Elisp破坏性操作警告?

Emacs提供有关字节编译的有用警告.是否有插件添加有关正在使用的破坏性操作的警告?所以当我写这样的代码时:

(defun get-countdown ()
  (let ((x (number-sequence 0 10)))
    (message (format "%s" (sort x #'>)))
    x))#
Run Code Online (Sandbox Code Playgroud)

Emacs抱怨:

temp.el:4:5:Warning: using variable modified by `sort'.
Run Code Online (Sandbox Code Playgroud)

或者类似的东西elisp-newbie-mode突出了所有的破坏性功能?

emacs elisp

5
推荐指数
1
解决办法
90
查看次数

莱宁根编译顺序?

我只是学习如何lein,并且我想从Java源代码中使用deftype在Clojure源代码中创建的类.这在基础教程中没有涉及,我无法使其正常工作.

问题是Java源代码无法导入Clojure类,因为它尚未编译.并且Clojure类未编译,因为Java源会中止编译.

我给出一个最小的例子:

  1. 创建一个新项目:

    lein new app javafoo
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加 project.clj

    :aot :all
    :java-source-paths ["src/java"]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 投入src/javafoo/core.clj:

    (ns javafoo.core)
    (deftype PPoint [x y])
    
    Run Code Online (Sandbox Code Playgroud)
  4. 投入src/java/JavaFoo.java:

    package foo.java;
    import javafoo.core.PPoint;
    
    public class JavaFoo {
        public static void main(String[] args) {
            System.out.println("JavaFoo");
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 尝试编译

    lein compile
    
    Run Code Online (Sandbox Code Playgroud)

它失败了package javafoo.core doesn't exist.所以现在我必须这样做

  1. 评论出来 :java-source-paths
  2. 取消注释 :java-source-paths

它终于奏效了.有没有办法让它从一开始就有效?

clojure leiningen

5
推荐指数
1
解决办法
466
查看次数

Emacs掌舵完成:如何关闭persistent-help_line?

我想helm用作替代品display-completion-list.唯一的问题是它在顶部显示这一行,我不想要:

C-z: I don't want this line here (keeping session).

这是代码来说明:

(helm :sources `((name . "Do you have?")
                 (candidates . ("Red Leicester"
                                "Tilsit"
                                "Caerphilly"
                                "Bel Paese"
                                "Red Windsor"
                                "Stilton"))
                 (action . identity)
                 (persistent-help . "I don't want this line here"))
      :buffer "*cheese shop*")
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置persistent-help为nil,或者根本没有设置它,但它仍然出现.我怎么能把它关掉?

emacs elisp emacs-helm

5
推荐指数
1
解决办法
896
查看次数

Emacs:如何打破ido迷你冰箱?

我一般都在使用ido-switch-buffer,但有时当候选人太多时, helm-buffers-list更可取.但是打破偶像,召唤掌舵并重新输入丢失的信息是一件麻烦事.

所以我编写了这段代码,它直接在helm中重用ido中输入的信息:

(require 'helm-buffers)
(defun switch-to-helm-buffers-list ()
  "Emulate `helm-buffers-list' call with ido contents as initial input."
  (interactive)
  (let ((str (minibuffer-contents-no-properties)))
    (helm :sources '(helm-source-buffers-list
                     helm-source-ido-virtual-buffers
                     helm-source-buffer-not-found)
          :buffer "*helm buffers*"
          :keymap helm-buffer-map
          :truncate-lines t
          :input str)
    ;; (ido-exit-minibuffer)
    ))

(add-hook
 'ido-setup-hook
 (lambda()
   (define-key ido-buffer-completion-map "\C-i"
     'switch-to-helm-buffers-list)))
Run Code Online (Sandbox Code Playgroud)

一个问题是ido留在迷你缓冲区中.当我ido-exit-minibuffer之前添加一个电话时helm,它没有被调用.当我在之后添加它时,它会重置窗口配置.我怎么解决这个问题?

emacs elisp

5
推荐指数
1
解决办法
676
查看次数

带有附加 SDK 的 Firefox 中的自定义上下文菜单?

我希望向 firefox 上下文菜单添加一个菜单项,该菜单项仅在用户右键单击特定 url 时才会显示。我有一个测试网址的功能。我曾经通过订阅“popupshowing”事件来做到这一点,并且:

var item = document.getElementById("custom-menu-id");
if (item) // show only for specific links
    item.hidden = gContextMenu.onLink && acceptableURL(gContextMenu.linkURL);
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试使用 Add-on SDK,但在那里我无法再访问 gContextMenu。文档中的这个片段对我不起作用:

var cm = require("sdk/context-menu");
cm.Item({
    label: "Copy name to clipboard",
    context: cm.URLContext("http://scholar.google*"), 
    contentScript: 'self.on("context", function(node) {return true; });'
});
Run Code Online (Sandbox Code Playgroud)

在这里,我认为应该可以得到类似 node.URL 的东西并进行测试,但它不起作用。也许有人可以建议如何从 sdk 访问 gContextMenu 或如何从节点或其他东西获取 URL。

javascript firefox-addon-sdk

4
推荐指数
1
解决办法
2014
查看次数

emacs AUCTeX macros fontification

我最近开始使用xargs 提供的优秀软件包\newcommandx.它共享类似于默认语法的语法\newcommand.我想font-lock反映一下.我做到了

(custom-set-variables
 '(font-latex-user-keyword-classes
   (quote (("cx" ("newcommandx" "*|{\\[[{")
        (:family "font-lock-type-face") command)))))
Run Code Online (Sandbox Code Playgroud)

但是,这只是fontifies命令名称本身,而不是它的身体(\newcommandfontifies与身体'font-lock-function-name-face,这在我的情况是粗体).我想\newcommandx用它来塑造它的身体'font-lock-function-name-face.

总结一个问题:如何使fontification \newcommandx完全相同\newcommand(即在我的情况下是大胆的身体)?

emacs latex syntax-highlighting auctex

4
推荐指数
1
解决办法
810
查看次数

git diff 两次连续提交的快捷方式?

我想用这种行为定义一个快捷方式“git diffn”:

git diffn := git diff HEAD HEAD~1
git diffn 1 := git diff HEAD~1 HEAD~2
git diffn 2 := git diff HEAD~2 HEAD~3
...
Run Code Online (Sandbox Code Playgroud)

第一个没问题,但我不知道如何制作其余的。

git

4
推荐指数
2
解决办法
2193
查看次数

Emacs:在dired中轻松导航图像?

eog当我按下vdired缓冲区中的图像时,我想要风格导航.我在网上搜索了一下,但没有找到任何直截了当的东西.有image-dired,但缩略图不是我想要的.

我想要的那种行为,这已经到位对于大多数类型的文件: v在dired显示了文件view-mode,其中n,pq做明显的事.

我已经破解了一些东西dired-view-next,但我想知道是否已经有一个好的工作包?

emacs elisp dired

4
推荐指数
1
解决办法
719
查看次数

Clojure:`fn`是特殊符号,宏还是特殊形式?

该文档说它是一种特殊的形式,虽然我看到它被定义为一个宏.

同时(meta #'fn)兼顾:macro:special-form真实.

最后,(special-symbol? 'fn)就是false虽然(special-symbol? 'fn*)true.

有人可以为我清除这个吗?在Clojure中是否有任何其他奇怪的符号都是特殊形式和宏,而不是特殊符号?

还有一件事,它是迄今为止我见过的唯一可调用符号(meta #'fn):

{:arglists ([& sigs]),
 :forms [(fn name? [params*] exprs*) 
         (fn name? ([params*] exprs*) +)]...}
Run Code Online (Sandbox Code Playgroud)

所以arg列表:arglists不像其他符号那样,但是在:forms.在Clojure中有这样的任何其他符号吗?

clojure

4
推荐指数
1
解决办法
120
查看次数