;; ivy設定 (use-package ivy :ensure t :config (ivy-mode 1)) (ivy-mode 1) (setq ivy-use-virtual-buffers t) (setq enable-recursive-minibuffers t) (setq ivy-height 30) ;; minibufferのサイズを拡大!(重要) (setq ivy-extra-directories nil) (setq ivy-re-builders-alist '((t . ivy--regex-plus))) (require 'company) (global-company-mode) ; 全バッファで有効にする (setq company-transformers '(company-sort-by-backend-importance)) ;; ソート順 (setq company-idle-delay 0.0) ; デフォルトは0.5 (setq company-minimum-prefix-length 2) ; デフォルトは4 (setq company-selection-wrap-around t) ; 候補の一番下でさらに下に行こうとすると一番上に戻る (setq completion-ignore-case t) (setq company-dabbrev-downcase nil) (global-set-key (kbd "C-M-i") 'company-complete) (define-key company-active-map (kbd "C-n") 'company-select-next) ;; C-n, C-pで補完候補を次/前の候補を選択 (define-key company-active-map (kbd "C-p") 'company-select-previous) (define-key company-search-map (kbd "C-n") 'company-select-next) (define-key company-search-map (kbd "C-p") 'company-select-previous) (define-key company-active-map (kbd "C-s") 'company-filter-candidates) ;; C-sで絞り込む (define-key company-active-map (kbd "C-i") 'company-complete-selection) ;; TABで候補を設定 (define-key company-active-map [tab] 'company-complete-selection) ;; TABで候補を設定 (define-key company-active-map (kbd "C-f") 'company-complete-selection) ;; C-fで候補を設定 (define-key emacs-lisp-mode-map (kbd "C-M-i") 'company-complete) ;; 各種メジャーモードでも C-M-iで company-modeの補完を使う ;; yasnippetとの連携 (defvar company-mode/enable-yas t "Enable yasnippet for all backends.") (defun company-mode/backend-with-yas (backend) (if (or (not company-mode/enable-yas) (and (listp backend) (member 'company-yasnippet backend))) backend (append (if (consp backend) backend (list backend)) '(:with company-yasnippet)))) (setq company-backends (mapcar #'company-mode/backend-with-yas company-backends))