Jason Spiro <jasonspiro4+gm...@gmail.com> writes: > Hi all, > > I am curious: what private changes to Viper and/or Vimpulse do you have in > your > .emacs file? You can tell us: > > 1. an English-language summary of what your code does, or > 2. the code itself, or > 3. both.
Hi Jason, nice idea; I'd definitely prefer the 2. though, i.e. let the Elisp speak for itself. Furthermore, contents of the Viper init file, which is different from .emacs/init.el is relevant, too. Also, why didn't *you* paste your customisations here to begin with? I have no .emacs; I use init.el which loads some other init files. Here are the Viper/Vimpulse-related parts with some explanations: init.el: -------- (setq viper-custom-file-name "~/.emacs.d/init/viper") (load "~/.emacs.d/init/init-vimpulse.el") ;; Don't mess with my minibuffer, bad, bad Viper! (remove-hook 'minibuffer-setup-hook 'viper-minibuffer-setup-sentinel) ;; Don't mess with my Esc key in Vi state, bad, bad Viper! (define-key viper-vi-intercept-map viper-ESC-key nil) ; viper-intercept-ESC-key ;; Don't mess with my input methods, bad, bad Viper! (defalias 'viper-set-input-method 'ignore) (ad-deactivate 'activate-input-method) (ad-deactivate 'inactivate-input-method) (ad-deactivate 'toggle-input-method) init-vimpulse.el: ----------------- (setq vimpulse-want-vi-keys-in-apropos nil) (setq vimpulse-want-vi-keys-in-buffmenu nil) (setq vimpulse-want-vi-keys-in-dired nil) (setq vimpulse-want-vi-keys-in-help nil) (setq vimpulse-want-vi-keys-in-Info nil) (setq vimpulse-want-change-undo nil) (add-to-list 'load-path "~/Hacking/emacs/vimpulse/vimpulse") (require 'vimpulse) ;; redefine (equiv. of the famous `map Y y$') (defun viper-yank-line (arg) "Delete to the end of line." (interactive "P") (viper-goto-eol (cons arg ?y))) (vimpulse-define-text-object vimpulse-sexp (arg) "Select a S-expression." :keys '("ae" "ie") (vimpulse-inner-object-range arg 'backward-sexp 'forward-sexp)) ;; http://www.emacswiki.org/emacs/GotoChg (define-key viper-vi-basic-map "g;" 'goto-last-change) (define-key viper-vi-basic-map "g," 'goto-last-change-reverse) (define-key viper-vi-basic-map "ga" 'what-cursor-position) (define-key viper-vi-basic-map "go" 'goto-char) viper: ------ (setq-default viper-auto-indent t) (setq viper-change-notification-threshold 0 viper-expert-level 5 viper-inhibit-startup-message t viper-vi-style-in-minibuffer nil viper-want-ctl-h-help t) (setq-default viper-ex-style-editing nil) (setq-default viper-ex-style-motion nil) (setq-default viper-delete-backwards-in-replace t) ;; `.mad-to-list' is defined in yet another file like this: ;; (defun .mad-to-list (lvar els &optional append cmpfun) ;; "Add elements contained in the list ELS to LVAR. ;; In short, multi- `add-to-list', which also see for explanation of ;; the optional arguments. ;; Returns the new value of LVAR." ;; (dolist (el els (symbol-value lvar)) (add-to-list lvar el append cmpfun))) (.mad-to-list 'viper-emacs-state-mode-list '(desktop-menu-mode etags-select-mode)) (define-key viper-vi-basic-map "\C-c/" nil) ; viper-toggle-search-style (define-key viper-vi-basic-map "\C-\\" nil) ; viper-alternate-Meta-key (define-key viper-insert-basic-map "\C-\\" nil) (define-key viper-vi-basic-map "\C-^" nil) ; (viper-ex "e#") (define-key viper-insert-basic-map "\C-d" nil) ; viper-backward-indent (define-key viper-insert-basic-map "\C-t" nil) ; viper-forward-indent (define-key viper-insert-basic-map "\C-w" nil) ; viper-delete-backward-word (define-key viper-insert-basic-map (kbd "<delete>") nil) ;; see `viper-adjust-keys-for'; mind boggles... (defadvice viper-adjust-keys-for (after fuck-viper activate) (define-key viper-insert-basic-map "\C-m" nil) ; viper-autoindent (define-key viper-insert-basic-map "\C-j" nil) (define-key viper-insert-basic-map (kbd "<backspace>") nil) ; viper-del-backward-char-in-insert (define-key viper-insert-basic-map "" nil)) (define-key viper-vi-global-user-map " " 'viper-scroll-screen) (define-key viper-vi-global-user-map (kbd "<backspace>") 'viper-scroll-screen-back) (define-key viper-vi-global-user-map (kbd "DEL") 'viper-scroll-screen-back) ;; `copy-from-above-command' is defined in misc.el and comes with Emacs; ;; `copy-from-below-command' is just an adjustment of the above, left as an ;; exercise for the reader (define-key viper-insert-global-user-map (kbd "C-y") (lambda (&optional arg) (interactive "p") (copy-from-above-command arg))) (define-key viper-insert-global-user-map (kbd "C-e") (lambda (&optional arg) (interactive "p") (copy-from-below-command arg))) HOWGH. Looking forward to seeing yours! Štěpán _______________________________________________ implementations-list mailing list implementations-list@lists.ourproject.org https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list