我已经在这上面花了一整天的时间了。假设我打开emacs并按C-c p p打开projectile-switch-project,然后按RET选择一个项目,emacs使用当前缓冲区水平打开一个新窗口(在前一个窗口的顶部)。
我需要的是投影使用已经存在的窗口,而不是打开一个新的窗口。我已经检查了我的配置的每一行,并能找出导致它的原因。
我已经发布了我的配置,但它被分成了多个文件,这使得链接到这里是不切实际的。
我能想到的相关包有: projectile,ivy swiper --三部曲
到目前为止,我已经尝试了在不加载的情况下启动emacs (ivy swiper律师),并且我已经尝试用最少的代码替换我所有的投射代码:
(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)))这也不管用。
我不希望有任何细节,因为这是一个手工制作的配置,但是我希望得到关于在哪里寻找可能的原因的一般指示。
发布于 2020-12-13 03:39:27
我正在研究更多,看看我是否能为你找到更好的方法,但这是我到目前为止所拥有的……
如果希望查看定制选项,只需输入M-x customize即可。我找到了一大堆你可以浏览的选项。Projectile列在“方便性”下,框架/窗口列在“环境”下。如果安装了MELPA,您还可以搜索您可能感兴趣的包以进行更多定制。
考虑到缓冲区和窗口的工作方式,我认为你不能简单地用另一个文件的内容替换缓冲区中的内容。我认为(或者至少我一直以来使用Emacs的方式),如果需要,你总是会打开一个新的缓冲区来打开一个文件,并关闭旧的缓冲区。
根据我所读到的内容,buffers就像Emacs和您正在查看的文件之间的接口。它建立一个连接,指向文件,并为缓冲区创建一个名称(通常是从文件名创建的,除非您更改它)。我发现有趣的是,你甚至可以对同一个文件打开多个缓冲区,当你在屏幕上输入一个缓冲区时,文本应该实时显示在另一个缓冲区中。
我读了一些关于它的文档,我想你要找的命令是C-x C-f或C-x d,它可以打开DiredMode。第一个命令打开您的主目录,第二个命令打开所选缓冲区中文件的当前目录。这将打开一个迷你缓冲区来搜索文件,当您选择文件时,它应该在最初查看的缓冲区顶部的新缓冲区中打开文件。
然后,您可以使用C-x b列出已经打开的其他缓冲区,并在这些缓冲区之间移动。
此外,M-x projectile-find-file是一个命令,您可以使用它来搜索文件并获得相同的结果。我没有将其设置为键绑定,所以我不知道是否有默认值,另外我使用的是带有邪恶模式的Spacemacs,所以并不是所有的东西都与原始Emacs相同。
此外,也许可以研究一下你可以从MELPA获得的扩展,比如Treemacs
https://stackoverflow.com/questions/65263761
复制相似问题