;;; このときidoが使うwindowの高さは大きくした方がいい (setq ido-max-window-height 0.75) ;;; あいまいマッチは入れておこう (setq ido-enable-flex-matching t) ;; (ido-mode 'buffers) (ido-vertical-mode 1) (setq ido-vertical-define-keys 'C-n-and-C-p-only) (require 'uzumaki) ;minor-modeを使わないなら必要 ;;; uzumaki-idoの表示をido-vertical-modeに合わせる (setq uzumaki-ido-decorations ido-vertical-decorations) ;;; 不具合修正#1 (defun uzumaki-buffers-ordered-by-current--remove-current (&rest them) "なぜかカレントバッファが入っているので削除する" (cl-destructuring-bind (cur . rest) (apply them) (if (string= cur (buffer-name)) rest (cons cur rest)))) (advice-add 'uzumaki-buffers-ordered-by-current :around 'uzumaki-buffers-ordered-by-current--remove-current) ;;; 不具合修正#2 (defun uzumaki-buffers--nosort (&rest them) "ってかさぁ、なんでわざわざbuffer-listをsortする必要あるわけ?" ;; sort関数を一時的に潰す (cl-letf (((symbol-function 'sort) (lambda (it ignore) it))) (apply them))) (advice-add 'uzumaki-buffers :around 'uzumaki-buffers--nosort) ;;; C-, を何度か叩けば同じメジャーモードのバッファを選択できる (global-set-key (kbd "C-,") 'uzumaki-ido-buffers-cycle-by-mode) (defun ido-setup-hook--uzumaki () (define-key ido-common-completion-map (kbd "C-,") 'ido-next-match) ;; 行きすぎたらC-M-,で戻る (define-key ido-common-completion-map (kbd "C-M-,") 'ido-prev-match)) (add-hook 'ido-setup-hook 'ido-setup-hook--uzumaki)