有人可以帮我理解emacs 25中的list-buffer(aka Ctrlx- Ctrlb)行为吗?
我以前看到的行为是它在另一个Emacs窗口(虚拟Emacs窗口)中打开缓冲区列表,如果需要,可以拆分第二个窗口.在某些版本中,它并不总是非常确定它使用的是哪个其他窗口(如果我有超过2个),但我至少可以指望它不使用光标所在的窗口.
我最近安装了25.0.50.1以解决远程文件打开错误(工作!),现在它并不总是这样做.它经常在我的光标所在的同一窗口中打开缓冲区列表.它通常以它以前的方式工作.我无法弄清楚它背后的任何押韵或理由.
有人可以启发我现在使用的算法吗?当我无法预测哪个窗口被替换时,它使管理多个emacs Windows以供参考查看几乎不可能.
我猜你的主要问题是有一个方便的方法来切换缓冲区,而不是理解emacs的源代码,所以我强烈建议你检查一下helm包:http://tuhdo.github.io/helm-intro.html
安装和遵循教程大约需要10到20分钟,这非常值得.我承诺.
安装helm并启用后,您的关键序列是Ctrl- x b:Shows open buffers, recently opened files
您将获得许多其他工具的电源包,以便在emacs中工作.我在切换缓冲区方面遇到了同样的问题,而且看似"混乱"的缓冲区弹出窗口.后helm安装,问题最小化,以无形的,因为它是那么容易切换到您需要的缓冲区.
更新:
处理包安装错误和包兼容性:
M-x list-load-path-shadows查看是否存在任何冲突的包.由于你可能没有很多外部包,我建议备份~/.emacs.d并有一个新的空包.另外,大多数情况下安装包时,我尝试使用emacs包管理器.使用包管理器的好处:
以下是启用melparepo和安装包的工作流程
M-x customize-group RET package
# Click or move cursor to and enter: Package Archives
# Insert the melpa repository.
Archive name: melpa
URL or directory name: http://stable.melpa.org/packages/
#Save above settings and then you can use the following to install packages:
M-x list-packages RET
f to filer package names
i to mark for installation
x for execution of installation
u for unmark package at cursor.
# to avoid using load-path repeatedly,
# I have this in my .emacs before any 'require' command:
; Set path recursively to one folder
(let ((default-directory "~/.emacs.d/elpa/"))(normal-top-level-add-subdirs-to-load-path))
Run Code Online (Sandbox Code Playgroud)