我过去三年一直在使用emacs来满足我的所有文本编辑需求.当我在一个文件中,处理代码或诸如此类的东西时,我效率很高.有两个文件,我可以在它们之间"Cx b RET",我做得很好.但是,每当我需要一次处理两个以上的文件时,我往往会迷路.
以下是我想要解决的一些问题:
我忘记了我的一些缓冲区被调用,但我不明白为什么Cx Cb将我的窗口分成两个缓冲区并退出迷你缓冲区.当然我可以切换缓冲区并选择一个缓冲区来访问,但这感觉不直观,让我打开两个缓冲区.
当我访问目录而不是文件时,我有一个方便的所有文件和目录列表.我通常希望用以下两种方法之一做:1)打开一个文件,再也不会看到这个缓冲区或2)打开一堆文件,再也不会看到这个缓冲区了.我真的不知道如何做到这一点,因为将点移动到文件并点击返回不会做这些事情.
我知道我的缓冲区不像标签,但我倾向于想要滚动它们以找到我想要的东西.我不知道有任何关键绑定,但我希望它是Mn/Mp等.然后,这可能是一种非常低效的切换缓冲区的方法.
当我打开任何类型的交互式帮助时(例如在ESS中),我习惯切换回我正在使用的缓冲区并使用Cx 1返回单个缓冲区.但是,当我这样做时,帮助缓冲区在我的缓冲区列表中挂起,这让我更加困惑.我知道我可以切换到那个缓冲区,杀死它,切换回来,然后回到单个缓冲区,但这似乎是错误的.
到目前为止我处理这个问题的方法涉及在不同的工作空间中使用平铺窗口管理器和几个emacs窗口,而不是实际学习管理emacs中的大量文件的最佳方法.我不一定想改变emacs以更好地满足我的需求(尽管如果它符合我要说的话我会对此持开放态度),相反,我想在处理文件后面思考一下思维过程/缓冲emacs的工作方式,以及如何提高它的效率.
任何能够帮助我理解正确方法的答案,或管理我的缓冲区或文件的更有效方法都将非常感激.
phi*_*ils 20
绑定C-x C-b
到ibuffer
.这是一个具有许多高级功能的更好的缓冲区列表工具,其默认行为是用缓冲区列表替换当前缓冲区,然后在选择缓冲区时隐藏列表(让您使用新选择的缓冲区代替原创的).
当然,您可以简单地使用C-x b
在迷你缓冲区中输入您的选择; 然而,tab-completion(使其成为一个可行的选项,IMO所需)确实会暂时打开一个新窗口,此时我认为你可以熟悉一些具有更多功能的东西.
使用a
而不是RET
从dired中选择.这会杀死dired缓冲区而不是将其抛在脑后.C-h m
在任何缓冲区中将显示其主要模式的帮助(其次是辅助模式的帮助),您可以阅读那里所有可用的dired键绑定.
http://www.emacswiki.org/cgi-bin/wiki/TabBarMode?(编辑:我更喜欢Rémi的答案,但如果你特别热衷于TabBarMode会给你视觉标签元素.)
q
在很多主要模式中都有一个'退出'功能.通常它会掩盖缓冲区而不是杀死缓冲区,但我当然觉得很好.
为了详细说明#1,ibuffer有很多不错的功能,并且M-x customize-group ibuffer RET
会让你知道如何根据自己的喜好自定义它.
此外,您可以按许多条件过滤缓冲区列表(同样,用于C-h m
查看其帮助页面),然后从当前过滤器生成"组"定义,并保存自定义过滤器和组以供将来使用.
例如:
/ f ^/var/www/ RET
:过滤缓冲区列表,仅显示以/var/www/
.开头的文件名./ s Web filters RET
:将活动过滤器名称并保存到init文件中./ g Web development RET
:从活动筛选器创建命名组./ S My groups RET
:为init文件命名并保存组定义./ r Web filters RET
:调用"Web过滤器"过滤器./ R My groups RET
:调用"我的组"组.RET
在组名称上折叠或展开它.C-k
并C-y
杀死和猛击团体,重新安排他们.C-h m
欲获得更多信息...这样,您可以运行单个Emacs实例,并为不同类型的任务创建过滤器和组,并可以轻松地在它们之间切换.
Bry*_*Ash 17
我认为你真的很喜欢Ido处理多个缓冲区,这些缓冲区的名字是你无法记住的.键入时,C-x b
它会以最常用的顺序显示打开的缓冲区列表.当您在缓冲区名称中键入一些字符时,列表将被过滤.您键入的字符不必是名称的乞讨或连续.使用C-f
,C-b
通过缓冲的选择或左/右箭头键的周期.
另请参阅Smex的Ido功能M-x
关闭窗口完成C-x 0
.故意拆分窗口C-x 2
用于水平,C-x 3
垂直.我喜欢这个功能,因为它允许我同时显示测试和生产代码. C-x o
把我带到另一个窗口.