如何将文件列表放入Vim的-o -mode? strong>
我有一个文件列表作为Grep的输出。 我跑得不成功
grep -il sid * | vim -o
grep -il sid * | xargs vim -o
grep -il sid * | xargs vim
vim -o `grep -il sid *`
vim -o | grep -il sid *
答案 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 -Z
与xargs -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在读取参数时使用换行符作为分隔符;通常它是任何空格(换行符,制表符或空格字符)