回答:
これを行うために会社モードに組み込まれている方法はありませんが、独自のキーバインディングをに追加できますcompany-active-map
。
簡単な実験として、私はcompany-show-doc-buffer
実装を取り、単純にcompany--electric-do
ラッパーを削除しました:
(defun my/company-show-doc-buffer ()
"Temporarily show the documentation buffer for the selection."
(interactive)
(let* ((selected (nth company-selection company-candidates))
(doc-buffer (or (company-call-backend 'doc-buffer selected)
(error "No documentation available"))))
(with-current-buffer doc-buffer
(goto-char (point-min)))
(display-buffer doc-buffer t)))
これをC-F1などの別のキーにバインドして、ドキュメントバッファを「永続的に」開くことができます。
(define-key company-active-map (kbd "C-<f1>") #'my/company-show-doc-buffer)
会社モードとオートコンプリートを比較するページへの著者のコメント:
会社モードでF1を押すとどうなりますか
ヘルプバッファを表示するためにpop-to-windowを使用しますが、次のコマンドの前に非表示にします(そのコマンドがscroll-other-windowまたはscroll-other-window-downでない限り)。
これに基づいて、ドキュメンテーションバッファーをスクロールするだけで、そこにジャンプすることはできません。
しかし、のコードを見ると、company-show-doc-buffer
それがを使用していることがcompany--electric-do
わかりましたcompany--electric-commands
。通常、それだけ含まれているscroll-other-window
とscroll-other-window-down
、多分あなたは追加することができother-window
、そのリストに。
(defvar company--electric-commands '(scroll-other-window scroll-other-window-down other-window) "List of Commands that won't break out of electric commands.")
が、動作しません。入力C-...
するとヘルプバッファが閉じます。(add-to-list 'company--electric-commands 'other-window)
私のinitファイルに同じことを入れています。
save-window-excursion
ウィンドウ構成の保存/復元に使用するため、機能しません。独自の「show doc」コマンドをのキーにバインドした方がよい場合がありますcompany-active-map
。