会社モードでドキュメントバッファーに移動する


10

最近からauto-complete-modeに切り替えcompany-modeて楽しんでいます。最近、私はいくつかのEmacs Lispコードを書かなければなりませんでした。関数の入力を開始すると、補完候補が表示F1されます。押すと、ドキュメントが別のバッファーで開きます。ドキュメンテーションバッファージャンプしたいのですが、入力C-x oすると閉じます。ヒントはありますか?

回答:


8

これを行うために会社モードに組み込まれている方法はありませんが、独自のキーバインディングをに追加できます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)

完全を期すために、ここに私がGitHubプロジェクトのリポジトリで開いた問題があり、彼らはこの道を進むよう提案しました。
petrux 2014年

このウィンドウも選択したい場合に備えて、ちょっとした調整を投稿したいと思います(defun my-company-show-doc-buffer() "一時的に選択用のドキュメントバッファを表示します。"(インタラクティブ)(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)))(select-window(display-buffer doc-buffer t))))
sandric

4

会社モードとオートコンプリートを比較するページへの著者のコメント:

会社モードでF1を押すとどうなりますか

ヘルプバッファを表示するためにpop-to-windowを使用しますが、次のコマンドの前に非表示にします(そのコマンドがscroll-other-windowまたはscroll-other-window-downでない限り)。

これに基づいて、ドキュメンテーションバッファーをスクロールするだけで、そこにジャンプすることはできません。

しかし、のコードを見ると、company-show-doc-bufferそれがを使用していることがcompany--electric-doわかりましたcompany--electric-commands。通常、それだけ含まれているscroll-other-windowscroll-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ファイルに同じことを入れています。
petrux 2014年

ええ、会社のように見えます--electric-doはsave-window-excursionウィンドウ構成の保存/復元に使用するため、機能しません。独自の「show doc」コマンドをのキーにバインドした方がよい場合がありますcompany-active-map
グルカ2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.