web-dev-qa-db-ja.com

マウスを使わずにemacsでアクティブなミニバッファプロンプトに戻る方法

Emacsでは、ファイルを見つけたり、バッファーを切り替えたり、ミニバッファーで何かをしている最中に、何らかの理由で別の場所をクリックすることがあります。戻ると、ミニバッファプロンプトを再びアクティブにする唯一の方法は、ミニバッファの内側をクリックすることです。これは、薄い領域であるため、煩わしいものです。マウスを使用せずにアクティブなミニバッファープロンプトに切り替える方法はありますか?

36

これはあなたが望むことをします。選択したキーにバインドします。

(defun switch-to-minibuffer-window ()
  "switch to minibuffer window (if active)"
  (interactive)
  (when (active-minibuffer-window)
    (select-frame-set-input-focus (window-frame (active-minibuffer-window)))
    (select-window (active-minibuffer-window))))
(global-set-key (kbd "<f7>") 'switch-to-minibuffer-window)
25
Trey Jackson
C-x o 

必要に応じて繰り返します。

C-x oは、コマンドother-windowを実行します。これは、「Cソースコード」のインタラクティブな組み込み関数です。

ウィンドウを循環させたくない場合は、initファイルに関数を追加して、キーにバインドできます。このような何かがうまくいくかもしれません:

(defun select-minibuffer ()
 "Make the active minibuffer the selected window."
 (interactive)
 (when (active-minibuffer-window)
   (select-window (active-minibuffer-window))))
23
Richard Hoskins

別のオプションは switch-window

私はそれが本当に便利なパッケージだと思います:それはあなたが視覚的にどんなEmacsウィンドウにでも素早く移動できるようにします(そして私はEmacsでたくさんの開いているウィンドウを使用します)。

ただし、アクティブな場合は、ミニバッファーに移動できることもわかります。

enter image description here

それが役に立てば幸い。

6
rsenna
;; faster switching between windows in the same frame
(windmove-default-keybindings)

上記の2行のコードを.emacs.elに追加すると、ミニバッファーだけでなく、 Shift-Arrow