将Grep输出中的文件打开到Vim的-o -mode

时间:2009-08-13 23:29:40

标签: vim

如何将文件列表放入Vim的-o -mode?

我有一个文件列表作为Grep的输出。 我跑得不成功

1

grep -il sid * | vim -o

2

grep -il sid * | xargs vim -o

3

grep -il sid * | xargs vim

4

vim -o `grep -il sid *`

5

vim -o | grep -il sid *

6 个答案:

答案 0 :(得分:26)

尝试

vim -p `grep -il sid *`

如果要在同一窗口中的不同选项卡中打开文件。

答案 1 :(得分:24)

执行命令

grep -il sid * | vim -

这告诉vim从stdin读取文件,因此grep的输出将在vim中。 现在,将光标放在文件上并按 gF - 这将打开grep指示行上的文件。

您还可以使用 ^ WF 在新分组中打开文件。

答案 2 :(得分:15)

第二个适合我。第三,虽然您在开始时只能看到一个文件。在大多数情况下,4与2相同。第一个和最后一个不应该按设计工作。

答案 3 :(得分:7)

抱歉,我迟到了。其中一些选项对我有用,但有很多副作用。试试这个:

vim -o $(grep -il sid *)

答案 4 :(得分:1)

要使用vim调用xargs,必须用xargs调用-o

grep -il sid * | xargs -o vim -o

如果文件名可能包含空格,请将grep -Zxargs -0一起使用

grep -ilZ sid * | xargs -0 -o vim -o

如果没有xargs -o,我们会收到警告:

Vim: Warning: Input is not from a terminal

答案 5 :(得分:0)

第二个应该可以工作,除非其中一些文件名包含空格。你应该做

grep -il sid * | xargs -d "\n" vim -o

如果这是可能的话。 -d "\n"告诉xargs在读取参数时使用换行符作为分隔符;通常它是任何空格(换行符,制表符或空格字符)