xyzzyのファイラをFenrirで移動する
前に作ってたけどエラーが出るので、ここには一応書かなかったけど。どうせ誰も見てはいないだろうという安易な気分でメモ。適当に誤魔化してエラーは見なかったことにしているので、本当は問題があるかも。
Fenrirからディレクトリを選んで、適当なCmdに割り当てるとxyzzyのファイラでそのディレクトリを表示する。個人的にファイラとxyzzyを分離しても操作できるようにしている。そうしたら、ファイラを開いた状態でも移動しても、ファイランの表示が被らないようになった気がしたので。
(defvar *my-file-open-directory* nil) (defun my-file-open-directory () ; コマンドラインではフラグだけを立てて ; 実際の作業はmy-file-open-directoryに任せる。 (setq *my-file-open-directory* t)) (defun fenrir-filer (arg) (interactive) (when (and (file-directory-p arg) *my-file-open-directory*) (setq *my-file-open-directory* nil) (open-filer) (filer-chdir arg) (plain-error "open-directory: done とか書いてみたけど、本当はエラーが出るから仕方なく目立たないようにしただけ") ; (error "open-directory: done") )) (add-hook '*before-find-file-hook* 'fenrir-filer) ;plain-errorをしないと「hogeはディレクトリです」というエラーが出る。 ;それでやりたい人は、邪魔なエラー表示を抑えるように共通設定でエラーの表示をマイルドにするといいかも。
Fenrirの設定は
[.\\\; xyzzyFiler|C:\xyzzy\xyzzycli.exe -f my-file-open-directory "%P" ]
こんな感じ。
フラグ立てるやり方が、色々と被らなくていいかも。と思ってGrepするときの奴からパクリ。
■追記
ファイラの設定の話も一応メモ
*filer-modal* Type: Variable Package: editor File: filer.l ファイラの動作を指定します。 モーダルの場合には、ファイラはエディタとは同期的に動作します。 ファイラ起動中はエディタでの編集は不能です。 モードレスの場合には、ファイラはエディタとは非同期に動作します。 ファイラ起動中にエディタでの編集が可能です。 t モーダルで動作させます nil モードレスで動作させます
たしか之か何かをnilにしたらファイラが分離して動く感じ。