我已经在我的emacs26安装中安装了Projectile。我的配置如下所示:
(projectile-mode +1)
(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
(projectile-global-mode) ;; to enable in all buffers
(setq projectile-enable-caching t) ;; to prevent constantly reindexing projectsx
我使用Melpa安装了Projectile。
我希望Projectile在项目中查找文件,类似于命令C-p
在vscode中的工作方式。给定以下目录:
src/
views/
cars.html
dogs.html
models/
animals/
dogs.js
cats.js
vehicles/
cars.js
trucks.js
在vscode中,如果我执行C-p dogs
(不执行<RET>
),则会看到一个包含dogs.html
和dogs.js
的可选列表。据我所知,这与Projectile的C-c p f
相同。问题是当我进行类似models/dogs
的搜索时。在vscode中,这仅返回dogs.js
,在Projectile中,不返回任何内容(合理,但不是我想要的)。
我有许多子目录的大型collections / model目录,因此我希望在可能的情况下在Emacs中模拟此vscode行为。
在处理多目录目录时,如何像对vscode的C-p
文件搜索一样进行Projectile(或其他Emacs插件)文件搜索?
我研究了projectile-fix,但是它似乎并没有达到我的期望,并且显然与我开始使用并喜欢的Helm不兼容。
答案 0 :(得分:1)
默认情况下,Projectile使用Ido完成。 (检查变量new CacheResponse<T>((T)Convert.ChangeType(value, typeof(T));
的值,以查看其在Emacs中的配置是否不同。)
在Ido中,您可以键入文件名的一部分,然后按projectile-completion-system
将项目列表限制为当前键入的内容。因此,在您的示例中,您将输入C-SPC
进入models C-SPC dogs
。
如果已将Projectile配置为使用Helm,则可以在比赛的各个部分之间使用空格字符:键入dogs.js
会将比赛列表缩小到models dogs
。
答案 1 :(得分:0)
您可以使用helm
或ivy
及其相应的投射插件helm-projectile
或counsel-projectile
。
但这意味着您将不得不改变使用emacs的方式(至少在短期内)。无论如何,这将帮助您提高未来的生产力,因此是一笔不错的投资。