在ctrlp + vim中使用ag

2024-03-01

我想将 ag(银色搜索器)与 ctrlp 和 vim 一起使用。 我的 .vimrc 中有这个:

if executable("ag")
    set grepprg=ag\ --nogroup\ --nocolor
    let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
endif

let g:ctrlp_show_hidden = 1

set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/.tmp/*,*/.sass-cache/*,*/node_modules/*,*.keep,*.DS_Store,*/.git/*

我希望 ctrlp 包含隐藏文件,但这些文件是隐藏的。如果我添加-u对于 ag 命令,它显示所有隐藏文件,但不尊重 wildignore 或 .gitignore。有可能让它尊重这些吗?


如果您通过以下方式使用自定义查找器ctrlp_user_command几个选项,包括ctrlp_show_hidden ctrlp_custom_ignore和维姆的wildignore模式,不被 CtrlP 使用(查看文档 https://github.com/kien/ctrlp.vim/blob/master/doc/ctrlp.txt).

g:ctrlp_show_hidden

...

注意:当命令定义为 |g:ctrlp_user_command|正在使用中。

g:ctrlp_custom_ignore

...

注意#1:默认情况下,|wildignore|和 |g:ctrlp_custom_ignore|仅有的 当 |globpath()| 时应用用于扫描文件,因此这些选项 当使用 |g:ctrlp_user_command| 定义命令时不适用是 正在使用。

因此,您只能受搜索工具(在本例中为 ag)的支配。幸运的是,您可以做一些事情来获得您想要的行为。

让隐藏的点文件出现,但仍然尊重ignore文件,使用--hiddenag 的选项:

let g:ctrlp_user_command = 'ag %s -l --nocolor --hidden -g ""'

现在要定义要忽略的模式,您可以使用 ag 自己的忽略文件.agignore https://github.com/ggreer/the_silver_searcher/wiki/Advanced-Usage。这可以是每个目录或全局目录,ag 将在每次运行时检查。你把它放在你的主目录中~/.agignore.

我知道拥有 vims 会很好wildignore照顾模式,但与.agignore当你从 cli 使用 ag 时,你会得到这些限制的好处。如果您想搜索所有文件,只需使用ag -u您提到的命令可以绕过任何ignore files.

最后一点,有一种字典格式可以用来定义g:ctrlp_user_command其中包含一个ignoreCtrlP 使用的键wildignore模式。但是,我从未尝试过此操作,并且文档指出了潜在的性能影响。如果您不喜欢我提出的其他解决方案,您可以尝试此方法(查看文档 https://github.com/kien/ctrlp.vim/blob/master/doc/ctrlp.txt#L302-L352).

注意#3:除非 |Dictionary|使用格式并且“忽略”是 定义并设置为 1,|wildignore|和 |g:ctrlp_custom_ignore| 使用这些自定义命令时,选项不适用。什么时候 不存在,“ignore”默认设置为 0 以保留性能 使用外部命令的优点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在ctrlp + vim中使用ag 的相关文章

  • 在 vimrc 中切换匹配

    我的 vimrc 文件中有以下几行 hi ExtraWhitespace cterm NONE ctermbg green ctermfg green guibg green guifg green match ExtraWhitespac
  • 使用关键字启动 syn 区域

    我想用 virtual 启动一个区域 以用不同的颜色突出显示所有虚拟方法 但是 virtual 已经在 cpp vim 文件中定义为关键字 因此永远不会执行区域匹配 我尝试了以下方法 syn region cVirtualMethod st
  • 是否可以在没有 GUI 的情况下使用 Vim 的客户端服务器功能?

    我用 Homebrew OS X 编译了 Vim 如下所示 brew install vim with client server And the version请求确实证实了这一点 a gt usr local bin vim versi
  • Vim:领导不工作

    当尝试使用时vim latexsuite的映射 使用的是Leader不工作 nmap n
  • VIM:可用的快捷方式?

    我在 vim 中使用了许多快捷方式 其他快捷方式由插件使用 有时我想为新命令添加快捷方式 但事后请注意该快捷方式已被使用 有没有办法查看 VIM 中所有可用快捷键的列表 所有 ctrl shift alt 快捷键 Type help ind
  • gvim中的鼠标输入

    标准鼠标输入可以在 vim 中自定义吗 在我的例子中是 vim 插件也是可以接受的选择 我特别感兴趣的是 覆盖 双击某个单词 这样 gvim 就不仅仅是突出显示该单词 而是进行搜索 从而突出显示文件中该单词的所有实例 我在其他编辑器中看到过
  • Vim 无法在 OS X 上使用 python 进行编译

    我一直在尝试编译vim 7 3 with 蟒蛇2 7支持苹果系统 X 10 6 Vim 本身编译得很好 但嵌入的 python 编译得不太好 我已采取的步骤 hg clone https vim googlecode com hg vim
  • 如何使用 system() 函数的第二个参数(输入)

    vim 的文档system函数对第二个参数是这样说的 当给出 input 时 该字符串将写入文件并作为标准输入传递给命令 我从中了解到的是 如果你system通话看起来像这样 call system node something js fi
  • Vim 重复点(“.”)命令缓冲区?

    我真的很喜欢 YankRing 的行为 它让我可以访问我最近完成的几件事y固定或d已删除或c不假思索地被吊死了 然而 这样的补充功能对于 重复命令 最常见的是当我键入我真正想重复的内容时 然后按x清理一些东西 通常 可以通过视觉模式拉动我刚
  • Vi/vim - 从末尾行删除,包括最后一个字符

    我想做类似这个问题的事情VI VIM 删除 更改从右到左 https stackoverflow com q 9154212 301527即从行尾删除到该行中 的最后一个实例 这可以使用dT 将光标放置在该行的末尾 然而 这个命令和其他这样
  • Vim 中最近的文件历史记录?

    我想访问最近在 GVim 中打开然后关闭的文件 我经常打开和关闭 GVim 我也想访问以前会话中的最新文件 GVim 是否将最近的文件存储在 Word 和许多其他桌面应用程序存储的位置 如何访问它们 至少终端 vim 将前十个文件存储到 v
  • Vim 错误格式和 jslint

    我正在尝试让 makeprg 和 errorformat 与 VIM 和 jslint 一起使用 但似乎无法为我的生活提供正确的错误格式 我正在使用 jslint 的 NodeJS 版本 它会产生如下结果 1 116 9 The body
  • 如何使用 VIM 进行 .Net 开发 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • vim 将输出重定向到quickfix

    是否可以将命令的输出重定向到快速修复窗口 我正在运行的命令是 java r 并希望输出能够进入快速修复窗口 我建议两个选项之一 配置makeprg像您想要的那样运行 java 或者创建映射或命令来填充快速修复列表而不更改任何其他内容 选项
  • VIM语法折叠:禁用折叠多行注释

    我在 vim 7 3 中使用 语法 折叠方法 在 vimrc中 set foldmethod syntax 当我打开 Test cpp 时 包含 A function with a multi line comment This takes
  • Vim:垂直选项卡列表可以吗?

    是否可以让 vim 的选项卡列表垂直显示在编辑器的左侧 这确实很有帮助 但我还没有找到任何可以做到这一点的插件 我对谷歌很烂吗 我同意兰迪关于选项卡使用的观点 但前段时间我也在寻找在 gvim 中添加垂直制表符的可能性 为此 您必须修改源
  • Vim:设置 ctag 很困难。子目录中的源代码在项目根目录中看不到标签文件

    我今天试图在 Vim 上设置 丰富的 ctags 但很难让它正常工作 我在命令行上使用以下命令生成 ctags 文件 cd myproj ctags R 这会将标签文件放在 myproj 根目录中 然而 当我处理位于根目录中的源代码时 Vi
  • vim 中的语法高亮

    当我在 vim 中打开语法颜色时 我无法在黑色上阅读深蓝色 如何更改一些默认颜色或模式颜色 例如 http www vim org scripts script php script id 1571 http www vim org scr
  • 如何在 NERDTree 中显示隐藏文件(以句点开头)?

    我怎样才能使NERDTree https github com scrooloose nerdtree显示以 a 开头的文件 时期 我有一个名为 hgignore在项目目录中 如果我使用 NERDTree 浏览到该目录 该文件不会显示在树中
  • C# - 使用 Vim 作为主编辑器 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经喝了酷乐了 Vim 优雅美丽 我必须学习如何使用它并配置它以拥有一个出色的编译器 这是最好的学习方式 问题是 我从哪里开始 是否有一个很好的教程

随机推荐

  • 如何创建崩溃时重新启动的服务

    我正在使用创建服务CreateService http msdn microsoft com en us library ms682450 28VS 85 29 aspx 如果该服务发生崩溃 它将再次正常运行 并且我希望 Windows 在
  • 如何从 PHP 获取电子邮件及其附件

    我正在为朋友的婚礼编写一个照片库网络应用程序 他们想要一个照片库供客人提交他们当天拍摄的数码照片 在评估了所有选项后 我决定对用户来说最简单的事情就是让他们使用熟悉的界面 他们的电子邮件 然后让他们将图片作为附件发送 我已经创建了一个邮箱
  • 如何将 WCF 客户端代理生成的类中的方法标记为虚拟

    在 VS 2010 中 我创建了一个服务引用 该引用的代码生成 WCF 客户端代理类 Reference cs 我需要此类中的方法具有 Virtual 修饰符 以便它们可以在 Mock 中使用 当然 我可以手动编辑生成的代码 但每次更新引用
  • 通过 ajax 加载的表单上的 :remote => true/data-remote

    在我的 Rails 应用程序中 我有一个使用 jQuery 加载方法通过 Ajax 加载的表单 function load sales form product id sales form load product id 加载的表单有一个
  • Junit测试时如何将日志级别设置为DEBUG?

    我将 SLF4J 与 LOG4J 一起使用 配置通常位于log4j properties 并将日志级别设置为 INFO 但是在测试期间我想将日志设置为 调试 我看不出有什么方法可以实现自动化 也没有类似的东西log4j tests prop
  • PyOpenCL 矩阵乘法

    我有使用 pyopenCL 进行矩阵乘法的代码 我的问题是某些矩阵的结果是错误的 我不明白为什么 经过一番研究后 我认为它与类似的全球规模有关 但我不明白如何设置该值 例如 使用 numpy dtype float32 的矩阵 矩阵1 0
  • 如何使用 Angular 的装饰器模式来增强指令的链接功能?

    我正在开发一个 Angular 库 并寻找一种使用装饰器模式扩展指令的方法 angular module myApp decorator originaldirectiveDirective delegate function delega
  • Jekyll 右对齐文本

    如何在 Jekyll 中右对齐文本 我有一段文本想要右对齐 如果是 HTML 我会这样做 style text align right 我怎样才能用 Jekyll 在 Markdown 中做到这一点 Jekyll 2 0 使用 kramdo
  • DefaultConnection 和membership - localsqlserver 和defaultconnection 之间的连接是什么

    嗯 我真的无法理解这个问题 在 web config 我有
  • 编译器错误消息:CS0029:无法将类型“int”隐式转换为“string”

    我需要转换String表数据库的输入整数值在 C NET 4 中并尝试了受此启发的代码Link https stackoverflow com questions 2344411 how to convert string to integ
  • 获取 ASP.NET MVC 站点在文件系统中的路径

    我有一个 ASP NET MVC 项目 它有一个名为电子邮件的子文件夹 其中包含我的电子邮件模板的 HTM 文件 在网站的某些位置 我有一个控制器需要加载这些模板之一并将其作为电子邮件发送 我想要做的是使用反射来获取当前执行程序集的路径 但
  • Visual Studio Code 无法在 WSL2 上运行

    当我尝试在 WSL2 终端中打开 VS Code 时 如下所示 code 我收到以下错误 mkdir cannot create directory DIRECTORY Permission denied 当使用 sudo 启动时 sudo
  • 使用 Linq to SQL 进行多线程处理

    我正在构建一个应用程序 它需要我使用 DataContext 的内部线程 我的应用程序不断抛出异常InvalidOperationException类似于 There is already an open DataReader associ
  • 未知长度资产的 AVAssetResourceLoaderDelegate 实现

    我的 iOS 应用程序使用 AVPlayer 播放来自我的服务器的流音频并将其存储在设备上 我实现了 AVAssetResourceLoaderDelegate 因此我可以拦截该流 我改变了我的计划 从http到一个假方案 以便调用 AVA
  • 戳堆栈

    我试图了解堆栈到底是如何工作的 所以我将在这里重新创建一个带有一些问题的小示例 假设我在 ASM 中有一段小代码 它执行以下操作 这一切都是x86 intel语法 Linux push ebp mov ebp esp sub esp 16
  • 通用视图模型?

    我想知道尝试创建一个采用通用视图模型的视图是否是一种好的做法 我想知道这一点 因为有人提到他预计必须执行大量重复代码 除非他开始制作通用视图和通用视图模型 所以基本上视图就像一组控件 一个视图可能有 2 个控件 例如文本框和单选按钮 另一个
  • pandas 中的 .sum() 方法给出不一致的结果

    我有一个大的 DataFrame 大约 4e 07 行 总结时 我得到2 显着不同的结果我是否做总和之前或之后列选择 另外 类型变化从 float32 到 float64 即使总数均低于 2 31 df col1 col2 col3 sum
  • 如何在同一个 HTML5 播放器中放大视频并切换视频流?

    我的视频将分为 4 个视频 首先 播放器将传输较低分辨率的原始视频 然后用户可以放大视频以查看更多细节 我需要播放器根据用户放大的位置传输 4 个视频之一 分辨率较高 我如何使用 VideoJS 或任何其他视频播放器来实现这一点 经过一番查
  • 为什么我的托管 Django 站点(alwaysdata)无法显示我的页面

    我已经将 Django 部署在总是数据网 http www alwaysdata com 这是我的主页http zjm1126 alwaysdata net http zjm1126 alwaysdata net 我改变index html
  • 在ctrlp + vim中使用ag

    我想将 ag 银色搜索器 与 ctrlp 和 vim 一起使用 我的 vimrc 中有这个 if executable ag set grepprg ag nogroup nocolor let g ctrlp user command a