LoginSignup
4
3

[Emacs] dired-dwim-targetを一時的に無効化する

Posted at

こんにちは!

EmacsのDiredにはdired-dwim-target という変数があります。これをt に設定しておくと、複数のDiredバッファを開いてる際、ファイルのコピーや移動をしようとすると、空気を読んで(do what i mean)別のバッファがコピーや移動の対象として選択されます。

ezgif-3-b679113268.gif

とても便利なのですが、たまに「いや、今は空気を読まずに自分のバッファで操作して:sweat_smile:」ってときありませんか?

自分の場合そういう時、一旦別のバッファに移動・コピーしてから、移動先のバッファに移ってもう一度元のバッファに戻してました... (皆さんはどうしてるんでしょう?)

universal arguments (C-u) をつけた操作でdired-dwim-targetの効果が切り替わってくれるとEmacsぽいかなと思って試してみたのですが、そんな都合よく切り替わってはくれませんでした🤷

何か良い方法がないかdired-dwim-target のドキュメントを読んでみると、どうやらこの変数には関数もセットできるようです。ということは

(setq dired-dwim-target (lambda () (if current-prefix-arg nil (dired-dwim-target-next))))

とすれば自分が期待する挙動になりました!これでデフォルトではコピー・移動先を推測してくれて、C-u をつけた時だけ今いるバッファが対象になります!

以上です!他にもっといい設定あるよ、とか間違ってる点などあればご指摘頂けると嬉しいです :laughing:

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3