Next: , Previous: , Up: Dired (ディレクトリーエディター)   [Contents][Index]


32.9 シェルコマンドの推測

Diredはファイルの名前にもとづいて、そのファイルに適用したいシェルコマンドの推測を試みます。たとえばfoo.tarという名前のファイルにポイントがあるときに!を押下すると、Diredは‘tar xvf’を実行したいのだろうと推測して、それをデフォルトのシェルコマンドとして提案します。

M-nをタイプすれば、編集用にそのデフォルトをミニバッファーに取り込むことができます。与えられたファイルにたいして複数のコマンドが存在する場合には、M-nを何回かタイプすることによってマッチするコマンドを順繰りに確認することができます。

Diredが推測を試みるコマンドは単一のファイルにたいしてであり、マークされたファイルのリストに推測を試みることはありません。

Variable: dired-guess-shell-alist-default

この変数は特定のファイルにたいして適切なシェルコマンドを推測するための、事前定義されたルールを指定します。これをnilにセットすると推測は行いません。これらのルールはdired-guess-shell-alist-userの要素(ユーザーが定義)によってオーバーライドされます。

Variable: dired-guess-shell-alist-optional

This variable is like dired-guess-shell-alist-default but contains external viewers and players for various media formats. Setting this to nil turns guessing off. The variables dired-guess-shell-alist-user and dired-guess-shell-alist-default will override these rules.

Variable: dired-guess-shell-alist-user

If non-nil, this variable specifies the user-defined alist of file regexps and their suggested commands. These rules take precedence over the predefined rules in the variables dired-guess-shell-alist-default and dired-guess-shell-alist-optional when dired-do-shell-command is run). The default is nil.

alistの要素はそれぞれ以下のような形式です

(regexp command…)

ここでcommandは文字列、あるいは文字列に評価されるLisp式です。コマンドが複数与えられた場合には、一時的にそれらのコマンドすべてがヒストリーに追加されます。

シェルコマンド内の‘*’は、regexpにマッチしたファイルの名前を意味します。Emacsがcommandを呼び出す際に、‘*’はそれぞれマッチしたファイル名によって置き換えられます。

.foo’および‘.bar’というファイル拡張子にたいするルールを追加するには、以下をinitファイルに追加してください:

(setq dired-guess-shell-alist-user
      (list
       (list "\\.foo$" "foo-command")  ; 固定ルール
       ;; possibly more rules...
       (list "\\.bar$"  ; 条件テスト付きルール
             '(if condition
                  "bar-command-1"
                "bar-command-2"))))

同じ拡張子にたいする事前定義されたルールは、すべて上記ルールによって置き換えられます。

他にもM-x customize-group RET dired-guess RETで他のユーザーオプションを確認することができます。

This page has generated for branch:emacs-30, commit:ad27b2a96fb67e5e4e6ccb406175feb9e2cfa5a1 to check Japanese translation.