- helm 20170806.1158(in MELPA)
- Helm is an Emacs incremental and narrowing framework
概要
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の一部をコピペすることで回避…
なんてこったい!
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてhelmを使う方は
以下のコマンドを実行します。
M-x package-install helm
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name helm
設定 140811024627.helm.avoid-find-files.el(以下のコードと同一)
(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
Fig1: helm-mode有効時にC-x C-fを押したときに現れる犯人!
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。