;;; vip.el --- a VI Package for GNU Emacs
-;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2011
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1986-1988, 1992-1993, 1998, 2001-2014 Free Software
+;; Foundation, Inc.
;; Author: Masahiko Sato <ms@sail.stanford.edu>
;; Keywords: emulations
(defvar vip-inhibit-startup-message nil)
-(defvar vip-startup-file (convert-standard-filename "~/.vip")
+(defvar vip-startup-file (locate-user-emacs-file "vip" ".vip")
"Filename used as startup file for vip.")
\f
;; key bindings
(define-key map "\C-z" 'vip-change-mode-to-emacs)
(define-key map "\e" 'vip-ESC)
+ (define-key map [?\S-\ ] 'vip-scroll-back)
(define-key map " " 'vip-scroll)
(define-key map "!" 'vip-command-argument)
(define-key map "\"" 'vip-command-argument)
(defmacro vip-loop (count body)
"(COUNT BODY) Execute BODY COUNT times."
- (list 'let (list (list 'count count))
- (list 'while (list '> 'count 0)
- body
- (list 'setq 'count (list '1- 'count)))))
+ `(let ((count ,count))
+ (while (> count 0)
+ ,body
+ (setq count (1- count)))))
(defun vip-push-mark-silent (&optional location)
"Set mark at LOCATION (point, by default) and push old mark on mark ring.
(goto-char (point-min))
(if (y-or-n-p "Inhibit VIP startup message? ")
(progn
- (with-current-buffer
+ (with-current-buffer
(find-file-noselect
(substitute-in-file-name vip-startup-file))
(goto-char (point-max))
(if (= com ?!)
(setq vip-last-shell-com (vip-read-string "!"))
vip-last-shell-com)
- t)))
+ t t)))
((= com ?=)
(save-excursion
(set-mark vip-com-point)
(if (> beg end) (exchange-point-and-mark)))
(defun vip-global-execute ()
- "Call last keyboad macro for each line in the region."
+ "Call last keyboard macro for each line in the region."
(if (> (point) (mark)) (exchange-point-and-mark))
(beginning-of-line)
(call-last-kbd-macro)
"Show current buffer in two windows."
(interactive)
(delete-other-windows)
- (split-window-vertically nil))
+ (split-window-below))
\f
;; searching
(goto-char beg)
(set-mark end)
(vip-enlarge-region (point) (mark))
- (shell-command-on-region (point) (mark) command t))
+ (shell-command-on-region (point) (mark) command t t))
(goto-char beg)))))
(defun ex-line-no ()