Emacsのdiredでドットファイルの表示・非表示を切り替える関数を作った
モチベーション
Emacsのdiredモードをよく使う。
このとき、ドットファイルが表示されてほしいときもあれば、表示されてほしくないときもある。
例えば、ホームディレクトリはドットファイルが大量にあるため、普段は隠したい。
一方で、Git管理のディレクトリでは、.gitignoreがあるのを見えるようにしておきたい。
そこで、diredモードが使うlsのオプションをいい感じに変えるようにした。
コード
diredバッファのリロードをする関数が見つからなかったので自作した。
現在のドットファイルの表示状況は[aA]
の簡単なマッチでする。
-lgGhF
や-lgGhFA
のところは、各自の好みで変えるとよい。
デフォルトは-al
らしいです。
ドットファイルの切り替えなのでC-.
に割り当てた。
けっこう気に入っている。
;; C-.でドットファイルの表示と非表示を切り替える
(setq dired-listing-switches "-lgGhF")
(defun reload-current-dired-buffer ()
"Reload current `dired-mode' buffer."
(let* ((dir (dired-current-directory)))
(progn (kill-buffer (current-buffer))
(dired dir))))
(defun toggle-dired-listing-switches ()
"Toggle `dired-mode' switch between with and without 'A' option to show or hide dot files."
(interactive)
(progn
(if (string-match "[Aa]" dired-listing-switches)
(setq dired-listing-switches "-lgGhF")
(setq dired-listing-switches "-lgGhFA"))
(reload-current-dired-buffer)))
(define-key dired-mode-map (kbd "C-.") 'toggle-dired-listing-switches)
(追記)use-package化したコード
use-package化したので、以下のようになった。
(use-package dired
:custom
(dired-listing-switches "-lgGhF")
:config
;; C-.でドットファイルの表示と非表示を切り替える
(defun reload-current-dired-buffer ()
"Reload current `dired-mode' buffer."
(let* ((dir (dired-current-directory)))
(progn (kill-buffer (current-buffer))
(dired dir))))
(defun toggle-dired-listing-switches ()
"Toggle `dired-mode' switch between with and without 'A' option to show or hide dot files."
(interactive)
(progn
(if (string-match "[Aa]" dired-listing-switches)
(setq dired-listing-switches "-lgGhF")
(setq dired-listing-switches "-lgGhFA"))
(reload-current-dired-buffer)))
:bind (:map dired-mode-map
("C-." . toggle-dired-listing-switches)))
Author And Source
この問題について(Emacsのdiredでドットファイルの表示・非表示を切り替える関数を作った), 我々は、より多くの情報をここで見つけました https://qiita.com/keita44_f4/items/2adae69f05dd4a7c5f25著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .