我想将emacs中的缓冲区/文件集与不同的项目相关联,并从一个项目切换到另一个项目。这将涉及关闭与当前项目关联的所有缓冲区并打开与切换到项目相对应的文件。我尝试使用书签+按照https://emacs.stackexchange.com/questions/315/using-desktop-for-basic-project-management中的建议设置桌面,但所有缓冲区都保持打开状态。我也尝试使用workgroups2(https://github.com/pashinin/workgroups2)设置工作组,但也有类似的问题。是否有可用于此的emacs软件包?
答案 0 :(得分:4)
有一个名为Projectile的优秀软件包可以完全按照您的描述进行操作。
答案 1 :(得分:2)
我建议您不要使用emacs来跨项目分别管理缓冲区,框架和编辑器状态。
而是使用桌面管理器并为每个项目创建单独的桌面。这很有效,因为您不仅可以单独的emacs实例(您可以确定它们是真正分开的),但您也可以将单独的Web浏览器打开到文档或其他项目特定的应用程序,当您在项目之间切换时,这些内容会被换入和换出。
答案 2 :(得分:2)
你说," 我尝试使用书签+设置桌面+ using-desktop-for-basic-project-management中的建议,但所有缓冲区都保持打开状态。"。
我猜你的意思是切换到桌面不会杀死切换前存在的缓冲区。不是它本身,它不是。怎么能猜出你想要杀死哪些这样的预先存在的缓冲区呢?
显然,您不希望杀死桌面切换之前存在的所有缓冲区。
要获得您想要的行为,您需要以某种方式决定并指定您想要杀死的缓冲区。例如,您可以选择杀死具有特定模式的所有模式(可能使用desktop-buffer-mode-handlers
)。
使用Bookmark+,您可以拥有不止一件事的书签。特别是,在这里,你可以创建一个链接在一起的序列书签(1)一个函数书签,它杀死你要杀死的所有缓冲区,以及(2)a < em>桌面书签。
或者您可以使用desktop-after-read-hook
或desktop-buffer-mode-handlers
进行清理。
(但听起来你并没有真正考虑过你想要的缓冲区你想要什么样的行为,你不想打开&#34;以便你可以清楚地指明它。如果你能指定它然后你可以使用桌面挂钩或书签或两者相当容易地实现它。只是一个猜测。)