3

emacsでは、以下はインタラクティブに呼び出されたときにユーザーにファイル名を要求する関数を定義します。

(defun do-something (filename )
  (interactive "FFilename: ")
  ...
  )

ユーザーがファイル名を入力するとき、タブ補完などを使用できます。そのファイル入力コードにフックがあるかどうか誰かが知っていますか?特に、find-fileコマンドを変更して、タブを押した場合にWindowsのシンボリックリンク(「foo.lnk」として表示される)がターゲットに自動的に続くようにします。

現在、w32-symlinksを使用しています。つまり、少なくともリンクでEnterキーを押すと、direditでターゲットが開きます。ただし、direditを開いてから2番目のfind-fileコマンドを実行するのではなく、見ているファイルまでタブで完了できるようにしたいと思います。

4

2 に答える 2

2

車輪を再発明する前に、おそらく (ido-mode t) を .emacs ファイルに入れて、それがあなたが望んでいることを行うかどうかを確認してください。

私は Windows を使用していませんが、ido を使用しており、デフォルトよりもはるかに優れています。

于 2010-01-21T21:56:01.733 に答える
1

一般的な質問への答えはcompleting-read、仕様で直接使用interactiveすることです。文字列引数は使用しないでください。IOW、独自の補完セットを作成してください。

または、ファイル名の補完を実行する独自の関数にバインドすることもできread-file-name-functionます (たとえば、標準の動作を組み込みます)。標準ライブラリを参照してくださいminibuffer.el

于 2011-08-21T23:10:17.963 に答える