最近尝试在Emacs里面调用gdb调试程序,使用了gdb-many-windows这个特性,一个frame上开5个window(参见截图)。窗口多了切换便成了问题,很快就放弃使用C-x o,而用了鼠标。而来发现可以使用windmove,只要在.emacs文件里面加上:
(windmove-default-keybindings)
然后就可以使用Shift加方向键来移动光标到不同窗口。然而,好多快捷键只有当光标在GUD interaction buffer时才有效,我就写了一个命令,并绑定在F9上,一键返回GUD interaction buffer所在的window。
(defun select-gud-interaction-window ()
(interactive)
(if (and (boundp 'gud-comint-buffer)
gud-comint-buffer
(window-live-p (get-buffer-window gud-comint-buffer)))
(select-window (get-buffer-window gud-comint-buffer))
(message "GUD interaction window is inactive")))
(define-key global-map [(f9)] 'select-gud-interaction-window)
更多emacs配置参见我的.emacs文件。