私は emacs 内で bash の代わりに eshell を使い始めようとしていますが、長年にわたって書いてきた bash 関数に大きく依存しています。問題のコマンドが bash 関数として実装されている場合に備えて、「コマンドが見つからない」状態が発生するたびに bash を呼び出すように eshell を構成したいと考えています。
オーダーメイドのように聞こえる興味をそそる名前の変数がありますeshell-alternate-command-hook
が、私のelispスキルの欠如が私の成功を妨げていると思います。
これは私の最善の努力です:
(add-hook 'eshell-alternate-command-hook 'invoke-bash t t)
(defun invoke-bash (command args)
(throw 'eshell-replace-command
(list "bash -c" command args)))
しかし、私がそれをテストすると、うまくいきません:
c:/temp $ lsd
Wrong number of arguments: (lambda (command args) (throw (quote eshell-replace-command) (list "bash -c" command args))), 1
c:/temp $