【问题标题】:Argument required error when using Ag with vim将 Ag 与 vim 一起使用时参数需要错误
【发布时间】:2021-04-08 11:20:36
【问题描述】:

我只想使用 :Ag 命令进入交互式 ag shell(与 :Files 一样),然后开始输入我的搜索词。

但是,vim 不允许我打开ag 交互界面。如果我输入:Ag,它会报错如下:

E471:需要参数

如果我写下搜索词(如:Ag something),它会打开一个包含结果的新窗格。但这不是我想要的:我想像使用 :Files 命令一样使用ag

更多信息

我正在使用thoughtbot/dotfiles

:Ag 命令的定义

:verbose command Ag

    Name              Args Address Complete    Definition
|   Ag                +            file        silent! grep! <args>|cwindow|redraw!

设置

这是我的.vimrc 文件中启用ag 的部分。

" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
if executable('ag')
  " Use Ag over Grep
  set grepprg=ag\ --nogroup\ --nocolor

  " Use ag in fzf for listing files. Lightning fast and respects .gitignore
  let $FZF_DEFAULT_COMMAND = 'ag --literal --files-with-matches --nocolor --hidden -g ""'

  if !exists(":Ag")
    command -nargs=+ -complete=file -bar Ag silent! grep! <args>|cwindow|redraw!
    nnoremap \ :Ag<SPACE>
  endif
endif

【问题讨论】:

  • “我正在使用 thinkbot/dotfiles。”这就是你的问题的原因。这不是您的配置,因此您不知道其中发生了什么,并且当出现问题时您不知道如何修复它们。无论如何,:verbose command Ag 说什么?
  • @romainl 我已将:verbose command Ag 的输出添加到上述问题中
  • 1.那个vimrc 不是你的 vimrc。 2. 该命令是由其维护者添加到该文件的临时:Ag,它需要参数并且根本不涉及fzf。不过,我希望 fzf 覆盖该命令。
  • @romainl 你有什么建议可以在窗口中使用ag(类似于CtrlP)?
  • 正如我所说,假设你有一个工作的:Filesprovided by fzf,我希望 fzf 定义its own :Ag。如果没有,那么一定是某个地方出现了问题,并且您从网络上获得的现成配置并不能轻松找出在哪里。也许 fzf 没有正确安装?也许是别的什么?

标签: vim ag


【解决方案1】:

.vimrc 的这一部分(由thoughtbot/dotfiles 提供)覆盖了fzf.vim 设置的默认行为:

if !exists(":Ag")
  command -nargs=+ -complete=file -bar Ag silent! grep! <args>|cwindow|redraw!
  nnoremap \ :Ag<SPACE>
endif

我刚刚将其注释掉,现在一切都按我的意愿进行。 感谢@romainl 提供一些有用的提示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2014-08-28
    • 2016-11-30
    • 2014-10-29
    相关资源
    最近更新 更多