我正在查找$ PWD -name'文件名'| vim -
期望在vim编辑器中打开文件文件名。但它不起作用。 在这种情况下,我确信只存在一个名为'filename'的文件。
find的结果也给出了stdout的完整路径。
答案 0 :(得分:24)
vim "$(find "$PWD" -name 'filename')"
或
find "$PWD" -name 'filename' -exec vim {} \;
(顺便说一句,您可以删除"$PWD"
。find
默认情况下从当前目录开始搜索。)
答案 1 :(得分:8)
find . -name 'filename' -print0 | xargs -0 vim
也应该有效。您可能想要阅读xargs,这是一个很容易了解的事情。
答案 2 :(得分:1)
在@ idbrii的评论中提及,但我最喜欢的是:
find . -name 'filename' -type f -exec vim {} \+
这会打开在其自己的缓冲区中找到的每个文件,随时可以使用:next
和:prev
进行导航。在OSX上测试过,但我相当肯定它也适用于Linux。
答案 3 :(得分:1)
我发现一种很容易的方法是用反引号(大多数键盘上的波浪号下的字符)将find命令括起来,并将其传递给vim。
vim `find . -name myfile`
实际上,您可以对任何命令使用backtick来获取命令的文字字符串输出。