当前位置:  开发笔记 > 开发工具 > 正文

不要在Emacs完成窗口中显示不感兴趣的文件

如何解决《不要在Emacs完成窗口中显示不感兴趣的文件》经验,为你挑选了2个好方法。

当I:Cx Cf TAB时,如何防止Emacs向我显示我不感兴趣的所有文件(例如〜备份文件,.pyc文件或.orig文件)?

它在一个方面起作用:如果我知道我要打开的文件以foo开头,我键入foo TAB,那么迷你缓冲区正确地自动填充到foo.py. 它正确地忽略了foo~和foo.pyc,因为〜和.pyc都在completion-ignored-extensions中.如果我真的想通过输入我自己的所有字母,它也正确地让我打开被忽略的文件.

但是,如果我只是点击TAB以显示完成列表缓冲区,那么该列表包含在completion-ignored-extensions中具有扩展名的文件,这使得很难找到我正在寻找的内容.

很明显,忽略不感兴趣的文件的代码是有效的.如何获得完成列表缓冲区以尊重completion-ignored-extensions

(顺便说一下,我可以让dired表现得类似吗?)



1> Trey Jackson..:

这条建议过滤掉了以下列出的扩展名的文件'completion-ignored-extensions:

(defadvice completion--file-name-table (after 
                                        ignoring-backups-f-n-completion 
                                        activate)
  "Filter out results when they match `completion-ignored-extensions'."
  (let ((res ad-return-value))
(if (and (listp res)
     (stringp (car res))
     (cdr res))                 ; length > 1, don't ignore sole match
    (setq ad-return-value
              (completion-pcm--filename-try-filter res)))))

注意:这不会影响dired.

对于此dired问题,请将此添加到.emacs

(eval-after-load "dired"
  '(require 'dired-x))

(add-hook 'dired-mode-hook
          (lambda ()
            (dired-omit-mode 1)))

阅读dired-x的文档,了解那里有什么.



2> aculich..:

我建议使用ido-mode忽略文件; 它默认带有Emacs,并添加了许多其他有用的增强功能,您很快就会爱上它们.这篇Mastering Emacs博客文章中的Ignorance is Bliss部分介绍了如何忽略文件,目录和缓冲区:

ido-ignore-buffers 获取要忽略的缓冲区列表 C-x b

ido-ignore-directories 获取要在C-x d和中忽略的目录列表C-x C-f

ido-ignore-files 获取要忽略的文件列表 C-x C-f


由于它的无知是Bliss部分也说:我不会忽略Ido中超出默认值的任何内容,因为我喜欢使用更通用的`completion-ignored-extensions`,因为它可以使用和不使用Ido.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有