像这种Vue项目中的文件路径,有没有什么插件可以快速跳转过去,不用find file
我自己是 C-.
,然后回车就过去了。
妙啊,没想过 embark 还可以这样用。
这不就是 lsp 查找定义的基本用法嘛
lsp 貌似不行,至少我用vue的 language server不行。
我一般用 Snails 的 ? 前缀搜索, 比如 ? + 文件路径任意部分,因为 snails 后端用的 rust 写的 fd, 所以任意目录都可以快速打开,不用切换到文件管理器去找。
恩恩,这个fd后面我研究下,集成到我的配置里。
如果用projectile
的话直接 projectile-find-file-dwim
默认快捷键 c-p p g
.
vue3 - volar是支持直接跳转的, vue2的我忘记了。
相对路径跳,而不是项目内跳,问题简单了很多。
搜了下 Emacs 其实对这类问题有个解决方案 find-file-at-point。
现在找文件一般就是用 project-find-file (28 内置)或 counsel-git 来找了,也很快。
- https://emacstalk.github.io/post/010/ 这篇文章讲了 project.el 怎么与 fd 整合
内置的遇到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
后续会集成到我的21天视频中
我现在 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
这是我的个人配置:GitHub - Eason0210/emacs.d: I have been moved to new configuration: 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钟左右,就可以正常打开。