1

我想在浏览器中打开当前正在编辑的 html 页面,然后通过按键将窗口系统焦点切换到浏览器。我正在使用 gnome 桌面环境。

下面是代码(除了焦点切换)

(defun open-in-browser()
  (interactive)
  (save-buffer)
  ; switch the windowing systems focus to the browser
  (let ((filename (buffer-file-name)))
    (browse-url (concat "file://" filename))))

(global-set-key (kbd "<f5>") 'open-in-browser)

我试过使用lower-frame函数和suspend-frame函数,都隐藏了不需要的emacs-frame,因为我无法看到代码,除此之外我必须输入ALT-TAB两次才能切换到再次使用emacs-frame。

如何使用 elisp 切换到另一个应用程序(就像在 gnome 中模拟 ALT-TAB 一样)。

4

3 回答 3

1

您正在寻找的功能可能unfocus-frame已经过时了。您需要一个合作的窗口管理器才能实际执行您的要求。

于 2012-08-08T11:09:48.860 回答
1

你不能做你所要求的。改变焦点是窗口管理器的责任,emacs 做不到。你可以

  1. 从 emacs 调用外部程序来做你想做的事
  2. 创建一个键绑定,它将结合<f5>ALT-TAB
于 2012-08-08T15:35:46.800 回答
0

有些程序可用于从命令行控制窗口管理器,以便您可以从 elisp 调用命令来激活窗口和其他东西。

一个这样的程序是wmctrl。我不知道它是否适用于 Gnome,您应该尝试一下。

于 2012-08-08T12:15:12.697 回答