:type '(choice (const :tag "Last view time" :value recency)
(const :tag "Lexicographic" :value alphabetic)
(const :tag "Buffer size" :value size)
+ (const :tag "File name" :value filename/process)
(const :tag "Major mode" :value major-mode))
:group 'ibuffer)
(defvar ibuffer-sorting-mode nil)
(define-key map (kbd "s a") 'ibuffer-do-sort-by-alphabetic)
(define-key map (kbd "s v") 'ibuffer-do-sort-by-recency)
(define-key map (kbd "s s") 'ibuffer-do-sort-by-size)
+ (define-key map (kbd "s f") 'ibuffer-do-sort-by-filename/process)
(define-key map (kbd "s m") 'ibuffer-do-sort-by-major-mode)
(define-key map (kbd "/ m") 'ibuffer-filter-by-mode)
(define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
map))
+(defvar ibuffer-filename/process-header-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [(mouse-1)] 'ibuffer-do-sort-by-filename/process)
+ map))
+
(defvar ibuffer-mode-name-map
(let ((map (make-sparse-keymap)))
(define-key map [(mouse-2)] 'ibuffer-mouse-filter-by-mode)
(define-ibuffer-column filename-and-process
(:name "Filename/Process"
+ :header-mouse-map ibuffer-filename/process-header-map
:summarizer
(lambda (strings)
(setq strings (delete "" strings))
'\\[ibuffer-toggle-sorting-mode]' - Rotate between the various sorting modes.
'\\[ibuffer-invert-sorting]' - Reverse the current sorting order.
'\\[ibuffer-do-sort-by-alphabetic]' - Sort the buffers lexicographically.
+ '\\[ibuffer-do-sort-by-filename/process]' - Sort the buffers by the file name.
'\\[ibuffer-do-sort-by-recency]' - Sort the buffers by last viewing time.
'\\[ibuffer-do-sort-by-size]' - Sort the buffers by size.
'\\[ibuffer-do-sort-by-major-mode]' - Sort the buffers by major mode.
(setq major-mode 'ibuffer-mode)
(setq mode-name "Ibuffer")
;; Include state info next to the mode name.
- (set (make-local-variable mode-line-process)
- '((ibuffer-sorting-mode (:eval (symbol-name ibuffer-sorting-mode))
+ (set (make-local-variable 'mode-line-process)
+ '(" by "
+ (ibuffer-sorting-mode (:eval (symbol-name ibuffer-sorting-mode))
"view time")
(ibuffer-sorting-reversep " [rev]")
(ibuffer-auto-mode " (Auto)")
(setq header-line-format
(if ibuffer-use-header-line
;; Display the part that won't be in the mode-line.
- (mapcar (lambda (elem) (if (eq (car-safe elem) 'header-line-format)
- (nth 2 elem) elem))
- mode-line-process)))
+ (list* "" mode-name
+ (mapcar (lambda (elem)
+ (if (eq (car-safe elem) 'header-line-format)
+ (nth 2 elem) elem))
+ mode-line-process))))
(setq buffer-read-only t)
(buffer-disable-undo)