Guest User

Untitled

a guest
Jan 23rd, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. ;; A rather handy (if I do say so myself) tweak for ibuffer.
  2. ;; I should really just send this upstream.
  3.  
  4. (defun buffer-dirname (b)
  5. (with-current-buffer b
  6. ;; expand-file-name would also make sense.
  7. (abbreviate-file-name default-directory)))
  8.  
  9. (define-ibuffer-column default-dir ()
  10. (buffer-dirname buffer))
  11.  
  12. (setq ibuffer-formats
  13. '((mark modified read-only " "
  14. (name 36 36 :left :elide)
  15. " "
  16. (size 9 -1 :right)
  17. " "
  18. (mode 16 16 :left :elide)
  19. " " default-dir)
  20. (mark " "
  21. (name 16 -1)
  22. " " filename)))
  23.  
  24. (eval-after-load 'ibuffer
  25. '(require 'ibuf-ext))
  26.  
  27. (eval-after-load 'ibuffer
  28. '(defun ibuffer-mark-by-dir-name-regexp (regexp)
  29. "Mark all buffers whose directory name matches REGEXP."
  30. (interactive "sMark by directory name (regexp): ")
  31. (ibuffer-mark-on-buffer
  32. #'(lambda (buf)
  33. (let ((name (with-current-buffer buf default-directory)))
  34. (when name
  35. (string-match regexp name)))))))
  36.  
  37. (eval-after-load 'ibuffer
  38. '(define-key
  39. ibuffer-mode-map
  40. (kbd "% d") 'ibuffer-mark-by-dir-name-regexp))
  41.  
  42. (define-ibuffer-sorter directory-name
  43. "Sort the buffers by their directory name.
  44. Ordering is lexicographic."
  45. (:description "directory name")
  46. (string-lessp (buffer-dirname (car a))
  47. (buffer-dirname (car b))))
  48. (define-key ibuffer-mode-map (kbd "s d") 'ibuffer-do-sort-by-directory-name)
Add Comment
Please, Sign In to add comment