diff options
| author | Lars Ingebrigtsen | 2019-07-26 14:38:35 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2019-07-26 14:38:35 +0200 |
| commit | e986ba1968ad221be3150e4b4cd51a345e980e3b (patch) | |
| tree | 7182d3449be09d90bf9e050f6a6ab27d72ebd9c6 | |
| parent | 68789c9370f62e9288683591a1849fd3843e7a13 (diff) | |
| download | emacs-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.el | 84 |
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 | ||