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

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

如何解决《在Vim中保存"所有打开缓冲区列表"的变量?》经验,为你挑选了2个好方法。

:vimgrep 看起来真的很有用.

以下是如何使用它:

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

:help说你可以用glob {file}来命名*.c当前目录.我可能已经用一个足够复杂的文件列表启动了Vim,我不想手动输入它{file},除了Vim已经知道这些文件是什么.

我想做的是vimgrep任何:

:args

:files

:buffers

我将使用哪些变量来代替命令中的{file}任何列表vimgrep



1> Luc Hermitte..:

你不能把这些命令中的结果捕获到register(:h :redir)中,然后将其插回到:vimgrepcall(带a :exe)中.

就像是:

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

笔记:

lh #askvim #exe只是一个包装器:redir; 真的很复杂

其中一些结果可能需要一些处理(参见:args添加方括号)

有时是返回准确的功能,你在找什么,看到join(argv(), ' '):args情况下,

关于:缓冲区,可能是这样的:

.

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(),' ')



2> Jerub..:

你可以这样做:

:bufdo vimgrep /pattern/ %

%替换缓冲区名称.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有