aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2019-07-26 14:38:35 +0200
committerLars Ingebrigtsen2019-07-26 14:38:35 +0200
commite986ba1968ad221be3150e4b4cd51a345e980e3b (patch)
tree7182d3449be09d90bf9e050f6a6ab27d72ebd9c6
parent68789c9370f62e9288683591a1849fd3843e7a13 (diff)
downloademacs-e986ba1968ad221be3150e4b4cd51a345e980e3b.tar.gz
emacs-e986ba1968ad221be3150e4b4cd51a345e980e3b.zip
Separate out the "/" prefix into a named keymap in ibuffer
* lisp/ibuffer.el (ibuffer--filter-map): Separate out into its own keymap (bug#25797). (ibuffer-mode-map): Bind the "/" key to it.
-rw-r--r--lisp/ibuffer.el84
1 files changed, 45 insertions, 39 deletions
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 54992f279b9..23f7a2a8e4a 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -421,6 +421,49 @@ directory, like `default-directory'."
421 421
422 groups-map)) 422 groups-map))
423 423
424(defvar ibuffer--filter-map
425 (let ((map (make-sparse-keymap)))
426 (define-key map (kbd "RET") 'ibuffer-filter-by-mode)
427 (define-key map (kbd "m") 'ibuffer-filter-by-used-mode)
428 (define-key map (kbd "M") 'ibuffer-filter-by-derived-mode)
429 (define-key map (kbd "n") 'ibuffer-filter-by-name)
430 (define-key map (kbd "E") 'ibuffer-filter-by-process)
431 (define-key map (kbd "*") 'ibuffer-filter-by-starred-name)
432 (define-key map (kbd "f") 'ibuffer-filter-by-filename)
433 (define-key map (kbd "b") 'ibuffer-filter-by-basename)
434 (define-key map (kbd ".") 'ibuffer-filter-by-file-extension)
435 (define-key map (kbd "<") 'ibuffer-filter-by-size-lt)
436 (define-key map (kbd ">") 'ibuffer-filter-by-size-gt)
437 (define-key map (kbd "i") 'ibuffer-filter-by-modified)
438 (define-key map (kbd "v") 'ibuffer-filter-by-visiting-file)
439 (define-key map (kbd "c") 'ibuffer-filter-by-content)
440 (define-key map (kbd "e") 'ibuffer-filter-by-predicate)
441
442 (define-key map (kbd "r") 'ibuffer-switch-to-saved-filters)
443 (define-key map (kbd "a") 'ibuffer-add-saved-filters)
444 (define-key map (kbd "x") 'ibuffer-delete-saved-filters)
445 (define-key map (kbd "d") 'ibuffer-decompose-filter)
446 (define-key map (kbd "s") 'ibuffer-save-filters)
447 (define-key map (kbd "p") 'ibuffer-pop-filter)
448 (define-key map (kbd "<up>") 'ibuffer-pop-filter)
449 (define-key map (kbd "!") 'ibuffer-negate-filter)
450 (define-key map (kbd "t") 'ibuffer-exchange-filters)
451 (define-key map (kbd "TAB") 'ibuffer-exchange-filters)
452 (define-key map (kbd "o") 'ibuffer-or-filter)
453 (define-key map (kbd "|") 'ibuffer-or-filter)
454 (define-key map (kbd "&") 'ibuffer-and-filter)
455 (define-key map (kbd "g") 'ibuffer-filters-to-filter-group)
456 (define-key map (kbd "P") 'ibuffer-pop-filter-group)
457 (define-key map (kbd "S-<up>") 'ibuffer-pop-filter-group)
458 (define-key map (kbd "D") 'ibuffer-decompose-filter-group)
459 (define-key map (kbd "/") 'ibuffer-filter-disable)
460
461 (define-key map (kbd "S") 'ibuffer-save-filter-groups)
462 (define-key map (kbd "R") 'ibuffer-switch-to-saved-filter-groups)
463 (define-key map (kbd "X") 'ibuffer-delete-saved-filter-groups)
464 (define-key map (kbd "\\") 'ibuffer-clear-filter-groups)
465 map))
466
424(defvar ibuffer-mode-map 467(defvar ibuffer-mode-map
425 (let ((map (make-keymap))) 468 (let ((map (make-keymap)))
426 (define-key map (kbd "0") 'digit-argument) 469 (define-key map (kbd "0") 'digit-argument)
@@ -484,41 +527,6 @@ directory, like `default-directory'."
484 (define-key map (kbd "s f") 'ibuffer-do-sort-by-filename/process) 527 (define-key map (kbd "s f") 'ibuffer-do-sort-by-filename/process)
485 (define-key map (kbd "s m") 'ibuffer-do-sort-by-major-mode) 528 (define-key map (kbd "s m") 'ibuffer-do-sort-by-major-mode)
486 529
487 (define-key map (kbd "/ RET") 'ibuffer-filter-by-mode)
488 (define-key map (kbd "/ m") 'ibuffer-filter-by-used-mode)
489 (define-key map (kbd "/ M") 'ibuffer-filter-by-derived-mode)
490 (define-key map (kbd "/ n") 'ibuffer-filter-by-name)
491 (define-key map (kbd "/ E") 'ibuffer-filter-by-process)
492 (define-key map (kbd "/ *") 'ibuffer-filter-by-starred-name)
493 (define-key map (kbd "/ f") 'ibuffer-filter-by-filename)
494 (define-key map (kbd "/ b") 'ibuffer-filter-by-basename)
495 (define-key map (kbd "/ .") 'ibuffer-filter-by-file-extension)
496 (define-key map (kbd "/ <") 'ibuffer-filter-by-size-lt)
497 (define-key map (kbd "/ >") 'ibuffer-filter-by-size-gt)
498 (define-key map (kbd "/ i") 'ibuffer-filter-by-modified)
499 (define-key map (kbd "/ v") 'ibuffer-filter-by-visiting-file)
500 (define-key map (kbd "/ c") 'ibuffer-filter-by-content)
501 (define-key map (kbd "/ e") 'ibuffer-filter-by-predicate)
502
503 (define-key map (kbd "/ r") 'ibuffer-switch-to-saved-filters)
504 (define-key map (kbd "/ a") 'ibuffer-add-saved-filters)
505 (define-key map (kbd "/ x") 'ibuffer-delete-saved-filters)
506 (define-key map (kbd "/ d") 'ibuffer-decompose-filter)
507 (define-key map (kbd "/ s") 'ibuffer-save-filters)
508 (define-key map (kbd "/ p") 'ibuffer-pop-filter)
509 (define-key map (kbd "/ <up>") 'ibuffer-pop-filter)
510 (define-key map (kbd "/ !") 'ibuffer-negate-filter)
511 (define-key map (kbd "/ t") 'ibuffer-exchange-filters)
512 (define-key map (kbd "/ TAB") 'ibuffer-exchange-filters)
513 (define-key map (kbd "/ o") 'ibuffer-or-filter)
514 (define-key map (kbd "/ |") 'ibuffer-or-filter)
515 (define-key map (kbd "/ &") 'ibuffer-and-filter)
516 (define-key map (kbd "/ g") 'ibuffer-filters-to-filter-group)
517 (define-key map (kbd "/ P") 'ibuffer-pop-filter-group)
518 (define-key map (kbd "/ S-<up>") 'ibuffer-pop-filter-group)
519 (define-key map (kbd "/ D") 'ibuffer-decompose-filter-group)
520 (define-key map (kbd "/ /") 'ibuffer-filter-disable)
521
522 (define-key map (kbd "M-n") 'ibuffer-forward-filter-group) 530 (define-key map (kbd "M-n") 'ibuffer-forward-filter-group)
523 (define-key map "\t" 'ibuffer-forward-filter-group) 531 (define-key map "\t" 'ibuffer-forward-filter-group)
524 (define-key map (kbd "M-p") 'ibuffer-backward-filter-group) 532 (define-key map (kbd "M-p") 'ibuffer-backward-filter-group)
@@ -526,10 +534,6 @@ directory, like `default-directory'."
526 (define-key map (kbd "M-j") 'ibuffer-jump-to-filter-group) 534 (define-key map (kbd "M-j") 'ibuffer-jump-to-filter-group)
527 (define-key map (kbd "C-k") 'ibuffer-kill-line) 535 (define-key map (kbd "C-k") 'ibuffer-kill-line)
528 (define-key map (kbd "C-y") 'ibuffer-yank) 536 (define-key map (kbd "C-y") 'ibuffer-yank)
529 (define-key map (kbd "/ S") 'ibuffer-save-filter-groups)
530 (define-key map (kbd "/ R") 'ibuffer-switch-to-saved-filter-groups)
531 (define-key map (kbd "/ X") 'ibuffer-delete-saved-filter-groups)
532 (define-key map (kbd "/ \\") 'ibuffer-clear-filter-groups)
533 537
534 (define-key map (kbd "% n") 'ibuffer-mark-by-name-regexp) 538 (define-key map (kbd "% n") 'ibuffer-mark-by-name-regexp)
535 (define-key map (kbd "% m") 'ibuffer-mark-by-mode-regexp) 539 (define-key map (kbd "% m") 'ibuffer-mark-by-mode-regexp)
@@ -580,6 +584,8 @@ directory, like `default-directory'."
580 (define-key map (kbd "C-x 4 RET") 'ibuffer-visit-buffer-other-window) 584 (define-key map (kbd "C-x 4 RET") 'ibuffer-visit-buffer-other-window)
581 (define-key map (kbd "C-x 5 RET") 'ibuffer-visit-buffer-other-frame) 585 (define-key map (kbd "C-x 5 RET") 'ibuffer-visit-buffer-other-frame)
582 586
587 (define-key map (kbd "/") ibuffer--filter-map)
588
583 (define-key map [menu-bar view] 589 (define-key map [menu-bar view]
584 (cons "View" (make-sparse-keymap "View"))) 590 (cons "View" (make-sparse-keymap "View")))
585 591