微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Vim中保存“所有打开缓冲区列表”的变量?

vimgrep看起来真的很有用.

以下是如何使用它:

:vim[grep][!] /{pattern}/[g][j] {file} ...

帮助说你本来可以通过glob {file}命名,例如* .c作为当前目录.我可能已经启动了一个文件列表的文件,这个文件很复杂,我不想手动输入{file},除了Vim已经知道这些文件是什么.

我想做的是vimgrep的任何一个

>:args
>:文件
>:buffers

我将使用什么变量替代{file}命名vimgrep命令中的任何一个列表?

你不能将这些命令的结果记录到一个寄存器(:h:redir)中,并将其插入到:vimgrep调用(使用:exe).

就像是:

:exe "vimgrep/pattern/ " . lh#askvim#Exe(':args')

笔记:

> lh#askvim#Exe只是一个包装:redir;没什么真的很复杂
>这些结果中的一些可能需要进行一些处理(参见:args添加方括号)
>有时候有一个函数返回你正在寻找的内容,请参阅:args(argv(),”)in:args case
关于:缓冲区,可能是这样的:

.

function BuffersList()
  let all = range(0,bufnr('$'))
  let res = []
  for b in all
    if buflisted(b)
      call add(res,bufname(b))
    endif
  endfor
  return res
endfunction
:exe 'vimgrep/pattern/ '.join(BuffersList(),' ')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐