有没有办法在多个缓冲区上执行 emacs 命令,而不必单独选择它们并在每个单独的缓冲区上执行它。
我通常打开与特定正则表达式匹配的多个文件,例如~/*.py
并希望启用特定模式,例如hs-minor-mode
or glasses-mode
在每个上,或者说执行C-c @ C-M-h
在各个。目前我必须选择其中每一项并单独进行。那么是否有黑客或循环来自动执行任务。
假设我从缓冲区列表中标记了缓冲区,然后对所有标记的缓冲区运行命令。
I tried this https://stackoverflow.com/a/12778675/1309352但执行命令后eval-expression
我完全无法访问我的迷你缓冲区,这意味着每当我打字时M-x
迷你缓冲区返回了这个
无法访问迷你缓冲区 emacs 错误“进程菜单模式不支持 Hideshow Minor 模式”
我被迫杀死整个 emacs 进程,因为C-x C-s
最终任务也不起作用。
PS:我没有使用elisp的经验
您可以为此使用 ibuffer 模式(它是默认 Emacs 发行版的一部分)。
(global-set-key "\C-x\C-b" 'ibuffer) ;; make ibuffer the default
In *Ibuffer*
您可以使用标记所需的缓冲区m
进而
在每个中执行一个表单E
.
一般来说,ibuffer
比通常的缓冲区列表灵活得多,我认为ibuffer
实际上应该是 Emacs 中的默认缓冲区列表。
如果您经常这样做,您可能希望在每次进入 python 模式时通过将它们附加到模式挂钩来切换这些特定模式:
(add-hook 'python-mode-hook 'hs-minor-mode)
(add-hook 'python-mode-hook 'glasses-mode)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)