【发布时间】:2017-05-18 06:33:36
【问题描述】:
我想知道 Emacs lisp 中是否有一种方法可以跳回到最后一个活动窗口,就像popd 在 Linux 中所做的那样?
我问的原因是,在某些评估代码的环境(例如 babel-repl)中,一旦启动 REPL,源代码的编辑区域就会失去对 REPL 的关注。我想改变它的行为并将焦点切换回编辑区域,例如,通过在 elisp 中添加一个额外的命令,在启动 REPL 之前跳回最后一个活动窗口。
【问题讨论】:
我想知道 Emacs lisp 中是否有一种方法可以跳回到最后一个活动窗口,就像popd 在 Linux 中所做的那样?
我问的原因是,在某些评估代码的环境(例如 babel-repl)中,一旦启动 REPL,源代码的编辑区域就会失去对 REPL 的关注。我想改变它的行为并将焦点切换回编辑区域,例如,通过在 elisp 中添加一个额外的命令,在启动 REPL 之前跳回最后一个活动窗口。
【问题讨论】:
previous-window 或 get-mru-window 应该做你想做的事。然后您可以使用
(select-window (previous-window))
【讨论】:
如果您对只切换活动缓冲区感兴趣,可以使用:
(defun prev-window ()
(interactive)
(other-window -1))
(global-set-key [(f12)] 'prev-window)
(global-set-key "\C-cp" 'prev-window)
(global-set-key "\C-cn" 'other-window)
我的 ~/.emacs 文件中有这个。 CTRL+C 然后 p(或 F12)转到上一个缓冲区。 CTRL+C 然后 n 转到下一个缓冲区。函数 other-buffer 允许您重新访问上次访问的缓冲区。通过提供一个负数,您可以颠倒它通过缓冲区列表的顺序。
【讨论】: