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)

下フレーム関数とサスペンドフレーム関数を使用してみましたが、どちらも必要のない emacs フレームを非表示にします。これは、コードを見ることができないためです。再びemacsフレーム。

elisp を使用して別のアプリケーションに切り替える方法 (gnome での ALT-TAB のエミュレーションと同様)。

4

3 に答える 3

1

あなたはあなたが求めていることをすることはできません。フォーカスの変更はウィンドウマネージャーの責任であり、emacsはそれを行うことができません。あなたは出来る

  1. emacsから外部プログラムを呼び出して、やりたいことを実行します
  2. <f5>とを組み合わせるキーバインディングを作成しますALT-TAB
于 2012-08-08T15:35:46.800 に答える
1

あなたが探している機能はおそらくありますがunfocus-frame、廃止されています。要求したことを実際に行うには、協力するウィンドウマネージャーが必要です。

于 2012-08-08T11:09:48.860 に答える
0

コマンドラインからウィンドウマネージャーを制御するために使用できるプログラムがあるので、elispからコマンドを呼び出してウィンドウなどをアクティブにすることができます。

そのようなプログラムの1つがwmctrlです。Gnomeで動作するかどうかはわかりませんが、試してみてください。

于 2012-08-08T12:15:12.697 に答える