X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9a0115abd18f219f234d6dd460cf7f5ed3c0332f..d4aca72ead4c1e53819e6e3249e26400a9879a0e:/lisp/emulation/viper-macs.el diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el index 0b96793deb..89bc77f979 100644 --- a/lisp/emulation/viper-macs.el +++ b/lisp/emulation/viper-macs.el @@ -1,6 +1,6 @@ ;;; viper-macs.el --- functions implementing keyboard macros for Viper -;; Copyright (C) 1994-1997, 2000-2012 Free Software Foundation, Inc. +;; Copyright (C) 1994-1997, 2000-2015 Free Software Foundation, Inc. ;; Author: Michael Kifer ;; Package: viper @@ -31,13 +31,8 @@ (defvar viper-custom-file-name) (defvar viper-current-state) (defvar viper-fast-keyseq-timeout) - -;; loading happens only in non-interactive compilation -;; in order to spare non-viperized emacs from being viperized -(if noninteractive - (eval-when-compile - (require 'viper-cmd) - )) +(require 'viper-mous) +(require 'viper-ex) ;; end pacifier (require 'viper-util) @@ -83,6 +78,8 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., ;;; Code +(declare-function viper-change-state-to-insert "viper-cmd" ()) + ;; Ex map command (defun ex-map () (let ((mod-char "") @@ -277,6 +274,8 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., )) +(declare-function viper-change-state-to-vi "viper-cmd" ()) + ;; Terminate a Vi kbd macro. ;; optional argument IGNORE, if t, indicates that we are dealing with an ;; existing macro that needs to be registered, but there is no need to @@ -323,7 +322,8 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g., ;; More general definitions are inherited by more specific scopes: ;; global->major mode->buffer. More specific definitions override more general (defun viper-record-kbd-macro (macro-name state macro-body &optional scope) - "Record a Vi macro. Can be used in `.viper' file to define permanent macros. + "Record a Vi macro. +Can be used in `viper-custom-file-name' to define permanent macros. MACRO-NAME is a string of characters or a vector of keys. STATE is either `vi-state' or `insert-state'. It specifies the Viper state in which to define the macro. MACRO-BODY is a string that represents the keyboard macro. @@ -352,8 +352,8 @@ If SCOPE is nil, the user is asked to specify the scope." (error "Can't map an empty macro name")) ;; Macro-name is usually a vector. However, command history or macros - ;; recorded in ~/.viper may be recorded as strings. So, convert to - ;; vectors. + ;; recorded in viper-custom-file-name may be recorded as strings. + ;; So, convert to vectors. (setq macro-name (viper-fixup-macro macro-name)) (if (viper-char-array-p macro-name) (setq macro-name (viper-char-array-to-macro macro-name))) @@ -423,7 +423,7 @@ If SCOPE is nil, the user is asked to specify the scope." ;; if we don't let vector macro-body through %S, ;; the symbols `\.' `\[' etc will be converted into ;; characters, causing invalid read error on recorded - ;; macros in .viper. + ;; macros in viper-custom-file-name. ;; I am not sure is macro-body can still be a string at ;; this point, but I am preserving this option anyway. (if (vectorp macro-body) @@ -484,11 +484,11 @@ If SCOPE is nil, the user is asked to specify the scope." ;; in effect (defun viper-unrecord-kbd-macro (macro-name state) "Delete macro MACRO-NAME from Viper STATE. -MACRO-NAME must be a vector of viper-style keys. This command is used by Viper -internally, but the user can also use it in ~/.viper to delete pre-defined -macros supplied with Viper. The best way to avoid mistakes in macro names to -be passed to this function is to use viper-describe-kbd-macros and copy the -name from there." +MACRO-NAME must be a vector of viper-style keys. This command is used +by Viper internally, but you can also use it in `viper-custom-file-name' +to delete pre-defined macros supplied with Viper. The best way to avoid +mistakes in macro names to be passed to this function is to use +`viper-describe-kbd-macros' and copy the name from there." (let* (state-name keymap (macro-alist-var (cond ((eq state 'vi-state) @@ -508,7 +508,8 @@ name from there." macro-pair macro-entry) ;; Macro-name is usually a vector. However, command history or macros - ;; recorded in ~/.viper may appear as strings. So, convert to vectors. + ;; recorded in viper-custom-file-name may appear as strings. + ;; So, convert to vectors. (setq macro-name (viper-fixup-macro macro-name)) (if (viper-char-array-p macro-name) (setq macro-name (viper-char-array-to-macro macro-name)))