mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(ido-define-mode-map): Remap viper delete char/word
commands to their ido specific equivalents. Disable ESC in viper mode (to avoid exiting insert mode), since ido doesn't work in viper command mode. (ido-delete-backward-updir, ido-delete-backward-word-updir): Handle remapped viper commands.
This commit is contained in:
parent
3d7ca22355
commit
f0a73ccce1
1 changed files with 13 additions and 1 deletions
14
lisp/ido.el
14
lisp/ido.el
|
|
@ -1352,6 +1352,12 @@ This function also adds a hook to the minibuffer."
|
|||
(define-key map "\C-k" 'ido-kill-buffer-at-head)
|
||||
)
|
||||
|
||||
(when (if (boundp 'viper-mode) viper-mode)
|
||||
(define-key map [remap viper-backward-char] 'ido-delete-backward-updir)
|
||||
(define-key map [remap viper-del-backward-char-in-insert] 'ido-delete-backward-updir)
|
||||
(define-key map [remap viper-delete-backward-word] 'ido-delete-backward-word-updir)
|
||||
(define-key map [remap viper-intercept-ESC-key] 'ignore))
|
||||
|
||||
(setq ido-mode-map map)
|
||||
(run-hooks 'ido-define-mode-map-hook)))
|
||||
|
||||
|
|
@ -2166,6 +2172,10 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one.
|
|||
(ido-up-directory t)))
|
||||
((and ido-pre-merge-state (string-equal (car ido-pre-merge-state) ido-text))
|
||||
(ido-undo-merge-work-directory (substring ido-text 0 -1) t t))
|
||||
((eq this-original-command 'viper-backward-char)
|
||||
(funcall this-original-command (prefix-numeric-value count)))
|
||||
((eq this-original-command 'viper-del-backward-char-in-insert)
|
||||
(funcall this-original-command))
|
||||
(t
|
||||
(delete-backward-char (prefix-numeric-value count)))))
|
||||
|
||||
|
|
@ -2175,7 +2185,9 @@ If no buffer or file exactly matching the prompt exists, maybe create a new one.
|
|||
(if (= (minibuffer-prompt-end) (point))
|
||||
(if (not count)
|
||||
(ido-up-directory t))
|
||||
(backward-kill-word (prefix-numeric-value count))))
|
||||
(if (eq this-original-command 'viper-delete-backward-word)
|
||||
(funcall this-original-command (prefix-numeric-value count))
|
||||
(backward-kill-word (prefix-numeric-value count)))))
|
||||
|
||||
(defun ido-get-work-directory (&optional incr must-match)
|
||||
(let ((n (length ido-work-directory-list))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue