;; macros, since it enables certain macros to be shared between X and TTY modes
;; by correctly mapping key sequences for Left/Right/... (on an ascii
;; terminal) into logical keys left, right, etc.
-(defun viper-read-key ()
+(defun viper-read-key () ;; FIXME: Use `read-key'?
(let ((overriding-local-map viper-overriding-map)
(inhibit-quit t)
help-char key)
(if viper-mode
()
(setq viper-mode t)
+ ;; FIXME: Don't reload!
(load-library "viper"))
(if viper-first-time ; Important check. Prevents mix-up of startup
;; When viper-mode is executed in such a case, it will set the major mode
;; back to fundamental-mode.
(if (eq (default-value 'major-mode) 'fundamental-mode)
+ ;; FIXME: We should use after-change-major-mode-hook instead!
(setq-default major-mode 'viper-mode))
(viper-setup-ESC-to-escape t)
(defadvice self-insert-command (around viper-self-insert-ad activate)
"Ignore all self-inserting keys in the vi-state."
+ ;; FIXME: Use remapping?
(if (and (eq viper-current-state 'vi-state)
;; Do not use called-interactively-p here. XEmacs does not have it
;; and interactive-p is just fine.