首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs -如何让projectile在当前窗口中打开文件?

Emacs -如何让projectile在当前窗口中打开文件?
EN

Stack Overflow用户
提问于 2020-12-12 18:14:36
回答 1查看 376关注 0票数 1

我已经在这上面花了一整天的时间了。假设我打开emacs并按C-c p p打开projectile-switch-project,然后按RET选择一个项目,emacs使用当前缓冲区水平打开一个新窗口(在前一个窗口的顶部)。

我需要的是投影使用已经存在的窗口,而不是打开一个新的窗口。我已经检查了我的配置的每一行,并能找出导致它的原因。

我已经发布了我的配置,但它被分成了多个文件,这使得链接到这里是不切实际的。

我能想到的相关包有: projectile,ivy swiper --三部曲

到目前为止,我已经尝试了在不加载的情况下启动emacs (ivy swiper律师),并且我已经尝试用最少的代码替换我所有的投射代码:

代码语言:javascript
复制
(use-package projectile
  :ensure t
  :init
  (projectile-mode +1)
  :bind (:map projectile-mode-map
              ("s-p" . projectile-command-map)
              ("C-c p" . projectile-command-map)))

这也不管用。

我不希望有任何细节,因为这是一个手工制作的配置,但是我希望得到关于在哪里寻找可能的原因的一般指示。

EN

回答 1

Stack Overflow用户

发布于 2020-12-13 03:39:27

我正在研究更多,看看我是否能为你找到更好的方法,但这是我到目前为止所拥有的……

如果希望查看定制选项,只需输入M-x customize即可。我找到了一大堆你可以浏览的选项。Projectile列在“方便性”下,框架/窗口列在“环境”下。如果安装了MELPA,您还可以搜索您可能感兴趣的包以进行更多定制。

考虑到缓冲区和窗口的工作方式,我认为你不能简单地用另一个文件的内容替换缓冲区中的内容。我认为(或者至少我一直以来使用Emacs的方式),如果需要,你总是会打开一个新的缓冲区来打开一个文件,并关闭旧的缓冲区。

根据我所读到的内容,buffers就像Emacs和您正在查看的文件之间的接口。它建立一个连接,指向文件,并为缓冲区创建一个名称(通常是从文件名创建的,除非您更改它)。我发现有趣的是,你甚至可以对同一个文件打开多个缓冲区,当你在屏幕上输入一个缓冲区时,文本应该实时显示在另一个缓冲区中。

我读了一些关于它的文档,我想你要找的命令是C-x C-fC-x d,它可以打开DiredMode。第一个命令打开您的主目录,第二个命令打开所选缓冲区中文件的当前目录。这将打开一个迷你缓冲区来搜索文件,当您选择文件时,它应该在最初查看的缓冲区顶部的新缓冲区中打开文件。

然后,您可以使用C-x b列出已经打开的其他缓冲区,并在这些缓冲区之间移动。

此外,M-x projectile-find-file是一个命令,您可以使用它来搜索文件并获得相同的结果。我没有将其设置为键绑定,所以我不知道是否有默认值,另外我使用的是带有邪恶模式的Spacemacs,所以并不是所有的东西都与原始Emacs相同。

此外,也许可以研究一下你可以从MELPA获得的扩展,比如Treemacs

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65263761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档