【问题标题】:Emacs - How do I get projectile to open file in current window?Emacs - 如何让弹丸在当前窗口中打开文件?
【发布时间】:2020-12-12 10:14:36
【问题描述】:

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

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

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

我能想到我使用的相关包是: 弹丸, 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)))

这也没用。

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

【问题讨论】:

    标签: emacs


    【解决方案1】:

    我正在研究更多,看看是否可以为您找到更好的方法,但这是我目前所拥有的......

    如果您想查看自定义选项,只需输入M-x customize。我找到了很多可以浏览的选项。弹丸列在“便利”下,框架/窗户列在“环境”下。如果您安装了 MELPA,您还可以搜索您可能感兴趣的软件包以进行更多自定义。

    考虑到缓冲区和窗口的工作方式,我认为您不能只用另一个文件的内容替换缓冲区内的内容。我认为(或者至少我是如何使用 Emacs 的)您将始终打开一个新缓冲区来打开文件并在需要时关闭旧缓冲区。

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

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

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

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

    另外,也许看看你可以从 MELPA 获得的扩展,比如 Treemacs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      相关资源
      最近更新 更多