我使用 VIM 作为 Laravel 项目的主要代码编辑器。当我在 VIM 中时,我想搜索一个可以作为tabnew
或作为新vsplit
窗格打开的文件。有人告诉我有一个find 命令。所以我尝试了这样的事情:
:find ~/development.project1.com/ -name *Controller.php
Run Code Online (Sandbox Code Playgroud)
但这只给了我错误 E345: Can't find file "/var/www/development.project1.com/ -name *Controller.php" in path
我做错了什么?如何在 VIM 中快速搜索其他文件并将它们作为tabnew
或作为新vsplit
窗格打开?
小智 5
vimfind
命令与 unixfind
命令不同。要了解是什么find
,请使用在线帮助!
:h find
Run Code Online (Sandbox Code Playgroud)
这会给你一个答案:
:fin[d][!] [++opt] [+cmd] {file}
Find {file} in 'path' and then :edit it.
Run Code Online (Sandbox Code Playgroud)
换句话说,:find
就像:edit
但在您path
的目录中而不是仅在当前目录中查找。请注意,vimpath
与操作系统 shell 变量不同PATH
。你可以找出你path
的
set path?
Run Code Online (Sandbox Code Playgroud)
很可能您的路径(或路径)中没有项目的每个子目录。你也不应该。
如果要编辑名称以 Controller.php 结尾的文件,搜索每个子目录的简单解决方案是**
在文件名之前指定与每个子目录的通配符匹配:
:e **/*Controller.php
Run Code Online (Sandbox Code Playgroud)
请注意,执行上述操作只会打开与通配符匹配的第一个文件。如果有多个匹配的文件,而那不是您想要的文件,那么运气不好。
如果您想在多个匹配项中选择一个文件,并且不想使用插件,则可以使用 unix file 命令读取列表
:r! find . -name \*Controller.php
Run Code Online (Sandbox Code Playgroud)
您最终会得到一个包含文件列表的缓冲区。要打开其中一个文件,请将光标移动到文件名上方,然后使用gf
命令打开它。
虽然不是您问题的真正答案,但使用 vanilla vim,可以wildmode
完成命令行。如果wildmode
启用,当你打开一个新文件时,vim 将完成文件名:e
。
最后,vim 有许多不同的模糊查找器插件。如果你不需要windows,我推荐fzf。
归档时间: |
|
查看次数: |
91 次 |
最近记录: |