如何在Emacs中更轻松地切换缓冲区?
我最近开始使用emacs,我大部分时间都很喜欢使用它。我唯一不喜欢的是在缓冲区之间切换。我经常打开一些缓冲区,我已经厌倦了使用如何在Emacs中更轻松地切换缓冲区?,emacs,Emacs,我最近开始使用emacs,我大部分时间都很喜欢使用它。我唯一不喜欢的是在缓冲区之间切换。我经常打开一些缓冲区,我已经厌倦了使用C-xb和C-xc-b,是否有任何软件包可以使缓冲区之间的切换更容易?我已经调查过了,我希望能得到关于我们正在使用/享受什么的见解/反馈。谢谢 您可以使用C-x(next buffer)和C-x(previous buffer)在缓冲环中循环。您可以将S-和S-绑定到这些函数。(S是“超级键”或windows键)。这样可以节省一些击键次数 此外,请注意,C-x b有一个默
C-xb
和C-xc-b
,是否有任何软件包可以使缓冲区之间的切换更容易?我已经调查过了,我希望能得到关于我们正在使用/享受什么的见解/反馈。谢谢 您可以使用C-x
(next buffer
)和C-x
(previous buffer
)在缓冲环中循环。您可以将S-
和S-
绑定到这些函数。(S
是“超级键”或windows键)。这样可以节省一些击键次数
此外,请注意,C-x b
有一个默认条目,即它显示一个标准值(大多数情况下,这是以前查看的缓冲区),因此您不必总是显式输入缓冲区名称
另一个好方法是使用C-x2
和C-x3
打开单独的窗口。这将同时显示多个缓冲区。然后您可以将C-
绑定到其他窗口
,并获得类似于选项卡式浏览的内容。更新:iswitchb模式
在Emacs>=24.4中已过时,由ido
取代。
iswitchdb
的所有功能现在都由ido
提供。罗斯在他的回答中提供了一个链接。您可以在.emacs
中使用以下内容激活(或按照Ross的建议使用自定义界面):
(需要“ido”)
(ido模式“缓冲区”);;仅使用此行关闭文件名的ido!
(setq ido忽略缓冲区“(^”“*完成*”“*Shell命令输出*”
“*消息*”“异步Shell命令”))
默认情况下,ido
提供缓冲区名称和文件名的补全。如果您只想替换iswitchb
的功能,第二行将关闭文件名的此功能ido
将忽略与ido ignore buffers
中列出的regexp匹配的任何缓冲区
下面描述的iswitchb模式的行为同样适用于切换缓冲区的ido
iswitchb模式(Emacs<24.4)
iswitchb模式
将默认的C-x b
行为替换为非常直观的缓冲区切换和完成系统。有更复杂的选择,但我从来没有比这更需要
点击C-x b
后,将显示所有缓冲区的列表。开始键入所需缓冲区的名称(或其部分名称),列表将缩小,直到只有一个缓冲区匹配为止。不过,您不需要填写名称,只要突出显示所需的缓冲区,按enter键就会将您移动到该缓冲区。您还可以使用C-s
和C-r
按顺序在列表中移动
默认情况下,您可以在.emacs中启用此选项:
(iswitchb模式1)
您还可以告诉它忽略您从未(或很少)需要切换到的某些缓冲区:
(setq iswitchb buffer ignore'(“^”“*完成*”“*Shell命令输出*)
“*消息*”“异步Shell命令”))
如果您查看过Emacs Wiki,您可能已经掌握了所有这些信息,但以下是一些其他相关的问答:
我的工具包由ibuffer、windmove+framemove、winner模式和a组成,使C-xleft/right和C-cleft/right使用起来不那么麻烦。M-x自定义组ido
然后将ido模式设置为同时打开缓冲区和文件,并将ido Everywhere
设置为打开。然后单击顶部的为将来的会话保存
按钮,享受文件和缓冲区的ido魔力。通过阅读了解如何使用ido
另外,看一看 我已经开始使用任何东西好几天了,我真的很喜欢它:
Emacs fu对任何事情都有很好的介绍:
ido模式
提供了切换缓冲区的有效方法李>
ibuffer
最适合管理所有打开的缓冲区
任何东西
都有助于从不同领域选择感兴趣的东西
来源。(例如:一把钥匙可以用来切换到另一把钥匙
缓冲区或打开最近关闭的文件或打开文件
在同一个目录或…任何你想要的…)
我已将“§”-键映射到“缓冲区列表”,我发现它非常有效。
- 我最喜欢的功能是
helmmini
,它是的一部分
与其他舵功能一样,它允许逐渐缩小选择范围。它还搜索最近访问的缓冲区,这是重新打开缓冲区的一种非常好的方法。Helm一开始可能有点让人惊讶,作为一个新的Emacs用户,我发现它在视觉上让人难以忍受,我更喜欢ido
或ibuffer
,这在其他回复中已经提出。但现在我绝对喜欢它,并且一直用它做无数的事情
- 我偶然发现了一些有用的东西:
鼠标缓冲区菜单
默认绑定到
(控制键+鼠标左键单击)并打开一个弹出窗口,其中包含当前缓冲区的列表。是否涵盖了这一点?我几乎从不使用切换到缓冲区^xb。//我经常使用缓冲区菜单(我已经绑定到^bm-我有自己的、高度非标准的键绑定)。//我还有一些命令可以切换到特定类型的缓冲区,例如,^ss切换到shell缓冲区,使用对缓冲区名称(如*shell*)的foo部分的完整读取。我个人使用ido模式,我认为这非常类似。我在Microsoft键盘上做了类似的操作,绑定“menu”键(在右手Alt和Ctrl之间)我觉得非常方便的是,我会把它发送到ibufferibuffer