comparison lisp/emulation/vip.el @ 91085:880960b70474

Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-283
author Miles Bader <miles@gnu.org>
date Sun, 11 Nov 2007 00:56:44 +0000
parents f55f9811f5d7 13163bbed0bf
children 606f2d163a64
comparison
equal deleted inserted replaced
91084:a4347a111894 91085:880960b70474
872 (progn (goto-char beg) (set-mark end)) 872 (progn (goto-char beg) (set-mark end))
873 (goto-char end) 873 (goto-char end)
874 (set-mark beg)) 874 (set-mark beg))
875 (beginning-of-line) 875 (beginning-of-line)
876 (exchange-point-and-mark) 876 (exchange-point-and-mark)
877 (if (or (not (eobp)) (not (bolp))) (next-line 1)) 877 (if (or (not (eobp)) (not (bolp))) (with-no-warnings (next-line 1)))
878 (beginning-of-line) 878 (beginning-of-line)
879 (if (> beg end) (exchange-point-and-mark))) 879 (if (> beg end) (exchange-point-and-mark)))
880 880
881 (defun vip-global-execute () 881 (defun vip-global-execute ()
882 "Call last keyboad macro for each line in the region." 882 "Call last keyboad macro for each line in the region."
1048 ;; line command 1048 ;; line command
1049 1049
1050 (defun vip-line (arg) 1050 (defun vip-line (arg)
1051 (let ((val (car arg)) (com (cdr arg))) 1051 (let ((val (car arg)) (com (cdr arg)))
1052 (move-marker vip-com-point (point)) 1052 (move-marker vip-com-point (point))
1053 (next-line (1- val)) 1053 (with-no-warnings (next-line (1- val)))
1054 (vip-execute-com 'vip-line val com))) 1054 (vip-execute-com 'vip-line val com)))
1055 1055
1056 (defun vip-yank-line (arg) 1056 (defun vip-yank-line (arg)
1057 "Yank ARG lines (in vi's sense)" 1057 "Yank ARG lines (in vi's sense)"
1058 (interactive "P") 1058 (interactive "P")
1261 (defun vip-next-line-at-bol (arg) 1261 (defun vip-next-line-at-bol (arg)
1262 "Next line at beginning of line." 1262 "Next line at beginning of line."
1263 (interactive "P") 1263 (interactive "P")
1264 (let ((val (vip-p-val arg)) (com (vip-getCom arg))) 1264 (let ((val (vip-p-val arg)) (com (vip-getCom arg)))
1265 (if com (move-marker vip-com-point (point))) 1265 (if com (move-marker vip-com-point (point)))
1266 (next-line val) 1266 (with-no-warnings (next-line val))
1267 (back-to-indentation) 1267 (back-to-indentation)
1268 (if com (vip-execute-com 'vip-next-line-at-bol val com)))) 1268 (if com (vip-execute-com 'vip-next-line-at-bol val com))))
1269 1269
1270 (defun vip-previous-line (arg) 1270 (defun vip-previous-line (arg)
1271 "Go to previous line." 1271 "Go to previous line."
1272 (interactive "P") 1272 (interactive "P")
1273 (let ((val (vip-p-val arg)) (com (vip-getCom arg))) 1273 (let ((val (vip-p-val arg)) (com (vip-getCom arg)))
1274 (if com (move-marker vip-com-point (point))) 1274 (if com (move-marker vip-com-point (point)))
1275 (next-line (- val)) 1275 (with-no-warnings (next-line (- val)))
1276 (setq this-command 'previous-line) 1276 (setq this-command 'previous-line)
1277 (if com (vip-execute-com 'vip-previous-line val com)))) 1277 (if com (vip-execute-com 'vip-previous-line val com))))
1278 1278
1279 (defun vip-previous-line-at-bol (arg) 1279 (defun vip-previous-line-at-bol (arg)
1280 "Previous line at beginning of line." 1280 "Previous line at beginning of line."
1281 (interactive "P") 1281 (interactive "P")
1282 (let ((val (vip-p-val arg)) (com (vip-getCom arg))) 1282 (let ((val (vip-p-val arg)) (com (vip-getCom arg)))
1283 (if com (move-marker vip-com-point (point))) 1283 (if com (move-marker vip-com-point (point)))
1284 (next-line (- val)) 1284 (with-no-warnings (next-line (- val)))
1285 (back-to-indentation) 1285 (back-to-indentation)
1286 (if com (vip-execute-com 'vip-previous-line val com)))) 1286 (if com (vip-execute-com 'vip-previous-line val com))))
1287 1287
1288 (defun vip-change-to-eol (arg) 1288 (defun vip-change-to-eol (arg)
1289 "Change to end of line." 1289 "Change to end of line."
1321 (if (> arg 0) 1321 (if (> arg 0)
1322 (narrow-to-region 1322 (narrow-to-region
1323 ;; forward search begins here 1323 ;; forward search begins here
1324 (if (eolp) (error "") (point)) 1324 (if (eolp) (error "") (point))
1325 ;; forward search ends here 1325 ;; forward search ends here
1326 (progn (next-line 1) (beginning-of-line) (point))) 1326 (progn (with-no-warnings (next-line 1)) (beginning-of-line) (point)))
1327 (narrow-to-region 1327 (narrow-to-region
1328 ;; backward search begins from here 1328 ;; backward search begins from here
1329 (if (bolp) (error "") (point)) 1329 (if (bolp) (error "") (point))
1330 ;; backward search ends here 1330 ;; backward search ends here
1331 (progn (beginning-of-line) (point)))) 1331 (progn (beginning-of-line) (point))))
1801 (error "Nothing in register %c" reg)) 1801 (error "Nothing in register %c" reg))
1802 (error ""))) 1802 (error "")))
1803 (setq vip-use-register nil) 1803 (setq vip-use-register nil)
1804 (if (vip-end-with-a-newline-p text) 1804 (if (vip-end-with-a-newline-p text)
1805 (progn 1805 (progn
1806 (next-line 1) 1806 (with-no-warnings (next-line 1))
1807 (beginning-of-line)) 1807 (beginning-of-line))
1808 (if (and (not (eolp)) (not (eobp))) (forward-char))) 1808 (if (and (not (eolp)) (not (eobp))) (forward-char)))
1809 (setq vip-d-com (list 'vip-put-back val nil vip-use-register)) 1809 (setq vip-d-com (list 'vip-put-back val nil vip-use-register))
1810 (vip-loop val (vip-yank text)))) 1810 (vip-loop val (vip-yank text))))
1811 1811
2881 (defun ex-read () 2881 (defun ex-read ()
2882 "ex read" 2882 "ex read"
2883 (let ((point (if (null ex-addresses) (point) (car ex-addresses))) 2883 (let ((point (if (null ex-addresses) (point) (car ex-addresses)))
2884 (variant nil) command file) 2884 (variant nil) command file)
2885 (goto-char point) 2885 (goto-char point)
2886 (if (not (= point 0)) (next-line 1)) 2886 (if (not (= point 0)) (with-no-warnings (next-line 1)))
2887 (beginning-of-line) 2887 (beginning-of-line)
2888 (save-window-excursion 2888 (save-window-excursion
2889 (set-buffer " *ex-working-space*") 2889 (set-buffer " *ex-working-space*")
2890 (skip-chars-forward " \t") 2890 (skip-chars-forward " \t")
2891 (if (looking-at "!") 2891 (if (looking-at "!")