在emacs中,是否有M-x命令或组合键将所有当前打开的缓冲区渲染到不同的窗口中?为了清楚起见,我们假设我有四个打开的缓冲区,而且我只看到当前正在显示的一个缓冲区,并且我想在一个步骤中将每个缓冲区显示在一个象限中。显示Emacs中所有打开的缓冲区
2
A
回答
2
您将能够开始与下面的代码,如果没有一个已经知道的方式做到这一点:
(defun buffer-in-window-list()
(let (buffers)
(walk-windows (lambda (window) (push (window-buffer window) buffers)) t t)
buffers))
(defun display-all-buffers()
(interactive)
(let (buffers-in-window (buffer-in-window-list))
(dolist (buffer (buffer-list))
(when (and (not (string-match "\\`[[:space:]]*\\*" (buffer-name buffer)))
(not (memq buffer buffers-in-window)))
(set-window-buffer (split-window (get-largest-window)) buffer)))
(balance-windows)))
的display-all-buffers
命令打开一个新窗口每个当前不显示的缓冲区(包括其他帧)。为了便于使用,它忽略了名称以*
(可选地,以空白字符为前缀)开头的缓冲区,因为它们通常仅供内部使用。
请注意,Emacs不允许用户制作太小的窗口。因此,当显示的缓冲区太多时,命令会按照最近的显示或选择顺序显示尽可能多的缓冲区,并发出错误信号。
3
我推荐ibuffer。 M-x ibuffer可能就是你想要的。这里是我的ibuffer配置:
;; *Messages* is so annoying. Also, I really like ibuffer
(require 'ibuf-ext)
(add-to-list 'ibuffer-never-show-predicates "^\\*Messages")
(add-to-list 'ibuffer-never-show-predicates "^\\*Completions")
(global-set-key (kbd "C-b") 'ibuffer)
(kill-buffer "*scratch*")
('ibuffer)
(switch-to-buffer "*Ibuffer*")
+0
感谢user996056,我不知道关于ibuffer,并且这个配置很好! –
相关问题
- 1. 所有emacs缓冲区中的行号
- 2. 打开文件时打开没有暂存缓冲区的emacs
- 3. 让emacs grep缓冲区使用特定的emacs缓冲区来显示命中
- 4. Cocoa Emacs打印缓冲区
- 5. 关闭缓冲区后显示Emacs缓冲区
- 6. XEmacs缓冲区选项卡不显示所有缓冲区
- 7. 获取所有Emacs缓冲区列表
- 8. 在emacs中的所有打开的缓冲区上运行keep-lines命令
- 9. Emacs搜索并打开多个文件并在所有缓冲区中搜索
- 10. 如何在Emacs缓冲区中突出显示所有出现的单词?
- 11. 发送bash命令到emacs中打开的终端缓冲区
- 12. 告诉Emacs在特定窗口中打开新的缓冲区
- 13. 打开窗口并加载emacs lisp中的特定缓冲区
- 14. Markdownize Emacs缓冲区
- 15. Emacs erlang缓冲区
- 16. 如何在右侧窗口中打开emacs-nav缓冲区?
- 17. Emacs ido在循环列表中首先打开缓冲区
- 18. Emacs缓冲区菜单:如何仅显示文件+ dired缓冲区?
- 19. Emacs:打印一个UTF-8缓冲区
- 20. 在最近Emacs的其他窗口中显示缓冲区
- 21. 仅在Emacs的迷你缓冲区中显示错误消息
- 22. Emacs重新打开先前被杀死的缓冲区?
- 23. 如何用包含输入的缓冲区打开emacs?
- 24. 使用垂直分割打开新的Emacs缓冲区
- 25. 将函数应用于emacs中的所有缓冲区
- 26. 如何恢复emacs缓冲区列表中的缓冲区?
- 27. 显示协议缓冲区消息中的所有元素
- 28. 将所有选定的文件打开为隐藏缓冲区?
- 29. 在Emacs中拆分窗口 - Tabbar只显示活动缓冲区
- 30. 如何在Emacs缓冲区中突出显示标签?
4个缓冲区?我的Emacs现在有188个缓冲区(尽管实际上只有154个缓冲区正在访问文件)。 – cjm
cjm你有所有这些缓冲区分裂成屏幕的不同部分? –
显然不是,他们不适合。我一次只有几个实际显示(通常只有1个)。 – cjm