我想创建一个搜索字符串并在vim中打开所有结果的函数。
在powershell中,我有:
Get-ChildItem -recurse -filter *.cs | Select-String -pattern $str | group path | select name
$ str是我正在搜索的字符串。
现在我想将所有结果重定向到vim。将结果导入vim会产生错误,即vim的输出不是控制台,因此它无法正常工作。
如何将结果重定向到vim或任何其他文本编辑器?
编辑:添加了vim标记,因为可能有选项在vim中执行而不是使用PowerShell。
答案 0 :(得分:3)
仅限Vim的解决方案:
:vim foo **/*.cs | cw
它不会打开每个文件,但是你会得到一个更有用的交互式列表,名为" quickfix window"这可以让你跳到右边文件的右边。
请参阅:help :vimgrep
和:help quickfix-window
。
答案 1 :(得分:1)
您可以在set grepprg
命令中使用您的命令。
检查:help grepprg
(您可能还需要将Windows上的默认shell从cmd替换为Powershell)
使用grepprg的好处在于它将结果列表显示为快速列表(copen / cclose)。