私は非常に長い間疑問に思っていました.Emacsで専用のその他のバッファを取得するにはどうすればよいですか?
オートコンプリート、関数の説明、およびおそらくドキュメントはすべて、予期しない場所に到達することなく、事前に定義された場所 (おそらく画面の 4 分の 1 ?) に移動できます。
(専用バッファーではなく専用ウィンドウを意味していると思います。) 他のウィンドウ分割コマンドを実行せずにウィンドウを開いたままにしておくと、help/repl バッファーが自動的にそれを使用します。この質問で説明されているように、ウィンドウのサイズを変更できます。
通常のウィンドウ操作を実行できるようにしたいが、ヘルプ ウィンドウを特定のサイズにしたい場合temp-buffer-show-hook
は、一時バッファー (ヘルプ バッファーなど) が表示されたときに実行されるフックを調査することをお勧めします。試したことはありませんが、ウィンドウ構成を特定の方法で調整する関数に設定することはおそらく可能でしょう。
One On One
専用*Help*
フレームを定義するために で行うことは次のとおりです。
;; *Help* frame
(if 1on1-*Help*-frame-flag
(add-to-list
'special-display-buffer-names
(list "*Help*" '1on1-display-*Help*-frame
(list (cons 'background-color 1on1-help-frame-background)
(cons 'mouse-color 1on1-help-frame-mouse+cursor-color)
(cons 'cursor-color 1on1-help-frame-mouse+cursor-color)
'(height . 40))))
(setq special-display-buffer-names
(1on1-remove-if (lambda (elt) (equal "*Help*" (car elt)))
special-display-buffer-names)))
(defun 1on1-display-*Help*-frame (buf &optional args)
"Display *Help* buffer in its own frame.
`special-display-function' is used to do the actual displaying.
BUF and ARGS are the arguments to `special-display-function'."
(let ((old-ptr-shape (and (boundp 'x-pointer-shape) x-pointer-shape))
return-window)
(when (boundp 'x-pointer-xterm) (setq x-pointer-shape x-pointer-xterm))
(setq return-window (select-window (funcall special-display-function buf args)))
(raise-frame)
(setq x-pointer-shape old-ptr-shape)
return-window))
これらすべての詳細 (ポインターの形状など) は必要ありませんが、アイデアは得られます。主なものは置くこと*Help*
ですspecial-display-buffer-names
。本当に必要なのはそれだけです。
ここ1on1-*
でフレーム パラメーターに使用される変数は非常に明白です。*-remove-if
機能は標準ですremove-if
。完全なコードはここにあります: oneonone.el .