X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/8201f36c1137a8eee78cfc0ecdea629c10200b78..0b51e8e407488b1855c4cacae90560ccb9142a46:/ivy.el diff --git a/ivy.el b/ivy.el index 5b23a4e3d..091e575e9 100644 --- a/ivy.el +++ b/ivy.el @@ -223,25 +223,23 @@ Example: (define-key map (kbd "C-j") 'ivy-alt-done) (define-key map (kbd "C-M-j") 'ivy-immediate-done) (define-key map (kbd "TAB") 'ivy-partial-or-done) - (define-key map (kbd "C-n") 'ivy-next-line) - (define-key map (kbd "C-p") 'ivy-previous-line) - (define-key map (kbd "") 'ivy-next-line) - (define-key map (kbd "") 'ivy-previous-line) + (define-key map [remap next-line] 'ivy-next-line) + (define-key map [remap previous-line] 'ivy-previous-line) (define-key map (kbd "C-s") 'ivy-next-line-or-history) (define-key map (kbd "C-r") 'ivy-reverse-i-search) (define-key map (kbd "SPC") 'self-insert-command) (define-key map (kbd "DEL") 'ivy-backward-delete-char) - (define-key map (kbd "M-DEL") 'ivy-backward-kill-word) - (define-key map (kbd "C-d") 'ivy-delete-char) - (define-key map (kbd "C-f") 'ivy-forward-char) - (define-key map (kbd "M-d") 'ivy-kill-word) - (define-key map (kbd "M-<") 'ivy-beginning-of-buffer) - (define-key map (kbd "M->") 'ivy-end-of-buffer) + (define-key map [remap backward-kill-word] 'ivy-backward-kill-word) + (define-key map [remap delete-char] 'ivy-delete-char) + (define-key map [remap forward-char] 'ivy-forward-char) + (define-key map [remap kill-word] 'ivy-kill-word) + (define-key map [remap beginning-of-buffer] 'ivy-beginning-of-buffer) + (define-key map [remap end-of-buffer] 'ivy-end-of-buffer) (define-key map (kbd "M-n") 'ivy-next-history-element) (define-key map (kbd "M-p") 'ivy-previous-history-element) (define-key map (kbd "C-g") 'minibuffer-keyboard-quit) - (define-key map (kbd "C-v") 'ivy-scroll-up-command) - (define-key map (kbd "M-v") 'ivy-scroll-down-command) + (define-key map [remap scroll-up-command] 'ivy-scroll-up-command) + (define-key map [remap scroll-down-command] 'ivy-scroll-down-command) (define-key map (kbd "C-M-n") 'ivy-next-line-and-call) (define-key map (kbd "C-M-p") 'ivy-previous-line-and-call) (define-key map (kbd "M-q") 'ivy-toggle-regexp-quote) @@ -250,14 +248,14 @@ Example: (define-key map (kbd "C-o") 'hydra-ivy/body) (define-key map (kbd "M-o") 'ivy-dispatching-done) (define-key map (kbd "C-M-o") 'ivy-dispatching-call) - (define-key map (kbd "C-k") 'ivy-kill-line) + (define-key map [remap kill-line] 'ivy-kill-line) (define-key map (kbd "S-SPC") 'ivy-restrict-to-matches) - (define-key map (kbd "M-w") 'ivy-kill-ring-save) + (define-key map [remap kill-ring-save] 'ivy-kill-ring-save) (define-key map (kbd "C-'") 'ivy-avy) (define-key map (kbd "C-M-a") 'ivy-read-action) (define-key map (kbd "C-c C-o") 'ivy-occur) (define-key map (kbd "C-c C-a") 'ivy-toggle-ignore) - (define-key map (kbd "C-h m") 'ivy-help) + (define-key map [remap describe-mode] 'ivy-help) map) "Keymap used in the minibuffer.") (autoload 'hydra-ivy/body "ivy-hydra" "" t) @@ -1410,7 +1408,7 @@ This is useful for recursive `ivy-read'." (not (equal (ivy--get-action ivy-last) 'identity))) (setq initial-input nil)))) ((eq collection 'internal-complete-buffer) - (setq coll (ivy--buffer-list "" ivy-use-virtual-buffers))) + (setq coll (ivy--buffer-list "" ivy-use-virtual-buffers predicate))) (dynamic-collection (setq coll (funcall collection ivy-text))) ((or (functionp collection) @@ -2242,10 +2240,13 @@ Prefix matches to NAME are put ahead of the list." (if (null ivy--old-cands) (let ((ln (with-ivy-window (line-number-at-pos)))) - (or (cl-position-if (lambda (x) - (>= (string-to-number x) ln)) - cands) - 0)) + (or + ;; closest to current line going forwards + (cl-position-if (lambda (x) + (>= (string-to-number x) ln)) + cands) + ;; closest to current line going backwards + (1- (length cands)))) (let ((tail (nthcdr ivy--index ivy--old-cands)) idx) (if (and tail ivy--old-cands (not (equal "^" ivy--old-re))) @@ -2508,7 +2509,7 @@ CANDS is a list of strings." "List of regexps or functions matching buffer names to ignore." :type '(repeat (choice regexp function))) -(defun ivy--buffer-list (str &optional virtual) +(defun ivy--buffer-list (str &optional virtual predicate) "Return the buffers that match STR. When VIRTUAL is non-nil, add virtual buffers." (delete-dups @@ -2520,7 +2521,7 @@ When VIRTUAL is non-nil, add virtual buffers." (abbreviate-file-name default-directory))) (propertize x 'face 'ivy-remote) x)) - (all-completions str 'internal-complete-buffer)) + (all-completions str 'internal-complete-buffer predicate)) (and virtual (ivy--virtual-buffers))))) @@ -2853,7 +2854,7 @@ updated original buffer." (let ((inhibit-read-only t)) (erase-buffer) (funcall (plist-get ivy--occurs-list caller) t)))) - ((memq caller '(counsel-git-grep counsel-grep)) + ((memq caller '(counsel-git-grep counsel-grep counsel-ag)) (let ((inhibit-read-only t)) (erase-buffer) (funcall (plist-get ivy--occurs-list caller)))))))