Debian上のemacs は 27.1 になっている。 org-mode でのメモ書きと python が主用途。
vim も、未だに併用。
前回のアップから2年。いつまでも初心者なのは残念だが、 使い続けられているのだから、と自分を褒めてあげるのだ。
package managerは、leaf.el になっているが、ivy-mode + company は変らず。 今は、 lsp 環境を追加している最中といったところ。
で、補完で使っている company の現状はというと、
company-backends を、make-local-variable でモード毎に指定するようにしたことと、 色のカスタマイズを、テーマまかせにしたこと、が変更点か。
company-backends の設定は、対象モード側で指定した方が正解なのかも、 というのが今の感想で、python の設定で苦労したような記憶が残っている。
まあ、なんとか使えているのでは、と思っているが、正解がわからん。
(leaf company :ensure t :require t
:url "https://github.com/company-mode/company-mode"
:doc "http://company-mode.github.io"
:blackout t
:hook ((text-mode-hook python-mode-hook emacs-lisp-mode-hook)
;; (text-mode-hook) 他は各モードの方で設定
(plantuml-mode-hook . (lambda ()
(set (make-local-variable 'company-backends)
'(company-yasnippet company-dabbrev))))
(emacs-lisp-mode-hook . (lambda ()
(set (make-local-variable 'company-backends)
'(company-semantic company-files company-elisp company-dabbrev-code))))
(org-mode-hook . (lambda ()
(set (make-local-variable 'company-backends)
'(company-ispell company-dabbrev company-yasnippet company-files))))
)
:bind ((company-active-map ;; enabled during an active completion
("M-p")
("M-n")
("<tab>" . company-quit)
("C-n" . company-select-next)
("C-p" . company-select-previous)
("C-o" . company-other-backend)
("C-v" . company-next-page)
("M-v" . company-previous-page)
("C-s" . company-filter-candidates))
(company-search-map ;; incrementally searching the completion candidates
("C-p" . company-select-previous)
("C-n" . company-select-next)
("M-v" . company-previous-page)
("C-v" . company-next-page))
)
:config
(setq auto-complete-mode nil) ;; required by jedi-2019
(setq company-idle-delay 0.1) ;; defailt 0.5
(setq company-show-numbers nil)
(setq company-selection-wrap-around t) ;; 候補の最後の次は先頭に戻る
(setq company-minimum-prefix-length 1) ;; original 3
;; (setq completion-ignore-case t) ;; not company, c-source
(setq company-dabbrev-downcase nil)
(setq company-dabbrev-other-buffers nil) ;; 少しでも反応よくしたい
(setq company-dabbrev-code-other-buffers nil) ;;
(setq company-dabbrev-code-everywhere t) ;; include comments and strings.
;; (setq company-dabbrev-ignore-buffers "\\`\\'")
;; (setq company-tooltip-align-annotations nil) ;; default nil
(setq company-tooltip-limit 8)
(setq company-require-match 'never) ;; If enabled, disallow non-matching input.
(leaf company-posframe :ensure t :require t
:blackout t
:config
(setq company-posframe-mode 1)
)
;;
(defun company-quit nil
"Insert any selected completion and quit completing.
https://gist.github.com/rswgnu/85ca5c69bb26551f3f27500855893dbe#file-rsw-company-config-el"
(interactive)
(when (and company-selection-changed company--manual-action
(boundp 'company-tng--overlay)
company-tng--overlay)
(company--insert-candidate
(nth company-selection company-candidates)))
(company-cancel))
:defer-config
;; counsel-gtags を使うので、止め
;; (leaf company-gtags :ensure nil :require t)
;; for web (not use now)
(leaf company-web :ensure t :disabled t
:url "https://github.com/osv/company-web"
:doc "Company-web support integration with emmet-mode and emmet-preview and
add some advices to make C-g and RET keys work properly."
:init
(leaf web-completion-data :ensure t :require t)
)
;;
(leaf company-prescient :ensure t :require t :disabled nil
:url "https://github.com/raxod502/prescient.el"
:config
(company-prescient-mode t))
;;
;; 画面が狭いし、反応がよくないので、やめ。
(leaf company-quickhelp :ensure t :disabled t
:url "https://github.com/expez/company-quickhelp"
:doc "documentation popup for company"
:bind (company-active-map ("M-h" . company-quickhelp-manual-begin))
:require t
:config
(setq company-quickhelp-delay 0.8) ;; original 0.5
(setq company-quickhelp-mode t)
)
)
python については、 python-mode 設定の :defer-config 内(以下)で指定。
:defer-config
(setq auto-complete-mode -1)
(leaf pyvenv :ensure t :require t)
(leaf pipenv :ensure t :require t
:init
(setq pipenv-with-flycheck nil)
)
;;
(leaf python-environment :ensure t :require t
:doc "Required by: jedi-core"
)
(leaf company-jedi :ensure t :require t
:init
(leaf jedi-core :ensure t :require t
:commands (jedi:setup)
:hook
(python-mode-hook . (lambda ()
(jedi:setup)
(set (make-local-variable 'company-backends)
'(company-jedi company-dabbrev-code company-ispell))))
:config
(setq jedi:tooltip-method nil) ;; pos-tip and/or popup, nil is minibuffer
(setq jedi:complete-on-dot t)
(setq jedi:use-shortcuts nil) ;; M-. and M-,
)
)
(leaf lsp-pylsp :ensure nil :require t
:doc "Fork of the python-language-server project."
)
しかし、私のマシン遅い、と、よく感じるようになっている。
ThinkPad T510 は、もう部品の入手が困難になっているので、 そろそろ次マシンと思うのだが、中古市場が高騰してる?のか、 安価な新品もスコープに入ってきそうなのが、なんとなく残念。
0 件のコメント:
コメントを投稿