idoを部分的に利用する

idoを部分的に使いたかったのですが、ido-modeを有効にすると、find-fileやら
kill-bufferがすべて ido操作になってしまい、利用をあきらめていたんですけど、
ido-minor-mode-map-entryに登録されるキーマップを削除してやると
うまくいく(っぽい)ことがわかりました。

設定例

;; ロードは一度しないといけないっぽい
(ido-mode 'file)
;;; Disable override some keybinds(eg. find-file)
(setcdr (cdar (cddr ido-minor-mode-map-entry)) nil)
(defun my/ido-find-file ()
  (interactive)
  (let ((ido-mode t)
        (ido-max-prospects 8))
    (ido-find-file-in-dir default-directory)))
(global-set-key (kbd "C-x C-p") 'my/ido-find-file)

(set-face-attribute 'ido-first-match nil
                    :foreground "orange" :weight 'semi-bold)
(set-face-attribute 'ido-only-match nil
                    :foreground "orange" :weight 'semi-bold)
(set-face-attribute 'ido-subdir nil
                    :foreground "cyan" :weight 'semi-bold)

内部的なデータを変更しているのであまり良いやり方ではありませんが、
部分的に利用するというやり方が提供されているわけでもないので、
仕方ないかと思います。

おわりに

もっと良い方法がある場合や、問題がある等ございましたら、
ご指摘ください。