Skip to content

Latest commit

 

History

History
106 lines (87 loc) · 4.57 KB

1408110250.helm-avoid-find-files.org

File metadata and controls

106 lines (87 loc) · 4.57 KB

helm.el : クッソ重いhelm版read-file-nameを回避し、新規ファイルを楽に開く方法

[includeme file=”inc-package-table.php” name=”helm” where=”melpa”]

概要

helm版read-file-nameを標準のEmacsのものに戻す設定です。

helmは僕がメンテナンスしているanythingの後継 といえるすごい便利なパッケージですが、 いささかおせっかいな感が否めません。

helmは部分集合から特定のオブジェクトを取り出すのには とてもすばらしいインターフェースなのですが、 helm版ファイル名選択(Fig1)がすごい使いづらいと思います。

超高速SSDを積んでいるi7機でさえファイル名選択が出るのがもたつくことがある上、 TABでファイル名補完ができないとか、俺に言わせれば ありえないです。

既存ファイルを開く場合は多少便利かもしれないですが、 新規ファイルを開くときは余計なお世話に他ならないです。

既存ファイルは必殺 anything-filelist があるので十分!

しかもhelm版completing-readを使うとあろうことか 勝手にhelm-modeが有効になって クッソ重いファイル選択を強要される始末!

コイツだけ無効にしたくてもなかなか困難で、 adviceでhelm-modeをコントロールして helm-modeの一部をコピペすることで回避…

なんてこったい! [includeme file=”inc-package-install.php” name=”helm” where=”melpa”]

概要

helm版read-file-nameを標準のEmacsのものに戻す設定です。

helmは僕がメンテナンスしているanythingの後継 といえるすごい便利なパッケージですが、 いささかおせっかいな感が否めません。

helmは部分集合から特定のオブジェクトを取り出すのには とてもすばらしいインターフェースなのですが、 helm版ファイル名選択(Fig1)がすごい使いづらいと思います。

超高速SSDを積んでいるi7機でさえファイル名選択が出るのがもたつくことがある上、 TABでファイル名補完ができないとか、俺に言わせれば ありえないです。

既存ファイルを開く場合は多少便利かもしれないですが、 新規ファイルを開くときは余計なお世話に他ならないです。

既存ファイルは必殺 anything-filelist があるので十分!

しかもhelm版completing-readを使うとあろうことか 勝手にhelm-modeが有効になって クッソ重いファイル選択を強要される始末!

コイツだけ無効にしたくてもなかなか困難で、 adviceでhelm-modeをコントロールして helm-modeの一部をコピペすることで回避…

なんてこったい!

(require 'helm)
(require 'helm-mode)
(defadvice helm-mode (around avoid-read-file-name activate)
  (let ((read-file-name-function read-file-name-function)
        (completing-read-function completing-read-function))
    ad-do-it))
(setq completing-read-function 'my-helm-completing-read-default)
(defun my-helm-completing-read-default (&rest _)
  (apply (cond ;; [2014-08-11 Mon]helm版のread-file-nameは重いからいらない
          ((eq (nth 1 _) 'read-file-name-internal)
           'completing-read-default)
          (t
           'helm--completing-read-default))
         _))

実行方法

$ wget http://rubikitch.com/f/140811024627.helm.avoid-find-files.el
$ emacs -Q -f package-initialize -l 140811024627.helm.avoid-find-files.el

http://rubikitch.com/f/20140811025824.png Fig1: helm-mode有効時にC-x C-fを押したときに現れる犯人! [includeme file=”inc-package-relate.php” name=”helm”]