我最近开始使用emacs,我很乐意在大多数情况下使用它。我唯一不喜欢的是在缓冲区之间切换。我经常打开一些缓冲区,而且我已经厌倦了使用C-x b
和C-x C-b
,是否有任何软件包可以更容易地在缓冲区之间切换?我已经调查了emacs wiki on switching buffers,我很欣赏有关正在使用/享受的内容的见解/反馈。谢谢。
答案 0 :(得分:24)
iswitchb-mode
在Emacs> = 24.4中已过时,替换为ido
。 iswitchdb
的所有功能现在都由ido
提供。罗斯在答案中提供了the documentation的链接。您可以使用.emacs
中的以下内容激活(或使用Ross建议的自定义界面):
(require 'ido)
(ido-mode 'buffers) ;; only use this line to turn off ido for file names!
(setq ido-ignore-buffers '("^ " "*Completions*" "*Shell Command Output*"
"*Messages*" "Async Shell Command"))
默认情况下,ido
提供缓冲区名称和文件名的完成。如果您只想替换iswitchb
的功能,则第二行会关闭此功能以获取文件名。 ido
将忽略与ido-ignore-buffers
中列出的正则表达式匹配的所有缓冲区。
下面针对iswitchb-mode
描述的行为同样适用于切换缓冲区的ido
。
iswitchb-mode
使用非常直观的缓冲区切换完成系统替换默认的C-x b
行为。有更复杂的选择,但我从来没有比这更需要。
点击C-x b
后,会显示所有缓冲区的列表。开始键入所需缓冲区的名称(或其名称的一部分),并缩小列表,直到只有一个缓冲区匹配。但是,您不需要完成名称,只要您想要的缓冲区突出显示,按下Enter将移动您。您还可以使用C-s
和C-r
按顺序浏览列表。
您可以在.emacs中默认启用它:
(iswitchb-mode 1)
您还可以告诉它忽略您从未(或很少)需要切换到的某些缓冲区:
(setq iswitchb-buffer-ignore '("^ " "*Completions*" "*Shell Command Output*"
"*Messages*" "Async Shell Command"))
答案 1 :(得分:14)
您可以使用C-x <right>
(next-buffer
)和C-x <left>
(previous-buffer
)在缓冲区中循环播放。您可以将S-<right>
和S-<left>
绑定到这些函数。 (S
是“超级密钥”或Windows密钥)。这样你就可以节省一些按键。
此外,请注意C-x b
有一个默认条目,即它显示一个标准值(大多数时候这是以前查看的缓冲区),因此您不必总是明确输入缓冲区名称
另一个不错的技巧是使用C-x 2
和C-x 3
打开单独的窗口。这会同时显示几个缓冲区。然后,您可以将C-<tab>
绑定到other-window
,并获得类似于标签式浏览的内容。
答案 2 :(得分:8)
M-x customize-group ido
然后将Ido Mode
设置为Turn on both buffer and file
并将Ido Everywhere
设置为on
。然后单击顶部的Save for future sessions
按钮,享受文件和缓冲区的ido魔力。阅读the docs以了解如何使用ido。
另外,请查看smex
。
答案 3 :(得分:5)
ido-mode
提供了一种切换缓冲区的有效方法。 ibuffer
最适合管理所有已打开的缓冲区。anything
适合从不同的人那里选择感兴趣的东西
源。 (例如:单个键可用于切换到另一个键
缓冲区或打开最近关闭的文件或打开驻留的文件
在同一目录或......任何你想要的......)答案 4 :(得分:2)
如果你看过Emacs Wiki,你可能已经掌握了所有这些信息,但这里有一些其他相关的Q&amp; As:
我的工具包包括ibuffer,windmove + framemove,winner-mode和custom binding使 Cx left / right 和 Cc 左 / 右减少使用麻烦。
答案 5 :(得分:2)
我已将“§”-key映射到“缓冲区列表”,我发现它非常有效。
答案 6 :(得分:1)
我已经开始使用任何东西几天了,我真的很喜欢它: http://www.emacswiki.org/emacs/Anything 。
Emacs-fu对任何事情都有很好的介绍: http://emacs-fu.blogspot.com/2011/09/finding-just-about-anything.html
答案 7 :(得分:0)
helm-mini
,它是helm的一部分。与其他头盔功能一样,它允许逐步缩小选择范围。它还会搜索您最近访问的缓冲区,这是重新打开缓冲区的一种非常不错的方法。刚开始时,Helm可能会有点令人惊讶,作为Emacs的新用户,我在视觉上感到不知所措,因此我更喜欢ido
或ibuffer
,在其他答复中都建议使用。但是现在我绝对喜欢它,并一直将其用于无数事物。
mouse-buffer-menu
默认绑定到<C-mouse-1>
(控制键+鼠标左键),并打开一个弹出窗口,其中列出了当前缓冲区。