如何快速跳转vue项目中include的文件

像这种Vue项目中的文件路径,有没有什么插件可以快速跳转过去,不用find file

https://github.com/oantolin/embark

我自己是 C-.,然后回车就过去了。

2 个赞

妙啊,没想过 embark 还可以这样用。 :+1:

这不就是 lsp 查找定义的基本用法嘛

lsp 貌似不行,至少我用vue的 language server不行。

我一般用 Snails 的 ? 前缀搜索, 比如 ? + 文件路径任意部分,因为 snails 后端用的 rust 写的 fd, 所以任意目录都可以快速打开,不用切换到文件管理器去找。

恩恩,这个fd后面我研究下,集成到我的配置里。

如果用projectile的话直接 projectile-find-file-dwim 默认快捷键 c-p p g.

vue3 - volar是支持直接跳转的, vue2的我忘记了。 :rofl:

相对路径跳,而不是项目内跳,问题简单了很多。

搜了下 Emacs 其实对这类问题有个解决方案 find-file-at-point。

现在找文件一般就是用 project-find-file (28 内置)或 counsel-git 来找了,也很快。

1 个赞

内置的遇到node_module目录就会卡死,哈哈哈哈

M-x find-file-in-project-at-point

如果是相对路径,先试着直接打开文件,路径可以含有环境变量. 找不到文件就在project root中搜索文件.有没有文件拓展名都没有关系. 搜索使用了命令行find, 默认使用路径匹配(可改为文件名匹配).

例如 "./components/HelloWorld.vue"的搜索逻辑是搜索所有路径中包含有 “components /HelloWorld.vue"的文件.

如果选中部分文本,使用选中的文本搜索.

该插件使用emacs内置api, completing-read,所以可以和helm,ivy, consult等插件结合使用.

目前这种相对路径的 embark 这种方式基本满足我的需求了,其他需要搜索project内的文件,我直接用 project-find-file了,emacs内置的 project.el,不用安装第三方插件,可以集成 fd

使用 project.el + fd, 然后 exclude掉 node_modules , .git 等目录,速度贼快

下期短视频可以展示下如何集成 project.el + fd :grinning_face_with_smiling_eyes:

后续会集成到我的21天视频中

1 个赞

我现在 snails 就是这样用的, fd速度太快了。

我按你的方法配置 project.el + fd 确实快,在 Windows 系统也能用,不用依赖 find。Windows 下的 find 会和系统的 find.exe 冲突。

不过 project.el 如果用在我的个人 Emacs 配置项目下执行 C-x p f 就会卡死,因为我配置是 git submodule,总共有90个子模块。大佬知道什么原因吗? 最后会抱着个错误:

process-file: Variable binding depth exceeds max-specpdl-size

macOS Emacs 29
这是我的个人配置:https://github.com/Eason0210/emacs.d

PS:给 Emacs 报了这个BUG: bug#55396: 29.0.50; project-find-file don't work on a project with many

这个我记得和 tramp 一起用有问题,抄完我又删掉了

我上面说的问题在 emacs -q 下都能重现,应该是 project.el 的bug。这个问题只是出现在这种子模块较多的项目。

切回 projectile,在同样的项目下执行 projectile-find-file ,只要等待1s钟左右,就可以正常打开。