【问题标题】:Can Emacs AC mode (autocomplete) mode be configured to ignore numbers?Emacs AC 模式(自动完成)模式可以配置为忽略数字吗?
【发布时间】:2013-01-23 21:45:21
【问题描述】:

我在输入文本文件时经常包含数字数据、电话号码等,这会给 AC 模式带来麻烦。现在,当我输入“2”时,我会得到一个自动完成选项,其中包含我曾经输入的以“2”开头的每个数字或数字代码。至少可以说不是很有帮助。

我进去清理了我的ac-comphist.dat,但它又被数字污染了。有没有办法首先防止这些条目被添加,也许使用正则表达式过滤器?我尝试使用整数列表设置变量ac-ignores,但似乎并没有解决问题。

【问题讨论】:

    标签: emacs autocomplete


    【解决方案1】:

    我想我从来没有注意到十进制数字,但十六进制数字真的很烦人。我通过重新定义ac-prefix-default 来修复它,如下所示:

    (eval-after-load "auto-complete"
      '(progn
         (defun ac-prefix-default ()
           "Same as `ac-prefix-symbol' but ignore a number prefix."
           (let ((start (ac-prefix-symbol)))
             (when (and start
                      (not (string-match "^\\(?:0[xX][0-9A-Fa-f]+\\|[0-9]+\\)$"
                                         (buffer-substring-no-properties start (point)))))
               start)))
         ))
    

    【讨论】:

    • 谢谢。你能帮我澄清一下这段代码应该去哪里吗?并且,如有必要,可能需要如何修改正则表达式以使“12345-678”或“12:34”等字符串也被忽略?
    • 它将进入您的 init.el。我将它包装在 eval-after-load 中,并编辑了答案以反映这一点。我尽量不要修改不是我写的文件,因为我对为它们维护补丁没有兴趣。当我更新我的包时,自动完成似乎总是得到更新。
    猜你喜欢
    • 2014-12-29
    • 2012-02-06
    • 2015-02-13
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多