Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion viper advice for emacs user sought
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Kai Großjohann  
View profile  
 More options Sep 9 2002, 5:49 am
Newsgroups: comp.emacs
From: Kai.Grossjoh...@CS.Uni-Dortmund.DE (Kai Großjohann)
Date: Mon, 09 Sep 2002 11:36:30 +0200
Local: Mon, Sep 9 2002 5:36 am
Subject: Re: viper advice for emacs user sought

Joachim Pense <joachim.pe...@t-online.de> writes:
> Kai Großjohann:

>> Joachim Pense <joachim.pe...@t-online.de> writes:

>>> One advice (by Kai) seems very good to me: bind caps-lock to Escape.

>> I didn't say that.  I bind the key to the left of 1 to escape.  (Caps

> Sorry for remembering wrong.

No problemo.

>> [...] Do you want a complete list?

> Yes, please!

OK.  Here is my complette .viper file.  Please don't just blindly
copy parts of it (or all of it), try to understand what's going on.
This is very much tailored to my personal taste, anyway.

;; -*- emacs-lisp -*-

;; define colon commands via ex-token-alist

;; always use viper for a buffer if appropriate
(setq viper-always t)

;; I want to do many customizations for myself
(setq viper-expert-level 5)

;; key customizations
(setq viper-want-ctl-h-help t)
(setq viper-want-emacs-keys-in-insert t)
(setq viper-want-emacs-keys-in-vi t)
(setq viper-ex-style-editing nil)
(setq-default viper-ex-style-editing nil)
(setq viper-ex-style-motion nil)
(setq-default viper-ex-style-motion nil)
(setq viper-no-multiple-ESC nil)
(setq viper-auto-indent t)
(when (featurep 'iswitchb)
  (setq viper-read-buffer-function 'iswitchb-read-buffer))

(viper-set-input-method 1)
;(setq-default viper-special-input-method t)

;; searching
(setq viper-case-fold-search t)
(viper-buffer-search-enable)

;; hacks and kludges
;;(defadvice viper-set-emacs-state-searchstyle-macros
;;  (around kai-viper-disable-slash activate)
;;  "Disable changing `//' and `///' in Emacs mode in any mode."
;;  nil)
;; (viper-set-emacs-state-searchstyle-macros t 'dired-mode) ; dired
;; (viper-set-emacs-state-searchstyle-macros t 'tar-mode) ; tar
;; (viper-set-emacs-state-searchstyle-macros t 'mh-folder-mode) ; mhe
;; (viper-set-emacs-state-searchstyle-macros t 'gnus-group-mode) ; gnus
;; (viper-set-emacs-state-searchstyle-macros t 'gnus-summary-mode)
;; (viper-set-emacs-state-searchstyle-macros t 'Info-mode) ; info
;; (viper-set-emacs-state-searchstyle-macros t 'Buffer-menu-mode) ;buffer-menu

;; misc
;; The following line is superseded by something in the Gnus section.
;(add-to-list 'viper-insert-state-mode-list 'message-mode)
(add-to-list 'viper-vi-state-mode-list 'sawfish-mode)
(add-to-list 'viper-vi-state-mode-list 'xsl-mode)

(remove-hook 'viper-minibuffer-exit-hook 'viper-minibuffer-trim-tail)

(setq viper-slash-and-colon-map nil)
(setq-default viper-slash-and-colon-map nil)
;; bind these keys because they conflict with my personal keymap
(define-key viper-vi-global-user-map [prior] 'scroll-down)
(define-key viper-vi-global-user-map [next] 'scroll-up)
(define-key viper-vi-global-user-map [right] 'viper-forward-char)
(define-key viper-vi-global-user-map [left] 'viper-backward-char)
(define-key viper-insert-global-user-map [prior] 'scroll-down)
(define-key viper-insert-global-user-map [next] 'scroll-up)
(define-key viper-minibuffer-map [prior] 'switch-to-completions)
;; this one conflicts with MULE
(define-key viper-vi-basic-map (kbd "C-\\") nil)
(define-key viper-vi-basic-map (kbd "C-|") 'viper-alternate-Meta-key)
(define-key viper-insert-basic-map (kbd "C-\\") nil)
(define-key viper-insert-basic-map (kbd "C-|") 'viper-alternate-Meta-key)
;; the following are for programming
(defun kai-viper-skeleton-comment ()
  (interactive)
  (call-interactively 'skeleton-comment)
  (viper-change-state-to-insert))
(defun kai-viper-skeleton-small-comment ()
  (interactive)
  (call-interactively 'skeleton-small-comment)
  (viper-change-state-to-insert))
(define-key viper-vi-basic-map (kbd "z C") 'kai-viper-skeleton-comment)
(define-key viper-vi-basic-map (kbd "z c") 'kai-viper-skeleton-small-comment)
(define-key viper-vi-basic-map (kbd "z n") 'next-error)
(define-key viper-vi-basic-map (kbd "z m") 'compile)
(define-key viper-vi-basic-map (kbd "z f") 'imenu)
(define-key viper-vi-basic-map (kbd "z v") vc-prefix-map)
(define-key viper-vi-basic-map (kbd "z SPC") 'set-mark-command)
(define-key viper-vi-basic-map (kbd "z w") 'kill-region)
(define-key viper-vi-basic-map (kbd "z q") 'bury-buffer)
(define-key viper-vi-basic-map (kbd "z g") ctl-x-map)
(define-key viper-vi-basic-map (kbd "z x") ctl-x-map)
(define-key viper-vi-basic-map (kbd "z o") 'switch-to-other-buffer)
(define-key viper-vi-basic-map (kbd "z b") 'ibuffer)
(define-key viper-vi-basic-map (kbd "z a") 'delete-other-windows)
(define-key viper-vi-basic-map (kbd "z z") 'other-window)
(define-key viper-vi-basic-map (kbd "z s") 'other-window)
(define-key viper-vi-basic-map (kbd "z p") 'other-window)
(define-key viper-vi-basic-map (kbd "z 0") 'delete-window)
(define-key viper-vi-basic-map (kbd "z 1") 'delete-other-windows)
(define-key viper-vi-basic-map (kbd "z 2") 'split-window-vertically)
(define-key viper-vi-basic-map (kbd "z 4") ctl-x-4-map)
(define-key viper-vi-basic-map (kbd "q") 'fill-paragraph)
(define-key viper-vi-basic-map (kbd "C-u") 'universal-argument)

(define-key viper-vi-global-user-map (kbd "C-h") 'help-command)
(define-key viper-insert-global-user-map (kbd "C-h") 'help-command)
(define-key viper-insert-global-user-map (kbd "C-t") 'transpose-chars)

(setq viper-insert-state-cursor-color "seagreen")
(setq viper-replace-overlay-cursor-color "firebrick")

(defun kai-viper-Open-line (arg)
  "Open line below, leaving more space."
  (interactive "P")
  (beginning-of-line)
  (open-line 1)
  (newline)
  (viper-Open-line arg))
(define-key viper-vi-basic-map (kbd "O") 'kai-viper-Open-line)

(defun kai-ex-write ()
  "Like the viper `:w' command."
  (interactive)
  (viper-ex nil "write"))
(define-key viper-vi-basic-map (kbd "z /") 'kai-ex-write)

(setq viper-smart-suffix-list
      (append viper-smart-suffix-list
              (list "java")))

;;-;; iso-accents-mode support
;;-(make-variable-buffer-local 'viper-automatic-iso-accents)
;;-(defun kai-toggle-viper-automatic-iso-accents ()
;;-  (interactive)
;;-  (setq viper-automatic-iso-accents (not viper-automatic-iso-accents)))
;;-(global-set-key [f3 f2] 'kai-toggle-viper-automatic-iso-accents)

;; Gnus specific customization
(defun kai-viper-message-hook ()
  (viper-add-local-keys 'vi-state
                        '(("ZZ" . message-send-and-exit)
                          ("ZN" . message-insert-my-name)
                          ("ZG" . kai-message-delete-gcc)
                          ("zz" . message-send-and-exit)
                          ("zk" . message-kill-buffer)
                          ("zn" . message-insert-my-name)
                          ("zs" . message-kill-to-signature)
                          ("za" . message-elide-region)
                          ("zv" . message-delete-not-region)
                          ("zg" . kai-message-delete-gcc)
                          ("zh" . kai-message-goto-gcc)
                          ("zc" . message-goto-cc)
                          ("zt" . message-goto-to)
                          ("zb" . message-goto-body)
                          )))
(add-hook 'message-mode-hook 'kai-viper-message-hook)
(defun kai-viper-gnus-setup ()
  (setq viper-emacs-kbd-minor-mode nil))
(add-hook 'gnus-summary-mode-hook 'kai-viper-gnus-setup)

;; This chooses insert mode for postings, where point is in a header.
;; For followups, where point is in the body, we choose command mode
;; since we'll likely want to delete some quoted text or suchlike.
;; Thanks to Julien Oster for this nifty piece of code.
(defun kai-viper-message-choose-mode ()
  (when (message-point-in-header-p)
    (viper-insert 0)))
(add-hook 'message-mode-hook 'kai-viper-message-choose-mode)

;; AUC TeX specific customization
(defun kai-viper-LaTeX-section ()
  (interactive)
  (call-interactively 'LaTeX-section)
  (viper-change-state-to-insert))
(defun kai-viper-LaTeX-environment (arg)
  (interactive "*P")
  (LaTeX-environment arg)
  (unless arg (viper-change-state-to-insert)))
(defun kai-viper-LaTeX-insert-item ()
  (interactive "*")
  (end-of-line)
  (LaTeX-insert-item)
  (viper-change-state-to-insert))
(defun kai-viper-TeX-insert-macro ()
  (interactive)
  (call-interactively 'TeX-insert-macro)
  (viper-change-state-to-insert))
(defun kai-viper-LaTeX-close-environment ()
  (interactive)
  (end-of-line)
  (call-interactively 'LaTeX-close-environment))
(defun kai-viper-skeleton-latex-german ()
  (interactive)
  (call-interactively 'skeleton-latex-german))
(defun kai-viper-tex-hook ()
  (viper-add-local-keys 'vi-state
                        '(("zs" . kai-viper-LaTeX-section)
                          ("ze" . kai-viper-LaTeX-environment)
                          ("zi" . kai-viper-LaTeX-insert-item)
                          ("zm" . kai-viper-TeX-insert-macro)
                          ("z]" . kai-viper-LaTeX-close-environment)
                          ("zd" . kai-viper-skeleton-latex-german)
                          ("zz" . TeX-command-master)
                          ("z`" . TeX-next-error)
                          ("zn" . TeX-next-error)
                          ("zl" . TeX-recenter-output-buffer)
                          ("z=" . reftex-toc))))
(add-hook 'LaTeX-mode-hook 'kai-viper-tex-hook)

(viper-harness-minor-mode "reftex")

;; Todo mode specific customization
(add-hook 'todo-mode-hook 'viper-change-state-to-emacs)
(viper-harness-minor-mode "todo-mode")

;; Server mode specific customization
(defun kai-viper-server-switch-hook ()
  (use-local-map (copy-sequence (or (current-local-map)
                                    (make-sparse-keymap "Local map"))))
  (viper-add-local-keys "zz" 'server-edit))
(add-hook 'server-switch-hook 'kai-viper-server-switch-hook)

;; SGML mode specific customization (psgml)
(defun kai-viper-sgml-insert-element ()
  (interactive)
  (call-interactively 'sgml-insert-element)
  (viper-change-state-to-insert))
(defun kai-viper-sgml-insert-tag ()
  (interactive)
  (call-interactively 'sgml-insert-tag)
  (viper-change-state-to-insert))
(defun kai-viper-sgml-insert-end-tag ()
  (interactive)
  (call-interactively 'sgml-insert-end-tag))
(defun kai-viper-sgml-split-element ()
  (interactive)
  (call-interactively 'sgml-split-element)
  (viper-change-state-to-insert))
(defun kai-viper-sgml-mode-hook ()
  (viper-change-state-to-vi)
  (viper-add-local-keys 'vi-state
                        '(("ze" . kai-viper-sgml-insert-element)
                          ("zz" . kai-viper-sgml-insert-element)
                          ("z," . kai-viper-sgml-insert-tag)
                          ("zn" . kai-viper-sgml-insert-tag)
                          ("z/" . kai-viper-sgml-insert-end-tag)
                          ("zm" . kai-viper-sgml-split-element))))
(add-hook 'sgml-mode-hook 'kai-viper-sgml-mode-hook)

;; vc-log-mode
(defun kai-viper-vc-log-mode ()
  (viper-add-local-keys 'vi-state
                        '(("zz" . vc-finish-logentry))))
(add-hook 'vc-log-mode-hook 'kai-viper-vc-log-mode)

;; log-edit mode
(defun kai-viper-log-edit-mode ()
  (viper-add-local-keys 'vi-state
                        '(("zz" . log-edit-done))))
(add-hook 'log-edit-mode-hook 'kai-viper-log-edit-mode)

;; For several modes: go to vi mode on startup
(add-hook 'dtd-mode-hook 'viper-change-state-to-vi)

;; For some modes, go to emacs mode on startup
(add-hook 'diff-mode-hook 'viper-change-state-to-emacs)

;; added automatically
(setq viper-inhibit-startup-message 't)

;; .viper ends here

kai
--
A large number of young women don't trust men with beards.  (BFBS Radio)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.