aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTino Calancha2016-07-03 21:42:02 +0900
committerTino Calancha2016-07-03 21:42:02 +0900
commitb56a8bcd0e68451d0360ab6ed98c88d890324838 (patch)
treebd1fa2ecd23e6dcc7750511cf164fd801d7c5062
parent1e97ecb964a478e8b2f08b628695ac02b923eabe (diff)
downloademacs-b56a8bcd0e68451d0360ab6ed98c88d890324838.tar.gz
emacs-b56a8bcd0e68451d0360ab6ed98c88d890324838.zip
Ibuffer: unmark all buffers without confirmation
* lisp/ibuffer.el (ibuffer-unmark-all-marks): New command (Bug#23680). (ibuffer-mouse-popup-menu): Use it. (ibuffer-mode): Update mode doc. (ibuffer-mode-map): Bind 'ibuffer-unmark-all-marks' to 'U'. Rebind 'ibuffer-do-replace-regexp' to 'r'. ; * etc/NEWS: Add entry for this change.
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/ibuffer.el17
2 files changed, 18 insertions, 4 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 555d6bb51ac..7e11f622f14 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -193,6 +193,11 @@ questions, with a handy way to display help texts.
193** Ibuffer 193** Ibuffer
194 194
195--- 195---
196*** A new command 'ibuffer-unmark-all-marks' to unmark
197all buffers without asking confirmation; bound to
198'U'; 'ibuffer-do-replace-regexp' bound to 'r'.
199
200---
196*** A new command `ibuffer-mark-by-content-regexp' to mark buffers 201*** A new command `ibuffer-mark-by-content-regexp' to mark buffers
197whose content matches a regexp; bound to '% c' and '% g'. 202whose content matches a regexp; bound to '% c' and '% g'.
198 203
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 126b5a32b2b..2f875f49afa 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -471,6 +471,7 @@ directory, like `default-directory'."
471 (define-key map (kbd "DEL") 'ibuffer-unmark-backward) 471 (define-key map (kbd "DEL") 'ibuffer-unmark-backward)
472 (define-key map (kbd "M-DEL") 'ibuffer-unmark-all) 472 (define-key map (kbd "M-DEL") 'ibuffer-unmark-all)
473 (define-key map (kbd "* *") 'ibuffer-unmark-all) 473 (define-key map (kbd "* *") 'ibuffer-unmark-all)
474 (define-key map (kbd "U") 'ibuffer-unmark-all-marks)
474 (define-key map (kbd "* M") 'ibuffer-mark-by-mode) 475 (define-key map (kbd "* M") 'ibuffer-mark-by-mode)
475 (define-key map (kbd "* m") 'ibuffer-mark-modified-buffers) 476 (define-key map (kbd "* m") 'ibuffer-mark-modified-buffers)
476 (define-key map (kbd "* u") 'ibuffer-mark-unsaved-buffers) 477 (define-key map (kbd "* u") 'ibuffer-mark-unsaved-buffers)
@@ -568,7 +569,7 @@ directory, like `default-directory'."
568 (define-key map (kbd "R") 'ibuffer-do-rename-uniquely) 569 (define-key map (kbd "R") 'ibuffer-do-rename-uniquely)
569 (define-key map (kbd "S") 'ibuffer-do-save) 570 (define-key map (kbd "S") 'ibuffer-do-save)
570 (define-key map (kbd "T") 'ibuffer-do-toggle-read-only) 571 (define-key map (kbd "T") 'ibuffer-do-toggle-read-only)
571 (define-key map (kbd "U") 'ibuffer-do-replace-regexp) 572 (define-key map (kbd "r") 'ibuffer-do-replace-regexp)
572 (define-key map (kbd "V") 'ibuffer-do-revert) 573 (define-key map (kbd "V") 'ibuffer-do-revert)
573 (define-key map (kbd "W") 'ibuffer-do-view-and-eval) 574 (define-key map (kbd "W") 'ibuffer-do-view-and-eval)
574 (define-key map (kbd "X") 'ibuffer-do-shell-command-pipe) 575 (define-key map (kbd "X") 'ibuffer-do-shell-command-pipe)
@@ -753,6 +754,8 @@ directory, like `default-directory'."
753 :help "Mark buffers which have not been viewed recently")) 754 :help "Mark buffers which have not been viewed recently"))
754 (define-key-after map [menu-bar mark unmark-all] 755 (define-key-after map [menu-bar mark unmark-all]
755 '(menu-item "Unmark All" ibuffer-unmark-all)) 756 '(menu-item "Unmark All" ibuffer-unmark-all))
757 (define-key-after map [menu-bar mark unmark-all-marks]
758 '(menu-item "Unmark All buffers" ibuffer-unmark-all-marks))
756 759
757 (define-key-after map [menu-bar mark dashes] 760 (define-key-after map [menu-bar mark dashes]
758 '("--")) 761 '("--"))
@@ -973,8 +976,7 @@ width and the longest string in LIST."
973 (popup-menu ibuffer-mode-groups-popup)) 976 (popup-menu ibuffer-mode-groups-popup))
974 (let ((inhibit-read-only t)) 977 (let ((inhibit-read-only t))
975 (ibuffer-save-marks 978 (ibuffer-save-marks
976 ;; hm. we could probably do this in a better fashion 979 (ibuffer-unmark-all-marks)
977 (ibuffer-unmark-all ?\r)
978 (save-excursion 980 (save-excursion
979 (goto-char eventpt) 981 (goto-char eventpt)
980 (ibuffer-set-mark ibuffer-marked-char)) 982 (ibuffer-set-mark ibuffer-marked-char))
@@ -1335,6 +1337,12 @@ With optional ARG, make read-only only if ARG is not negative."
1335 t))))) 1337 t)))))
1336 (ibuffer-redisplay t)) 1338 (ibuffer-redisplay t))
1337 1339
1340(defun ibuffer-unmark-all-marks ()
1341 "Remove all marks from all marked buffers in Ibuffer."
1342 (interactive)
1343 ;; hm. we could probably do this in a better fashion
1344 (ibuffer-unmark-all ?\r))
1345
1338(defun ibuffer-toggle-marks (&optional group) 1346(defun ibuffer-toggle-marks (&optional group)
1339 "Toggle which buffers are marked. 1347 "Toggle which buffers are marked.
1340In other words, unmarked buffers become marked, and marked buffers 1348In other words, unmarked buffers become marked, and marked buffers
@@ -2426,7 +2434,8 @@ Marking commands:
2426 `\\[ibuffer-unmark-forward]' - Unmark the buffer at point. 2434 `\\[ibuffer-unmark-forward]' - Unmark the buffer at point.
2427 `\\[ibuffer-unmark-backward]' - Unmark the buffer at point, and move to the 2435 `\\[ibuffer-unmark-backward]' - Unmark the buffer at point, and move to the
2428 previous line. 2436 previous line.
2429 `\\[ibuffer-unmark-all]' - Unmark all marked buffers. 2437 `\\[ibuffer-unmark-all]' - Unmark buffers marked with MARK.
2438 `\\[ibuffer-unmark-all-marks]' - Unmark all marked buffers.
2430 `\\[ibuffer-mark-by-mode]' - Mark buffers by major mode. 2439 `\\[ibuffer-mark-by-mode]' - Mark buffers by major mode.
2431 `\\[ibuffer-mark-unsaved-buffers]' - Mark all \"unsaved\" buffers. 2440 `\\[ibuffer-mark-unsaved-buffers]' - Mark all \"unsaved\" buffers.
2432 This means that the buffer is modified, and has an associated file. 2441 This means that the buffer is modified, and has an associated file.