Emacs helm のこと
helm のいろいろ。
helm-follow-mode
helmセッションが有効なときに C-c C-f で helm-follow-mode (HF) の有効・無効を切りかえられる。
HFが有効なとき、候補選択と同時にその候補をすぐ表示する。 有効でないときは C-j (helm-execute-persistent-action)を実行する必要がある。
helm-help
helmセッション中に C-h m (helm-help)を実行するとコンテキストごとのヘルプが表示される。 Emacs のドキュメントは普通 info 形式のはずだが、helm は Org モード?のヘルプになっている。
helm-find-files で helm-execute-persistent-action が symlink を展開する件
TAB に helm-excute-persistent-action を割り当てているけど、TAB押すとシンボリックリンクが展開されてしまい使いづらい。
下記関数の中で symlink を展開している。
helm-find-files-persistent-action-if
この中でファイルへのsymlinkなら helm-execute-persistent-action でリンクを展開してしまう。 symlink でもリンク先がディレクトリなら展開しない。
ディレクトリへのSymlinkの場合 C-uを付けると file-truename (シンボリックリンクを展開する関数)を呼んで展開する。
ファイルへのsymlinkではそうなっておらず、C-uを付けると転換しないで中身を表示するがが、C-uを付けないと展開する。動きが逆なんだよなあ。同じにしてほしいなあ。
↓ファイルへのsymlinkのとき file-truename 呼ばないよう、修正してる人いた。
Emacs で Helm をストレスなく使うための個人的な設定 (2) - あらびき日記
;; A symlink file, expand to it's true name. (first hit)
((and (file-symlink-p candidate) (not current-prefix-arg) (not follow))
(cons (lambda (_candidate)
(funcall insert-in-minibuffer candidate))
↓ 変更(file-truename を削除)
;; A symlink file, expand to it's true name. (first hit)
((and (file-symlink-p candidate) (not current-prefix-arg) (not follow))
(cons (lambda (_candidate)
(funcall insert-in-minibuffer (file-truename candidate)))
変更したら M-x emacs-lisp-byte-compile-and-load で再コンパイルしてロードしておく。
Emacsは適切な検索キーワードを見つけるのが難しい気がする。原因までたどり着いてようやく修正している人にたどり着いた。
どうせコード変更するなら、TAB で補完するようにしたい
そのうちチャレンジしてみようかな。
TAB を helm-execute-persistent-action に割り当ててるけど、普通の補完とは動きが違うんだよね。 helm-file-files だと、カーソル下のファイル名を minibuffer に取り込むけど、 Emacs の普通の補完だと、すべてのファイルのうち前方一致する部分までを minibuffer に取り込む。 その動きをさせてみたい。