【问题标题】:Emacs session / projects / window managementEmacs 会话/项目/窗口管理
【发布时间】:2009-11-06 08:28:44
【问题描述】:

我大部分时间都在使用 Ruby on Rails 项目,所以我需要一种方法来保存项目和我正在处理的缓冲区/窗口的状态,主要是因为我经常发现自己切换到不同的项目有几个分钟,然后回到我正在从事的项目。 Desktop.el 似乎很接近,除了窗口配置保存。

对于那些熟悉 TextMate 的人,我正在寻找可以打开的类似 textmate 项目文件的东西,它们会打开一个不同的编辑器实例,该实例只打开该项目中的文件。

谢谢, 塞萨尔

【问题讨论】:

    标签: ruby-on-rails emacs editor text-editor textmate


    【解决方案1】:

    我试图设身处地为您着想,想出我喜欢的 Emacs 解决方案。我能想到的最好的办法是,我偶尔会进入一种模式,我不希望通过处理 Emacs 中断来弄乱我的窗口,这种中断需要不同的 Emacs 资源(缓冲区/窗口)。举例来说,我有一个 ediff 正在进行,我想去暂存缓冲区测试一个想法,而不用弄乱我的 ediff 视角,借用 Eclipse 概念。在这种情况下,我通常会使用C-x 5 2 来调出一个新框架。如果我已经在监视器上显示了多个帧,我将使用C-x 5 f 来选择一个命名帧。

    在您的情况下,您可能有一组带有“proj-x”前缀的帧和另一组带有“proj-y”前缀的帧。在这种情况下,C-x f proj-x-foo 提供了一个快速切换来处理您的中断C-x f proj-y-fee 将您切换回来。在大多数情况下,我认为您在谈论两个框架,这更容易:C-x f o 在两个框架之间切换。

    我认为重要的一点是,使用 Emacs,人们可以“放弃”你正在做的事情,而无需关闭任何东西,做其他事情,然后回到你原来的环境,几乎没有大惊小怪或混乱。这是对使用 Emacs 可以同时打开数百个文件的概念的推论,即您不需要关闭一个文件然后再打开另一个文件。打开它们,然后有一个球。 :-) 当你接受这种风格时,C-x s 就是你的朋友。

    【讨论】:

    • 我不想要一个新框架,我只想在一个框架和多个窗口(通常是 2-3 个)中拥有一组我正在处理的文件,其中一个应该是dired(不会关闭)
    【解决方案2】:

    我喜欢 window-configuration-to-register (C-x r w <register_name>) 用于类似于您所描述的情况。将窗口配置保存到寄存器后,只需 C-x r j <register_name> 即可返回保存的配置。

    【讨论】:

      【解决方案3】:

      也许您正试图让 emacs 像 IDE 一样工作,但事实并非如此。我经常在 emacs 中打开多个项目,但从不关闭 emacs,而不是几个星期。这是几年前我最终选择 emacs 的主要原因之一。在我当前的项目中,我在 java、ruby 和 Lisp 之间切换。我还需要编辑 jsp、erb、html 和 css 的功能,我唯一还没有整理出来的是 javascript。除了能够完全自定义我的环境之外,这也是 emacs 的强大之处。

      我确实一直在使用 ECB,通常当我在文件中移动时,它会跟随我,我不是从“Windows”的角度工作,而是从“我在这里”的角度工作。一个特定的缓冲区是否打开实际上并不重要。我也使用 IDO,因此切换缓冲区非常简单直观。我通常最多显示两个缓冲区(但可能有很多打开)。 M-X s 对于确保您已保存也很有用,因为它会枚举所有未保存的缓冲区并提示您。

      当我确实必须关闭 emacs 时,我通常会通过 cd 到该文件夹​​并键入 emacs app/controllers/my_controller.rb 来非常快速地回到原来的位置。从那里开始,rails 导航非常有帮助。 M-Shift-向下箭头,我们就走了...

      【讨论】:

      • 在使用 ruby​​ on rails 时,您通常有很多仅由目录路径分隔的 inde.html 文件,这对于查找正确的文件来说是一种拖累,尤其是当您的项目中有超过 1000 个文件时,而不是提到打开多个项目
      • 您希望启用“唯一性”。如果您打开了 foo/index.html 和 bar/index.html,它会将缓冲区命名为 foo/index.htmlbar/index.html 而不是 index.htmlindex.html <1>
      • @jrockway - 这是一个很棒的提示!
      【解决方案4】:

      http://www.emacswiki.org/emacs/WindowsMode - 保存和恢复窗口配置。

      【讨论】:

      • 这只会保存窗口,而不是基于项目根目录的文件/缓冲区
      【解决方案5】:

      eprojecteproject-open-all-project-files,它确保当前项目中的所有文件都被打开(或使用前缀 arg 调用它以选择任意项目)和eproject-kill-project-buffers,它关闭当前项目中的所有文件。这让您可以轻松开始项目并在完成后进行清理。

      【讨论】:

      • heya jrockway,您的解决方案仅适用于相对较少的文件(在我的情况下不是数千个)
      • 使用 eproject 打开数千个文件并不比手动打开要慢。当然,为什么您的项目包含数千个文件?
      【解决方案6】:

      IciclesBookmark+可以帮助你在几个ways使用项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-02
        • 2013-08-09
        • 2011-07-16
        • 1970-01-01
        相关资源
        最近更新 更多