mode-line 右對齐
Right-aligned Mode Line Elements
需要 Emacs 30+
(setq-default mode-line-format
'("%e" mode-line-front-space
mode-line-mule-info
mode-line-modified
" "
mode-line-buffer-identification
mode-line-format-right-align ;; <--- 加上它,后面的都會靠右
mode-line-modes
mode-line-misc-info
mode-line-end-spaces))
閃烁光標位置
這個包可以讓光標變化時閃烁一下,例如在兩個 window 之間切換時,可能不容易看到當前 point 的位置,閃烁一下就更容易定位。
我的配置
增加了 winum、flymake、pop-to-mark 的閃烁,閃烁我設置得更緩慢。
(use-package pulsar
:bind
( :map global-map
("C-x l" . pulsar-pulse-line)
("C-x L" . pulsar-highlight-temporarily))
:init
(pulsar-global-mode 1)
:config
(setq pulsar-delay 0.05)
(setq pulsar-iterations 10)
(let ((pulsar-pulse-functions-list '(pop-to-mark-command
winum-select-window-1
winum-select-window-2
winum-select-window-3
winum-select-window-4
winum-select-window-5
winum-select-window-6
winum-select-window-7
winum-select-window-8
winum-select-window-9
winum-select-window-0-or-10
flymake-goto-prev-error
flymake-goto-next-error)))
(dolist (f pulsar-pulse-functions-list)
(add-to-list 'pulsar-pulse-functions f)))
(add-hook 'next-error-hook #'pulsar-pulse-line))
dired 排序
Borrowing from Jasspa MicroEmacs : Dired Sort Keybindings
dired 默認的排序比較簡單,只會按日期排序。可以擴展一下:
(defun my/dired-sort-by-size ()
"Sort Dired buffer by file size."
(interactive)
(dired-sort-other "-alGghS"))
(defun my/dired-sort-by-date ()
"Sort Dired buffer by last modification date."
(interactive)
(dired-sort-other "-alGght"))
(defun my/dired-sort-by-name ()
"Sort Dired buffer alphabetically by name."
(interactive)
(dired-sort-other "-alGgh"))
(defun my/dired-sort-by-extension ()
"Sort Dired buffer by file extension."
(interactive)
(dired-sort-other "-alGghX"))
(with-eval-after-load 'dired
(define-key dired-mode-map (kbd "3") #'my/dired-sort-by-size)
(define-key dired-mode-map (kbd "4") #'my/dired-sort-by-date)
(define-key dired-mode-map (kbd "5") #'my/dired-sort-by-name)
(define-key dired-mode-map (kbd "6") #'my/dired-sort-by-extension))
不知道為什麼要從 3 開始而不是從 1 開始 = =
如果是用 use-pacage 配置
我改成了 use-package 的綁定語法,增加了 message 提示當前的排序方法。
(use-package dired
:straight nil
:hook ((dired-mode . diff-hl-dired-mode))
:bind (:map ctl-x-map
("C-j" . dired-jump)
:map ctl-x-4-map
("C-j" . dired-jump-other-window)
:map dired-mode-map
("C-c C-q" . wdired-change-to-wdired-mode)
("A" . spike-leung/handle-album-cover)
("1" . spike-leung/dired-sort-by-size)
("2" . spike-leung/dired-sort-by-date)
("3" . spike-leung/dired-sort-by-name)
("4" . spike-leung/dired-sort-by-extension))
:config
(setq-default dired-dwim-target t)
(setq dired-recursive-deletes 'top)
;; borrow from: https://emacs.dyerdwelling.family/emacs/20260721093224-emacs--borrowing-from-jasspa-microemacs-dired-sort-keybindings/
(defun spike-leung/dired-sort-by-size ()
"Sort Dired buffer by file size."
(interactive)
(dired-sort-other "-alGghS")
(message "dired sort by SIZE."))
(defun spike-leung/dired-sort-by-date ()
"Sort Dired buffer by last modification date."
(interactive)
(dired-sort-other "-alGght")
(message "dired sort by DATE."))
(defun spike-leung/dired-sort-by-name ()
"Sort Dired buffer alphabetically by name."
(interactive)
(dired-sort-other "-alGgh")
(message "dired sort by NAME."))
(defun spike-leung/dired-sort-by-extension ()
"Sort Dired buffer by file extension."
(interactive)
(dired-sort-other "-alGghX")
(message "dired sort by EXTENSION.")))
固定窗口
Dedicate Windows with toggle-window-dedicated
需要 Emacs 30+
有時你在一個 window 中編輯,要打開另一個 buffer,這個 buffer 可能會出現在你的 window 中挤占了位置,影响了你主要使用的 window。
面對這種情况,可以調用 C-x w d (toggle-window-dedicated),固定常用的 window,這樣其他 buffer 的出現就不會占用這個被固定的 window。相當於固定了某個 window 的布局。
如果加上 prefix,即 C-u C-x w d,除了固定 window,還會固定 buffer。
