• 作成:

Emacs 26のDiredでディレクトリを削除する時に一々yesを入力しないで済むようにする

Emacsの標準ファイラDiredはディレクトリを削除する際に一々プロンプトを出して再確認します.

しかも以下の設定

;;"yes or no"を"y or n"に
(fset 'yes-or-no-p 'y-or-n-p)

を行っていても, お構いなしにyではなくyesを要求してきます. yならともかくyesを一々入力するのはかなり面倒くさいですね.

これEmacs 26で追加された設定のようで, バグとして認識されているようですね. emacs 26 force typing yes/no for deleting dir? : emacs

この入力を行わない設定は以下になります.

(custom-set-variables
 '(dired-recursive-copies 'always)      ; 聞かずに再帰的コピー
 '(dired-recursive-deletes 'always)     ; 聞かずに再帰的削除
 )

デフォルト値はaskになっていて聞くようになっているので, alwaysで聞かないようにしました. ついでにコピー時にも聞かずに再帰コピーする設定にしました.

ただし, この設定は聞かずにディレクトリの中身を全て消去してしまうため, 大変危険です. マニュアルにもThis is dangerous!と書かれています.

この設定をする時は必ず以下の設定を行いましょう.

(custom-set-variables
 '(delete-by-moving-to-trash t)         ;ごみ箱を有効
 )

ごみ箱を有効にしていれば, うっかり意図しないディレクトリを削除してしまっても復旧できるから安心ですね.