changeset 49579:e19c547c5487

(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.
author Kim F. Storm <storm@cua.dk>
date Mon, 03 Feb 2003 22:33:13 +0000
parents b35587af8747
children 0b1a8984fce1
files lisp/ido.el
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ido.el	Mon Feb 03 20:55:30 2003 +0000
+++ b/lisp/ido.el	Mon Feb 03 22:33:13 2003 +0000
@@ -1352,6 +1352,12 @@
       (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 @@
 	(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 (= (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))