要在Vim I中找到所有修改过的文件,请输入
:ls
这会给我一个像这样的列表
2 h "index.html" line 98
3 h "Category/Category.Bg_S.js" line 1
4 h "Category/Category.Box0_S.js" line 1
5 + "Category/Category.Box10_S.js" line 1
6 "Category/Category.Box11_S.js" line 1
7 + "Category/Category.Box12_S.js" line 1
但如果缓冲区太多,这可能会很乏味。我想做的事情就像:
:ls !grep +
将vim的ls
的内容传递给shell的grep
函数。但它不起作用。因此,我有两个问题:
答案 0 :(得分:2)
最简单的方法是将输出“重定向”到vim变量,然后将其过滤为修改后的缓冲区:
function! GetModifiedBuffers()
redir => bufoutput
buffers " same as ls
redir END
return join(filter(split(bufoutput,'\n'),"v:val =~ '\\%8c+'"),'\n')
endfunction
然后执行:echo GetModifiedBuffers()
之类的操作以显示修改后的缓冲区列表。