답변:
이 작업을 수행하기 위해 회사 모드에 내장 된 방법은 보이지 않지만에 고유 한 키 바인딩을 추가 할 수 있습니다 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)에 바인딩하여 doc 버퍼를 "영구적으로"열 수 있습니다.
(define-key company-active-map (kbd "C-<f1>") #'my/company-show-doc-buffer)
회사 모드와 자동 완성을 비교 하는 페이지에 대한 작성자의 의견 :
회사 모드에서 F1을 누르면 어떻게됩니까?
팝업 창을 사용하여 도움말 버퍼를 표시하지만 다음 명령 앞에 숨 깁니다 (명령이 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
.