Mercurial > emacs
annotate lisp/view.el @ 66573:e65b759c6906
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-630
Merge from gnus--rel--5.10
Patches applied:
* gnus--rel--5.10 (patch 149-151)
- Merge from emacs--cvs-trunk--0
- Update from CVS
2005-10-27 Reiner Steib <Reiner.Steib@gmx.de>
* lisp/gnus/flow-fill.el (fill-flowed-encode-tests): Restore trailing
whitespace removed in revision 7.8. Use concatenated string to
protect trailing whitespace.
2005-10-27 Jouni K Seppanen <jks@iki.fi> (tiny change)
* lisp/gnus/nnimap.el (nnimap-search-uids-not-since-is-evil): Add variable.
(nnimap-request-expire-articles): Use it to avoid sending 'UID
SEARCH UID ... NOT SINCE' queries, for inefficient servers like
Courier IMAP ("some version from 2004"). Mostly based on similar
code in the same function.
2005-10-26 Katsumi Yamaoka <yamaoka@jpl.org>
* lisp/gnus/message.el (message-display-completion-list): New function.
(message-expand-group): Use it; make sure the Completions buffer
is modifiable.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Mon, 31 Oct 2005 07:07:28 +0000 |
parents | 448f6238d8ed |
children | 78e1225a40a2 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
33423
diff
changeset
|
1 ;;; view.el --- peruse file or buffer without editing |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
2 |
64762
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64091
diff
changeset
|
3 ;; Copyright (C) 1985, 1989, 1994, 1995, 1997, 2000, 2001, 2002, |
41bb365f41c4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64091
diff
changeset
|
4 ;; 2003, 2004, 2005 Free Software Foundation, Inc. |
840
113281b361ec
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
5 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
6 ;; Author: K. Shane Hartman |
18271 | 7 ;; Maintainer: Inge Frick <inge@nada.kth.se> |
39117 | 8 ;; Keywords: files |
44 | 9 |
10 ;; This file is part of GNU Emacs. | |
11 | |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 ;; it under the terms of the GNU General Public License as published by | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
14 ;; the Free Software Foundation; either version 2, or (at your option) |
44 | 15 ;; any later version. |
16 | |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
14169 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64091 | 24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
25 ;; Boston, MA 02110-1301, USA. | |
44 | 26 |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
931
diff
changeset
|
27 ;;; Commentary: |
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
931
diff
changeset
|
28 |
12856 | 29 ;; This package provides the `view' minor mode documented in the Emacs |
2319
d98c49df2acd
Added or corrected Commentary section
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
931
diff
changeset
|
30 ;; user's manual. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
31 ;; View mode entry and exit is done through the functions view-mode-enter |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
32 ;; and view-mode-exit. Use these functions to enter or exit view-mode from |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
33 ;; emacs lisp programs. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
34 ;; We use both view- and View- as prefix for symbols. View- is used as |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
35 ;; prefix for commands that have a key binding. view- is used for commands |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
36 ;; without key binding. The purpose of this is to make it easier for a |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
37 ;; user to use command name completion. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
38 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
39 ;;; Suggested key bindings: |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
40 ;; |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
41 ;; (define-key ctl-x-4-map "v" 'view-file-other-window) ; ^x4v |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
42 ;; (define-key ctl-x-5-map "v" 'view-file-other-frame) ; ^x5v |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
43 ;; |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
44 ;; You could also bind view-file, view-buffer, view-buffer-other-window and |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
45 ;; view-buffer-other-frame to keys. |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
46 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
657
diff
changeset
|
47 ;;; Code: |
44 | 48 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
49 (defgroup view nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
50 "Peruse file or buffer without editing." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
51 :link '(function-link view-mode) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
52 :link '(custom-manual "(emacs)Misc File Ops") |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
53 :group 'wp |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
54 :group 'editing) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
55 |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
56 (defcustom view-highlight-face 'highlight |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
57 "*The face used for highlighting the match found by View mode search." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
58 :type 'face |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
59 :group 'view) |
13167
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
60 |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
61 ;; `view-mode-auto-exit' is replaced by the following option variable which |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
62 ;; only says if scrolling past buffer end should leave view mode or not, it |
18250 | 63 ;; doesn't say if leaving view mode should restore windows or not. The latter |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
64 ;; is now controlled by the presence of a value in `view-return-to-alist'. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
65 (defcustom view-scroll-auto-exit nil |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
66 "*Non-nil means scrolling past the end of buffer exits View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
67 nil means attempting to scroll past the end of the buffer, |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
68 only rings the bell and gives a message on how to leave." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
69 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
70 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
71 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
72 (defcustom view-try-extend-at-buffer-end nil |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
73 "*Non-nil means try load more of file when reaching end of buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
74 This variable is mainly intended to be temporarily set to non-nil by |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
75 the F command in view-mode, but you can set it to t if you want the action |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
76 for all scroll commands in view mode." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
77 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
78 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
79 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
80 (defcustom view-remove-frame-by-deleting nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
81 "*Determine how View mode removes a frame no longer needed. |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
82 If nil, make an icon of the frame. If non-nil, delete the frame." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
83 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
84 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
85 |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
86 (defcustom view-exits-all-viewing-windows nil |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
87 "*Non-nil means restore all windows used to view buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
88 Commands that restore windows when finished viewing a buffer, apply to all |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
89 windows that display the buffer and have restore information in |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
90 `view-return-to-alist'. |
21187
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
91 If `view-exits-all-viewing-windows' is nil, only the selected window is |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
92 considered for restoring." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
93 :type 'boolean |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
94 :group 'view) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
95 |
18335
6f48844ce1a9
(view-mode): Add autoload cookie to this variable.
Kenichi Handa <handa@m17n.org>
parents:
18271
diff
changeset
|
96 ;;;###autoload |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
97 (defvar view-mode nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
98 "Non-nil if View mode is enabled. |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
99 Don't change this variable directly, you must change it by one of the |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
100 functions that enable or disable view mode.") |
18335
6f48844ce1a9
(view-mode): Add autoload cookie to this variable.
Kenichi Handa <handa@m17n.org>
parents:
18271
diff
changeset
|
101 ;;;###autoload |
12856 | 102 (make-variable-buffer-local 'view-mode) |
103 | |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
104 (defcustom view-mode-hook nil |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
105 "Normal hook run when starting to view a buffer or file." |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
106 :type 'hook |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
107 :group 'view) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
108 |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
109 (defvar view-old-buffer-read-only nil) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
110 (make-variable-buffer-local 'view-old-buffer-read-only) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
111 |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
112 (defvar view-old-Helper-return-blurb) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
113 (make-variable-buffer-local 'view-old-Helper-return-blurb) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
114 |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
115 ;; Just to avoid warnings. |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
116 (defvar Helper-return-blurb) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
117 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
118 (defvar view-page-size nil |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
119 "Default number of lines to scroll by View page commands. |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
120 If nil that means use the window size.") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
121 (make-variable-buffer-local 'view-page-size) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
122 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
123 (defvar view-half-page-size nil |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
124 "Default number of lines to scroll by View half page commands. |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
125 If nil that means use half the window size.") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
126 (make-variable-buffer-local 'view-half-page-size) |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
127 |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
128 (defvar view-last-regexp nil) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
129 (make-variable-buffer-local 'view-last-regexp) ; Global is better??? |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
130 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
131 (defvar view-return-to-alist nil |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
132 "What to do with used windows and where to go when finished viewing buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
133 This is local in each buffer being viewed. |
21187
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
134 It is added to by `view-mode-enter' when starting to view a buffer and |
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
135 subtracted from by `view-mode-exit' when finished viewing the buffer. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
136 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
137 See RETURN-TO-ALIST argument of function `view-mode-exit' for the format of |
18250 | 138 `view-return-to-alist'.") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
139 (make-variable-buffer-local 'view-return-to-alist) |
55014
202b0dc516a5
(view-return-to-alist): Mark it permanent local.
Richard M. Stallman <rms@gnu.org>
parents:
53845
diff
changeset
|
140 (put 'view-return-to-alist 'permanent-local t) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
141 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
142 (defvar view-exit-action nil |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
143 "nil or a function with one argument (a buffer) called when finished viewing. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
144 This is local in each buffer being viewed. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
145 The \\[view-file] and \\[view-file-other-window] commands may set this to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
146 `kill-buffer'.") |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
147 (make-variable-buffer-local 'view-exit-action) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
148 |
19229
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
149 (defvar view-no-disable-on-exit nil |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
150 "If non-nil, View mode \"exit\" commands don't actually disable View mode. |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
151 Instead, these commands just switch buffers or windows. |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
152 This is set in certain buffers by specialized features such as help commands |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
153 that use View mode automatically.") |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
154 |
13122
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
155 (defvar view-overlay nil |
13167
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
156 "Overlay used to display where a search operation found its match. |
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
157 This is local in each buffer, once it is used.") |
13122
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
158 (make-variable-buffer-local 'view-overlay) |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
159 |
38758
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
160 (unless (assq 'view-mode minor-mode-alist) |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
161 (setq minor-mode-alist |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
162 (cons (list 'view-mode |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
163 (propertize " View" |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
164 'local-map mode-line-minor-mode-keymap |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
165 'help-echo "mouse-3: minor mode menu")) |
a86b8b3e96fd
(toplevel): Use mode-line-minor-mode-keymap for the
Gerd Moellmann <gerd@gnu.org>
parents:
38436
diff
changeset
|
166 minor-mode-alist))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
167 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
168 ;; Define keymap inside defvar to make it easier to load changes. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
169 ;; Some redundant "less"-like key bindings below have been commented out. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
170 (defvar view-mode-map |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
171 (let ((map (make-sparse-keymap))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
172 (define-key map "C" 'View-kill-and-leave) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
173 (define-key map "c" 'View-leave) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
174 (define-key map "Q" 'View-quit-all) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
175 (define-key map "E" 'View-exit-and-edit) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
176 ; (define-key map "v" 'View-exit) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
177 (define-key map "e" 'View-exit) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
178 (define-key map "q" 'View-quit) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
179 ; (define-key map "N" 'View-search-last-regexp-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
180 (define-key map "p" 'View-search-last-regexp-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
181 (define-key map "n" 'View-search-last-regexp-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
182 ; (define-key map "?" 'View-search-regexp-backward) ; Less does this. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
183 (define-key map "\\" 'View-search-regexp-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
184 (define-key map "/" 'View-search-regexp-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
185 (define-key map "r" 'isearch-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
186 (define-key map "s" 'isearch-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
187 (define-key map "m" 'point-to-register) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
188 (define-key map "'" 'register-to-point) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
189 (define-key map "x" 'exchange-point-and-mark) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
190 (define-key map "@" 'View-back-to-mark) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
191 (define-key map "." 'set-mark-command) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
192 (define-key map "%" 'View-goto-percent) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
193 ; (define-key map "G" 'View-goto-line-last) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
194 (define-key map "g" 'View-goto-line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
195 (define-key map "=" 'what-line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
196 (define-key map "F" 'View-revert-buffer-scroll-page-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
197 ; (define-key map "k" 'View-scroll-line-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
198 (define-key map "y" 'View-scroll-line-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
199 ; (define-key map "j" 'View-scroll-line-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
200 (define-key map "\n" 'View-scroll-line-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
201 (define-key map "\r" 'View-scroll-line-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
202 (define-key map "u" 'View-scroll-half-page-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
203 (define-key map "d" 'View-scroll-half-page-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
204 (define-key map "z" 'View-scroll-page-forward-set-page-size) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
205 (define-key map "w" 'View-scroll-page-backward-set-page-size) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
206 ; (define-key map "b" 'View-scroll-page-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
207 (define-key map "\C-?" 'View-scroll-page-backward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
208 ; (define-key map "f" 'View-scroll-page-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
209 (define-key map " " 'View-scroll-page-forward) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
210 (define-key map "o" 'View-scroll-to-buffer-end) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
211 (define-key map ">" 'end-of-buffer) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
212 (define-key map "<" 'beginning-of-buffer) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
213 (define-key map "-" 'negative-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
214 (define-key map "9" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
215 (define-key map "8" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
216 (define-key map "7" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
217 (define-key map "6" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
218 (define-key map "5" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
219 (define-key map "4" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
220 (define-key map "3" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
221 (define-key map "2" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
222 (define-key map "1" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
223 (define-key map "0" 'digit-argument) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
224 (define-key map "H" 'describe-mode) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
225 (define-key map "?" 'describe-mode) ; Maybe do as less instead? See above. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
226 (define-key map "h" 'describe-mode) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
227 map)) |
44 | 228 |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
229 (or (assq 'view-mode minor-mode-map-alist) |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
230 (setq minor-mode-map-alist |
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
231 (cons (cons 'view-mode view-mode-map) minor-mode-map-alist))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
232 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
233 ;;; Commands that enter or exit view mode. |
44 | 234 |
256 | 235 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
236 (defun view-file (file) |
44 | 237 "View FILE in View mode, returning to previous buffer when done. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
238 Emacs commands editing the buffer contents are not available; instead, |
44 | 239 a special set of commands (mostly letters and punctuation) |
240 are defined for moving around in the buffer. | |
241 Space scrolls forward, Delete scrolls backward. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
242 For list of all View commands, type H or h while viewing. |
354 | 243 |
6330
3badf836d51d
(view-mode): Run view-mode-hook as well as view-hook.
Richard M. Stallman <rms@gnu.org>
parents:
5123
diff
changeset
|
244 This command runs the normal hook `view-mode-hook'." |
354 | 245 (interactive "fView file: ") |
51371
463499edca88
(view-file, view-file-other-window, view-file-other-frame):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50786
diff
changeset
|
246 (unless (file-exists-p file) (error "%s does not exist" file)) |
51848
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
247 (let ((had-a-buf (get-file-buffer file)) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
248 (buffer (find-file-noselect file))) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
249 (if (eq (with-current-buffer buffer |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
250 (get major-mode 'mode-class)) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
251 'special) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
252 (progn |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
253 (switch-to-buffer buffer) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
254 (message "Not using View mode because the major mode is special")) |
2ec7d96e306e
(view-file): If existing buffer's major mode is special,
Richard M. Stallman <rms@gnu.org>
parents:
51371
diff
changeset
|
255 (view-buffer buffer (and (not had-a-buf) 'kill-buffer))))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
256 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
257 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
258 (defun view-file-other-window (file) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
259 "View FILE in View mode in another window. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
260 Return that window to its previous buffer when done. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
261 Emacs commands editing the buffer contents are not available; instead, |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
262 a special set of commands (mostly letters and punctuation) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
263 are defined for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
264 Space scrolls forward, Delete scrolls backward. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
265 For list of all View commands, type H or h while viewing. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
266 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
267 This command runs the normal hook `view-mode-hook'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
268 (interactive "fIn other window view file: ") |
51371
463499edca88
(view-file, view-file-other-window, view-file-other-frame):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50786
diff
changeset
|
269 (unless (file-exists-p file) (error "%s does not exist" file)) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
270 (let ((had-a-buf (get-file-buffer file))) |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
271 (view-buffer-other-window (find-file-noselect file) nil |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
272 (and (not had-a-buf) 'kill-buffer)))) |
354 | 273 |
274 ;;;###autoload | |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
275 (defun view-file-other-frame (file) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
276 "View FILE in View mode in another frame. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
277 Maybe delete other frame and/or return to previous buffer when done. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
278 Emacs commands editing the buffer contents are not available; instead, |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
279 a special set of commands (mostly letters and punctuation) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
280 are defined for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
281 Space scrolls forward, Delete scrolls backward. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
282 For list of all View commands, type H or h while viewing. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
283 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
284 This command runs the normal hook `view-mode-hook'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
285 (interactive "fIn other frame view file: ") |
51371
463499edca88
(view-file, view-file-other-window, view-file-other-frame):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50786
diff
changeset
|
286 (unless (file-exists-p file) (error "%s does not exist" file)) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
287 (let ((had-a-buf (get-file-buffer file))) |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
288 (view-buffer-other-frame (find-file-noselect file) nil |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
289 (and (not had-a-buf) 'kill-buffer)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
290 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
291 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
292 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
293 (defun view-buffer (buffer &optional exit-action) |
44 | 294 "View BUFFER in View mode, returning to previous buffer when done. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
295 Emacs commands editing the buffer contents are not available; instead, |
44 | 296 a special set of commands (mostly letters and punctuation) |
297 are defined for moving around in the buffer. | |
298 Space scrolls forward, Delete scrolls backward. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
299 For list of all View commands, type H or h while viewing. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
300 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
301 This command runs the normal hook `view-mode-hook'. |
44 | 302 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
303 Optional argument EXIT-ACTION is either nil or a function with buffer as |
18250 | 304 argument. This function is called when finished viewing buffer. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
305 Use this argument instead of explicitly setting `view-exit-action'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
306 |
44 | 307 (interactive "bView buffer: ") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
308 (let ((undo-window (list (window-buffer) (window-start) (window-point)))) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
309 (switch-to-buffer buffer) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
310 (view-mode-enter (cons (selected-window) (cons nil undo-window)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
311 exit-action))) |
44 | 312 |
256 | 313 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
314 (defun view-buffer-other-window (buffer &optional not-return exit-action) |
12856 | 315 "View BUFFER in View mode in another window. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
316 Return to previous buffer when done, unless optional NOT-RETURN is non-nil. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
317 Emacs commands editing the buffer contents are not available; instead, |
354 | 318 a special set of commands (mostly letters and punctuation) |
319 are defined for moving around in the buffer. | |
320 Space scrolls forward, Delete scrolls backward. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
321 For list of all View commands, type H or h while viewing. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
322 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
323 This command runs the normal hook `view-mode-hook'. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
324 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
325 Optional argument EXIT-ACTION is either nil or a function with buffer as |
18250 | 326 argument. This function is called when finished viewing buffer. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
327 Use this argument instead of explicitly setting `view-exit-action'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
328 (interactive "bIn other window view buffer:\nP") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
329 (let* ((win ; This window will be selected by |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
330 (get-lru-window)) ; switch-to-buffer-other-window below. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
331 (return-to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
332 (and (not not-return) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
333 (cons (selected-window) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
334 (if (eq win (selected-window)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
335 t ; Has to make new window. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
336 (list |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
337 (window-buffer win) ; Other windows old buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
338 (window-start win) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
339 (window-point win))))))) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
340 (switch-to-buffer-other-window buffer) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
341 (view-mode-enter (and return-to (cons (selected-window) return-to)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
342 exit-action))) |
354 | 343 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
344 ;;;###autoload |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
345 (defun view-buffer-other-frame (buffer &optional not-return exit-action) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
346 "View BUFFER in View mode in another frame. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
347 Return to previous buffer when done, unless optional NOT-RETURN is non-nil. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
348 Emacs commands editing the buffer contents are not available; instead, |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
349 a special set of commands (mostly letters and punctuation) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
350 are defined for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
351 Space scrolls forward, Delete scrolls backward. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
352 For list of all View commands, type H or h while viewing. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
353 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
354 This command runs the normal hook `view-mode-hook'. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
355 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
356 Optional argument EXIT-ACTION is either nil or a function with buffer as |
18250 | 357 argument. This function is called when finished viewing buffer. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
358 Use this argument instead of explicitly setting `view-exit-action'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
359 (interactive "bView buffer in other frame: \nP") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
360 (let ((return-to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
361 (and (not not-return) (cons (selected-window) t)))) ; Old window. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
362 (switch-to-buffer-other-frame buffer) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
363 (view-mode-enter (and return-to (cons (selected-window) return-to)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
364 exit-action))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
365 |
354 | 366 ;;;###autoload |
13078
d7735534db86
(view-mode-enter): Renamed from view-mode. Callers changed.
Richard M. Stallman <rms@gnu.org>
parents:
12857
diff
changeset
|
367 (defun view-mode (&optional arg) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
368 ;; In the following documentation string we have to use some explicit key |
18250 | 369 ;; bindings instead of using the \\[] construction. The reason for this |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
370 ;; is that most commands have more than one key binding. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
371 "Toggle View mode, a minor mode for viewing text but not editing it. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
372 With ARG, turn View mode on iff ARG is positive. |
15556 | 373 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
374 Emacs commands that do not change the buffer contents are available as usual. |
18250 | 375 Kill commands insert text in kill buffers but do not delete. Other commands |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
376 \(among them most letters and punctuation) beep and tell that the buffer is |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
377 read-only. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
378 \\<view-mode-map> |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
379 The following additional commands are provided. Most commands take prefix |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
380 arguments. Page commands default to \"page size\" lines which is almost a whole |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
381 window full, or number of lines set by \\[View-scroll-page-forward-set-page-size] or \\[View-scroll-page-backward-set-page-size]. Half page commands default to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
382 and set \"half page size\" lines which initially is half a window full. Search |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
383 commands default to a repeat count of one. |
13640
ee453099e188
(view-mode, view-mode-enter): Doc changes.
Richard M. Stallman <rms@gnu.org>
parents:
13639
diff
changeset
|
384 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
385 H, h, ? This message. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
386 Digits provide prefix arguments. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
387 \\[negative-argument] negative prefix argument. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
388 \\[beginning-of-buffer] move to the beginning of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
389 > move to the end of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
390 \\[View-scroll-to-buffer-end] scroll so that buffer end is at last line of window. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
391 SPC scroll forward \"page size\" lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
392 With prefix scroll forward prefix lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
393 DEL scroll backward \"page size\" lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
394 With prefix scroll backward prefix lines. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
395 \\[View-scroll-page-forward-set-page-size] like \\[View-scroll-page-forward] but with prefix sets \"page size\" to prefix. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
396 \\[View-scroll-page-backward-set-page-size] like \\[View-scroll-page-backward] but with prefix sets \"page size\" to prefix. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
397 \\[View-scroll-half-page-forward] scroll forward \"half page size\" lines. With prefix, sets |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
398 \"half page size\" to prefix lines and scrolls forward that much. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
399 \\[View-scroll-half-page-backward] scroll backward \"half page size\" lines. With prefix, sets |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
400 \"half page size\" to prefix lines and scrolls backward that much. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
401 RET, LFD scroll forward one line. With prefix scroll forward prefix line(s). |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
402 y scroll backward one line. With prefix scroll backward prefix line(s). |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
403 \\[View-revert-buffer-scroll-page-forward] revert-buffer if necessary and scroll forward. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
404 Use this to view a changing file. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
405 \\[what-line] prints the current line number. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
406 \\[View-goto-percent] goes prefix argument (default 100) percent into buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
407 \\[View-goto-line] goes to line given by prefix argument (default first line). |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
408 . set the mark. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
409 x exchanges point and mark. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
410 \\[View-back-to-mark] return to mark and pops mark ring. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
411 Mark ring is pushed at start of every successful search and when |
18250 | 412 jump to line occurs. The mark is set on jump to buffer start or end. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
413 \\[point-to-register] save current position in character register. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
414 ' go to position saved in character register. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
415 s do forward incremental search. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
416 r do reverse incremental search. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
417 \\[View-search-regexp-forward] searches forward for regular expression, starting after current page. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
418 ! and @ have a special meaning at the beginning of the regexp. |
18250 | 419 ! means search for a line with no match for regexp. @ means start |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
420 search at beginning (end for backward search) of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
421 \\ searches backward for regular expression, starting before current page. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
422 \\[View-search-last-regexp-forward] searches forward for last regular expression. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
423 p searches backward for last regular expression. |
49439 | 424 \\[View-quit] quit View mode, restoring this window and buffer to previous state. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
425 \\[View-quit] is the normal way to leave view mode. |
18250 | 426 \\[View-exit] exit View mode but stay in current buffer. Use this if you started |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
427 viewing a buffer (file) and find out you want to edit it. |
49439 | 428 This command restores the previous read-only status of the buffer. |
429 \\[View-exit-and-edit] exit View mode, and make the current buffer editable | |
430 even if it was not editable before entry to View mode. | |
431 \\[View-quit-all] quit View mode, restoring all windows to previous state. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
432 \\[View-leave] quit View mode and maybe switch buffers, but don't kill this buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
433 \\[View-kill-and-leave] quit View mode, kill current buffer and go back to other buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
434 |
18250 | 435 The effect of \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] depends on how view-mode was entered. If it was |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
436 entered by view-file, view-file-other-window or view-file-other-frame |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
437 \(\\[view-file], \\[view-file-other-window], \\[view-file-other-frame] or the dired mode v command), then \\[View-quit] will |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
438 try to kill the current buffer. If view-mode was entered from another buffer |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
439 as is done by View-buffer, View-buffer-other-window, View-buffer-other frame, |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
440 View-file, View-file-other-window or View-file-other-frame then \\[View-leave] , \\[View-quit] and \\[View-kill-and-leave] |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
441 will return to that buffer. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
442 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
443 Entry to view-mode runs the normal hook `view-mode-hook'." |
13640
ee453099e188
(view-mode, view-mode-enter): Doc changes.
Richard M. Stallman <rms@gnu.org>
parents:
13639
diff
changeset
|
444 (interactive "P") |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
445 (unless (and arg ; Do nothing if already OK. |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
446 (if (> (prefix-numeric-value arg) 0) view-mode (not view-mode))) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
447 (if view-mode (view-mode-disable) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
448 (view-mode-enable)))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
449 |
18250 | 450 (defun view-mode-enable () |
451 "Turn on View mode." | |
18268
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
452 ;; Always leave view mode before changing major mode. |
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
453 ;; This is to guarantee that the buffer-read-only variable is restored. |
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
454 (add-hook 'change-major-mode-hook 'view-mode-disable nil t) |
18250 | 455 (setq view-mode t |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
456 view-page-size nil |
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
457 view-half-page-size nil |
18250 | 458 view-old-buffer-read-only buffer-read-only |
459 buffer-read-only t | |
460 view-old-Helper-return-blurb (and (boundp 'Helper-return-blurb) | |
461 Helper-return-blurb) | |
462 Helper-return-blurb | |
463 (format "continue viewing %s" | |
464 (if (buffer-file-name) | |
465 (file-name-nondirectory (buffer-file-name)) | |
466 (buffer-name)))) | |
25218
9c0733c601c9
(view-mode-enable, view-mode-disable):
Karl Heuer <kwzh@gnu.org>
parents:
23987
diff
changeset
|
467 (force-mode-line-update) |
18250 | 468 (run-hooks 'view-mode-hook)) |
469 | |
470 (defun view-mode-disable () | |
471 "Turn off View mode." | |
18268
a42f063f003b
Don't globally add to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents:
18250
diff
changeset
|
472 (remove-hook 'change-major-mode-hook 'view-mode-disable t) |
18250 | 473 (and view-overlay (delete-overlay view-overlay)) |
25218
9c0733c601c9
(view-mode-enable, view-mode-disable):
Karl Heuer <kwzh@gnu.org>
parents:
23987
diff
changeset
|
474 (force-mode-line-update) |
28198
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
475 ;; Calling toggle-read-only while View mode is enabled |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
476 ;; sets view-read-only to t as a buffer-local variable |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
477 ;; after exiting View mode. That arranges that the next toggle-read-only |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
478 ;; will reenable View mode. |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
479 ;; Cancelling View mode in any other way should cancel that, too, |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
480 ;; so that View mode stays off if toggle-read-only is called. |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
481 (if (local-variable-p 'view-read-only) |
1ea4cf592264
(view-mode-disable): Kill local binding of view-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
27544
diff
changeset
|
482 (kill-local-variable 'view-read-only)) |
18250 | 483 (setq view-mode nil |
25219
1b99ab7ab219
(view-mode-disable): If buffer-read-only is nil,
Karl Heuer <kwzh@gnu.org>
parents:
25218
diff
changeset
|
484 Helper-return-blurb view-old-Helper-return-blurb) |
1b99ab7ab219
(view-mode-disable): If buffer-read-only is nil,
Karl Heuer <kwzh@gnu.org>
parents:
25218
diff
changeset
|
485 (if buffer-read-only |
1b99ab7ab219
(view-mode-disable): If buffer-read-only is nil,
Karl Heuer <kwzh@gnu.org>
parents:
25218
diff
changeset
|
486 (setq buffer-read-only view-old-buffer-read-only))) |
13640
ee453099e188
(view-mode, view-mode-enter): Doc changes.
Richard M. Stallman <rms@gnu.org>
parents:
13639
diff
changeset
|
487 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
488 ;;;###autoload |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
489 (defun view-mode-enter (&optional return-to exit-action) "\ |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
490 Enter View mode and set up exit from view mode depending on optional arguments. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
491 If RETURN-TO is non-nil it is added as an element to the buffer local alist |
21772
95df64150c8a
(view-mode-exit): Don't alter view-return-to-alist.
Richard M. Stallman <rms@gnu.org>
parents:
21678
diff
changeset
|
492 `view-return-to-alist'. |
18250 | 493 Save EXIT-ACTION in buffer local variable `view-exit-action'. |
494 It should be either nil or a function that takes a buffer as argument. | |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
495 This function will be called by `view-mode-exit'. |
18250 | 496 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
497 RETURN-TO is either nil, meaning do nothing when exiting view mode, or |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
498 it has the format (WINDOW OLD-WINDOW . OLD-BUF-INFO). |
18250 | 499 WINDOW is a window used for viewing. |
500 OLD-WINDOW is nil or the window to select after viewing. | |
501 OLD-BUF-INFO tells what to do with WINDOW when exiting. It is one of: | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
502 1) nil Do nothing. |
18250 | 503 2) t Delete WINDOW or, if it is the only window, its frame. |
504 3) (OLD-BUFF START POINT) Display buffer OLD-BUFF with displayed text | |
505 starting at START and point at POINT in WINDOW. | |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
506 4) quit-window Do `quit-window' in WINDOW. |
44 | 507 |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
508 For list of all View commands, type H or h while viewing. |
4119
7b1b2a8d05f2
Doc fixes; some args renamed.
Richard M. Stallman <rms@gnu.org>
parents:
3450
diff
changeset
|
509 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
510 This function runs the normal hook `view-mode-hook'." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
511 (if return-to |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
512 (let ((entry (assq (car return-to) view-return-to-alist))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
513 (if entry (setcdr entry (cdr return-to)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
514 (setq view-return-to-alist (cons return-to view-return-to-alist))))) |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
515 (if exit-action (setq view-exit-action exit-action)) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
516 (unless view-mode ; Do nothing if already in view mode. |
18250 | 517 (view-mode-enable) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
518 (force-mode-line-update) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
519 (message "%s" |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
520 (substitute-command-keys "\ |
45776
c8abe21939f2
(view-mode-enter): Clarify echo area message.
Richard M. Stallman <rms@gnu.org>
parents:
41169
diff
changeset
|
521 View mode: type \\[help-command] for help, \\[describe-mode] for commands, \\[View-quit] to quit.")))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
522 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
523 (defun view-mode-exit (&optional return-to-alist exit-action all-win) |
21772
95df64150c8a
(view-mode-exit): Don't alter view-return-to-alist.
Richard M. Stallman <rms@gnu.org>
parents:
21678
diff
changeset
|
524 "Exit View mode in various ways, depending on optional arguments. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
525 RETURN-TO-ALIST, EXIT-ACTION and ALL-WIN determine what to do after exit. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
526 EXIT-ACTION is nil or a function that is called with current buffer as |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
527 argument. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
528 RETURN-TO-ALIST is an alist that for some of the windows displaying the |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
529 current buffer, associate information on what to do with those windows. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
530 If ALL-WIN or the variable `view-exits-all-viewing-windows' is non-nil, |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
531 then all windows on RETURN-TO-ALIST are restored to their old state. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
532 Otherwise only the selected window is affected (if it is on RETURN-TO-ALIST). |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
533 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
534 Elements of RETURN-TO-ALIST have the format (WINDOW OLD-WINDOW . OLD-BUF-INFO). |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
535 WINDOW is a window displaying the current buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
536 OLD-WINDOW is nil or a window to select after viewing. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
537 OLD-BUF-INFO is information on what to do with WINDOW and is one of: |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
538 1) nil Do nothing. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
539 2) t Delete WINDOW and, if it is the only window, its frame. |
18250 | 540 3) (OLD-BUF START POINT) Display buffer OLD-BUF with displayed text |
541 starting at START and point at POINT in WINDOW. | |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
542 4) quit-window Do `quit-window' in WINDOW. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
543 |
18250 | 544 If one of the WINDOW in RETURN-TO-ALIST is the selected window and the |
545 corresponding OLD-WINDOW is a live window, then select OLD-WINDOW." | |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
546 (setq all-win |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
547 (and return-to-alist (or all-win view-exits-all-viewing-windows))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
548 (if view-mode ; Only do something if in view mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
549 (let* ((buffer (current-buffer)) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
550 window notlost |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
551 (sel-old (assq (selected-window) return-to-alist)) |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
552 (alist (cond |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
553 (all-win ; Try to restore all windows. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
554 (append return-to-alist nil)) ; Copy. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
555 (sel-old ; Only selected window. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
556 (list sel-old)))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
557 (old-window (if sel-old (car (cdr sel-old))))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
558 (if all-win ; Follow chains of old-windows. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
559 (let ((c (length alist)) a) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
560 (while (and (> c 0) ; Safety if mutually refering windows. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
561 (or (not (window-live-p old-window)) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
562 (eq buffer (window-buffer old-window))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
563 (setq a (assq old-window alist))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
564 (setq c (1- c)) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
565 (setq old-window (car (cdr a)))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
566 (if (or (zerop c) (not (window-live-p old-window))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
567 (setq old-window (selected-window))))) |
19229
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
568 (or view-no-disable-on-exit |
e272bd93c93c
(view-just-bury): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
18448
diff
changeset
|
569 (view-mode-disable)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
570 (while alist ; Restore windows with info. |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
571 (setq notlost nil) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
572 (if (and (window-live-p (setq window (car (car alist)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
573 (eq buffer (window-buffer window))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
574 (let ((frame (window-frame window)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
575 (old-buf-info (cdr (cdr (car alist))))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
576 (if all-win (select-window window)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
577 (cond |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
578 ((and (consp old-buf-info) ; Case 3. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
579 (buffer-live-p (car old-buf-info))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
580 (set-window-buffer window (car old-buf-info)) ; old-buf |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
581 (set-window-start window (car (cdr old-buf-info))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
582 (set-window-point window (car (cdr (cdr old-buf-info))))) |
21187
f072dd90378d
(view-return-to-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20072
diff
changeset
|
583 ((eq old-buf-info 'quit-window) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
584 (quit-window)) ; Case 4. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
585 ((not (eq old-buf-info t)) nil) ; Not case 2, do nothing. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
586 ((not (one-window-p t)) (delete-window)) |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
587 ((not (eq frame (next-frame))) |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
588 ;; Not the only frame, so can safely be removed. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
589 (if view-remove-frame-by-deleting |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
590 (delete-frame frame) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
591 (setq notlost t) ; Keep the window. See below. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
592 (iconify-frame frame)))))) |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
593 ;; If a frame is removed by iconifying it, then the window is not |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
594 ;; really lost. In this case we keep the entry in |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
595 ;; view-return-to-alist so that if the user deiconifies the frame |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
596 ;; and then press q, then the frame is iconified again. |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
597 (unless notlost |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
598 (setq view-return-to-alist |
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
599 (delete (car alist) view-return-to-alist))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
600 (setq alist (cdr alist))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
601 (if (window-live-p old-window) ; still existing window |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
602 (select-window old-window)) |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
603 (when exit-action |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
604 (setq view-exit-action nil) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
605 (funcall exit-action buffer)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
606 (force-mode-line-update)))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
607 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
608 (defun View-exit () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
609 "Exit View mode but stay in current buffer." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
610 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
611 (view-mode-exit)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
612 |
18335
6f48844ce1a9
(view-mode): Add autoload cookie to this variable.
Kenichi Handa <handa@m17n.org>
parents:
18271
diff
changeset
|
613 ;;;###autoload |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
614 (defun View-exit-and-edit () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
615 "Exit View mode and make the current buffer editable." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
616 (interactive) |
22337
ce89ab9c000e
(View-exit-and-edit): Bind view-no-disable-on-exit to nil.
Karl Heuer <kwzh@gnu.org>
parents:
21772
diff
changeset
|
617 (let ((view-old-buffer-read-only nil) |
ce89ab9c000e
(View-exit-and-edit): Bind view-no-disable-on-exit to nil.
Karl Heuer <kwzh@gnu.org>
parents:
21772
diff
changeset
|
618 (view-no-disable-on-exit nil)) |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
619 (view-mode-exit))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
620 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
621 (defun View-leave () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
622 "Quit View mode and maybe switch buffers, but don't kill this buffer." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
623 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
624 (view-mode-exit view-return-to-alist)) |
44 | 625 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
626 (defun View-quit () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
627 "Quit View mode, trying to restore window and buffer to previous state. |
18250 | 628 Maybe kill this buffer. Try to restore selected window to previous state |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
629 and go to previous buffer or window." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
630 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
631 (view-mode-exit view-return-to-alist view-exit-action)) |
44 | 632 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
633 (defun View-quit-all () |
18250 | 634 "Quit View mode, trying to restore windows and buffers to previous state. |
635 Maybe kill current buffer. Try to restore all windows viewing buffer to | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
636 previous state and go to previous buffer or window." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
637 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
638 (view-mode-exit view-return-to-alist view-exit-action t)) |
44 | 639 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
640 (defun View-kill-and-leave () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
641 "Quit View mode, kill current buffer and return to previous buffer." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
642 (interactive) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
643 (view-mode-exit view-return-to-alist (or view-exit-action 'kill-buffer) t)) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
644 |
44 | 645 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
646 ;;; Some help routines. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
647 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
648 (defun view-window-size () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
649 ;; Window height excluding mode line. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
650 (1- (window-height))) |
6330
3badf836d51d
(view-mode): Run view-mode-hook as well as view-hook.
Richard M. Stallman <rms@gnu.org>
parents:
5123
diff
changeset
|
651 |
44 | 652 ;(defun view-last-command (&optional who what) |
653 ; (setq view-last-command-entry this-command) | |
654 ; (setq view-last-command who) | |
655 ; (setq view-last-command-argument what)) | |
656 | |
657 ;(defun View-repeat-last-command () | |
658 ; "Repeat last command issued in View mode." | |
659 ; (interactive) | |
660 ; (if (and view-last-command | |
661 ; (eq view-last-command-entry last-command)) | |
662 ; (funcall view-last-command view-last-command-argument)) | |
663 ; (setq this-command view-last-command-entry)) | |
664 | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
665 (defun view-recenter () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
666 ;; Center point in window. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
667 (recenter (/ (view-window-size) 2))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
668 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
669 (defun view-page-size-default (lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
670 ;; Get page size. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
671 (let ((default (- (view-window-size) next-screen-context-lines))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
672 (if (or (null lines) (zerop (setq lines (prefix-numeric-value lines)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
673 default |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
674 (min (abs lines) default)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
675 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
676 (defun view-set-half-page-size-default (lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
677 ;; Get and maybe set half page size. |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
678 (if (not lines) (or view-half-page-size |
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
679 (/ (view-window-size) 2)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
680 (setq view-half-page-size |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
681 (if (zerop (setq lines (prefix-numeric-value lines))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
682 (/ (view-window-size) 2) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
683 (view-page-size-default lines))))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
684 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
685 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
686 ;;; Commands for moving around in the buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
687 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
688 (defun View-goto-percent (&optional percent) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
689 "Move to end (or prefix PERCENT) of buffer in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
690 Display is centered at point. |
18250 | 691 Also set the mark at the position where point was." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
692 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
693 (push-mark) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
694 (goto-char |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
695 (if percent |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
696 (+ (point-min) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
697 (floor (* (- (point-max) (point-min)) 0.01 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
698 (max 0 (min 100 (prefix-numeric-value percent)))))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
699 (point-max))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
700 (view-recenter)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
701 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
702 ;(defun View-goto-line-last (&optional line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
703 ;"Move to last (or prefix LINE) line in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
704 ;Display is centered at LINE. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
705 ;Sets mark at starting position and pushes mark ring." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
706 ; (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
707 ; (push-mark) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
708 ; (if line (goto-line (prefix-numeric-value line)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
709 ; (goto-char (point-max)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
710 ; (beginning-of-line)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
711 ; (view-recenter)) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49439
diff
changeset
|
712 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
713 (defun View-goto-line (&optional line) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
714 "Move to first (or prefix LINE) line in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
715 Display is centered at LINE. |
18250 | 716 Also set the mark at the position where point was." |
44 | 717 (interactive "p") |
718 (push-mark) | |
12856 | 719 (goto-line line) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
720 (view-recenter)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
721 |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
722 (defun View-back-to-mark (&optional ignore) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
723 "Return to last mark set in View mode, else beginning of file. |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
724 Display that line at the center of the window. |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
725 This command pops the mark ring, so that successive |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
726 invocations return to earlier marks." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
727 (interactive) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
728 (goto-char (or (mark t) (point-min))) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
729 (pop-mark) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
730 (view-recenter)) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
731 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
732 (defun view-scroll-lines (lines backward default maxdefault) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
733 ;; This function does the job for all the scrolling commands. |
18250 | 734 ;; Scroll forward LINES lines. If BACKWARD is true scroll backwards. |
735 ;; If LINES is negative scroll in the other direction. If LINES is 0 or nil, | |
736 ;; scroll DEFAULT lines. If MAXDEFAULT is true then scroll no more than a | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
737 ;; window full. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
738 (if (or (null lines) (zerop (setq lines (prefix-numeric-value lines)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
739 (setq lines default)) |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
740 (when (< lines 0) |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
741 (setq backward (not backward)) (setq lines (- lines))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
742 (setq default (view-page-size-default nil)) ; Max scrolled at a time. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
743 (if maxdefault (setq lines (min lines default))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
744 (cond |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
745 (backward (scroll-down lines)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
746 ((view-really-at-end) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
747 (if view-scroll-auto-exit (View-quit) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
748 (ding) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
749 (view-end-message))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
750 (t (while (> lines default) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
751 (scroll-up default) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
752 (setq lines (- lines default)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
753 (if (view-really-at-end) (setq lines 0))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
754 (scroll-up lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
755 (if (view-really-at-end) (view-end-message)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
756 (move-to-window-line -1) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
757 (beginning-of-line)))) |
44 | 758 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
759 (defun view-really-at-end () |
18250 | 760 ;; Return true if buffer end visible. Maybe revert buffer and test. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
761 (and (pos-visible-in-window-p (point-max)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
762 (let ((buf (current-buffer)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
763 (bufname (buffer-name)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
764 (file (buffer-file-name))) |
21678
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
765 (or (not view-try-extend-at-buffer-end) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
766 (null file) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
767 (verify-visited-file-modtime buf) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
768 (not (file-exists-p file)) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
769 (when (buffer-modified-p buf) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
770 (setq file (file-name-nondirectory file)) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
771 (not (yes-or-no-p |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
772 (format |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
773 "File %s changed on disk. Discard your edits%s? " |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
774 file |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
775 (if (string= bufname file) "" |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
776 (concat " in " bufname)))))) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
777 (progn |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
778 (revert-buffer t t t) |
acaff8b34667
(view-really-at-end): Return true when at end and not
Andreas Schwab <schwab@suse.de>
parents:
21187
diff
changeset
|
779 (pos-visible-in-window-p (point-max))))))) |
44 | 780 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
781 (defun view-end-message () |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
782 ;; Tell that we are at end of buffer. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
783 (goto-char (point-max)) |
19841
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
784 (if view-return-to-alist |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
785 (message "End of buffer. Type %s to quit viewing." |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
786 (substitute-command-keys |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
787 (if view-scroll-auto-exit "\\[View-scroll-page-forward]" |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
788 "\\[View-quit]"))) |
d7a4b38557f3
(view-end-message): Don't mention q if it really do anything.
Richard M. Stallman <rms@gnu.org>
parents:
19229
diff
changeset
|
789 (message "End of buffer"))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
790 |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
791 (defun View-scroll-to-buffer-end () |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
792 "Scroll backward or forward so that buffer end is at last line of window." |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
793 (interactive) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
794 (let ((p (if (pos-visible-in-window-p (point-max)) (point)))) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
795 (goto-char (point-max)) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
796 (recenter -1) |
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
797 (and p (goto-char p)))) |
44 | 798 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
799 (defun View-scroll-page-forward (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
800 "Scroll \"page size\" or prefix LINES lines forward in View mode. |
18250 | 801 Exit if end of text is visible and `view-scroll-auto-exit' is non-nil. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
802 \"page size\" is whole window full, or number of lines set by |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
803 \\[View-scroll-page-forward-set-page-size] or |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
804 \\[View-scroll-page-backward-set-page-size]. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
805 If LINES is more than a window-full, only the last window-full is shown." |
44 | 806 (interactive "P") |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
807 (view-scroll-lines lines nil (view-page-size-default view-page-size) nil)) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
808 |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
809 (defun View-scroll-page-backward (&optional lines) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
810 "Scroll \"page size\" or prefix LINES lines backward in View mode. |
18250 | 811 See also `View-scroll-page-forward'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
812 (interactive "P") |
57521
3ac03a07be63
(view-mode-enable): Set view-page-size and view-half-page-size to nil.
Richard M. Stallman <rms@gnu.org>
parents:
55014
diff
changeset
|
813 (view-scroll-lines lines t (view-page-size-default view-page-size) nil)) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49439
diff
changeset
|
814 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
815 (defun View-scroll-page-forward-set-page-size (&optional lines) |
18250 | 816 "Scroll forward LINES lines in View mode, setting the \"page size\". |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
817 This is the number of lines which \\[View-scroll-page-forward] and |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
818 \\[View-scroll-page-backward] scroll by default. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
819 If LINES is omitted or = 0, sets \"page size\" to window height and |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
820 scrolls forward that much, otherwise scrolls forward LINES lines and sets |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
821 \"page size\" to the minimum of window height and the absolute value of LINES. |
18250 | 822 See also `View-scroll-page-forward'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
823 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
824 (view-scroll-lines lines nil |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
825 (setq view-page-size (view-page-size-default lines)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
826 nil)) |
13168 | 827 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
828 (defun View-scroll-page-backward-set-page-size (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
829 "Scroll backward prefix LINES lines in View mode, setting the \"page size\". |
18250 | 830 See also `View-scroll-page-forward-set-page-size'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
831 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
832 (view-scroll-lines lines t |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
833 (setq view-page-size (view-page-size-default lines)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
834 nil)) |
13168 | 835 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
836 (defun View-scroll-line-forward (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
837 "Scroll forward one line (or prefix LINES lines) in View mode. |
18250 | 838 See also `View-scroll-page-forward,' but note that scrolling is limited |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
839 to minimum of LINES and one window-full." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
840 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
841 (view-scroll-lines lines nil 1 t)) |
44 | 842 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
843 (defun View-scroll-line-backward (&optional lines) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
844 "Scroll backward one line (or prefix LINES lines) in View mode. |
18250 | 845 See also `View-scroll-line-forward'." |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
846 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
847 (view-scroll-lines lines t 1 t)) |
13168 | 848 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
849 (defun View-scroll-half-page-forward (&optional lines) |
18250 | 850 "Scroll forward a \"half page\" (or prefix LINES) lines in View mode. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
851 If LINES is not omitted, the \"half page size\" is set to the minimum of |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
852 window height and the absolute value of LINES. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
853 LINES=0 resets \"half page size\" to half window height." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
854 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
855 (view-scroll-lines lines nil (view-set-half-page-size-default lines) t)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
856 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
857 (defun View-scroll-half-page-backward (&optional lines) |
18250 | 858 "Scroll backward a \"half page\" (or prefix LINES) lines in View mode. |
859 See also `View-scroll-half-page-forward'." | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
860 (interactive "P") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
861 (view-scroll-lines lines t (view-set-half-page-size-default lines) t)) |
44 | 862 |
18250 | 863 (defun View-revert-buffer-scroll-page-forward (&optional lines) |
864 "Scroll forward, reverting buffer if needed, in View mode. | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
865 If buffer has not been changed and the corresponding file is newer, first |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
866 revert the buffer, then scroll. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
867 This command is useful if you are viewing a changing file. |
18250 | 868 |
869 The prefix argument LINES says how many lines to scroll. | |
870 If you don't specify a prefix argument, it uses the number of lines set by | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
871 \\[View-scroll-page-forward-set-page-size] or |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
872 \\[View-scroll-page-backward-set-page-size]. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
873 If LINES is more than a window-full, only the last window-full is shown." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
874 (interactive "P") |
23987
a3199b854cf2
(View-revert-buffer-scroll-page-forward): Bind
Andreas Schwab <schwab@suse.de>
parents:
22337
diff
changeset
|
875 (let ((view-scroll-auto-exit nil) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
876 (view-try-extend-at-buffer-end t)) |
66488
448f6238d8ed
(View-revert-buffer-scroll-page-forward): Use
Andreas Schwab <schwab@suse.de>
parents:
64762
diff
changeset
|
877 (view-scroll-lines lines nil (view-page-size-default view-page-size) nil))) |
50786
01b16e9a75fb
(Helper-return-blurb): Add defvar. (Also rearrange defuns.)
Richard M. Stallman <rms@gnu.org>
parents:
50634
diff
changeset
|
878 |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
879 (defun View-search-regexp-forward (n regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
880 "Search forward for first (or prefix Nth) occurrence of REGEXP in View mode. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
881 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
882 Displays line found at center of window. Sets mark at starting position and |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
883 pushes mark ring. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
884 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
885 Characters @ and ! are special at the beginning of REGEXP. They modify |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
886 the search rather than become part of the pattern searched for. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
887 @ means search all the buffer i.e. start search at the beginning of buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
888 ! means search for a line that contains no match for the pattern. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
889 If REGEXP is empty or only consist of these control characters, then |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
890 an earlier remembered REGEXP is used, otherwise REGEXP is remembered |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
891 for use by later search commands. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
892 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
893 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
894 for highlighting the match that is found." |
27544
4e3e1730232c
Some changes in documentation. Removed some trailing
Gerd Moellmann <gerd@gnu.org>
parents:
25219
diff
changeset
|
895 (interactive "p\nsSearch forward (regexp): ") |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
896 (view-search n regexp)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
897 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
898 (defun View-search-regexp-backward (n regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
899 "Search backward for first (or prefix Nth) occurrence of REGEXP in View mode. |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
900 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
901 Displays line found at center of window. Sets mark at starting position and |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
902 pushes mark ring. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
903 |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
904 Characters @ and ! are special at the beginning of REGEXP. They modify |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
905 the search rather than become part of the pattern searched for. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
906 @ means search all the buffer i.e. start search at the end of buffer. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
907 ! means search for a line that contains no match for the pattern. |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
908 If REGEXP is empty or only consist of these control characters, then |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
909 an earlier remembered REGEXP is used, otherwise REGEXP is remembered |
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
910 for use by later search commands. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
911 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
912 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
913 for highlighting the match that is found." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
914 (interactive "p\nsSearch backward (regexp): ") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
915 (view-search (- n) regexp)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
916 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
917 (defun View-search-last-regexp-forward (n) "\ |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
918 Search forward for first (or prefix Nth) instance of last regexp in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
919 Displays line found at center of window. Sets mark at starting position and |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
920 pushes mark ring. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
921 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
922 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
923 for highlighting the match that is found." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
924 (interactive "p") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
925 (view-search n nil)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
926 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
927 (defun View-search-last-regexp-backward (n) "\ |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
928 Search backward for first (or prefix Nth) instance of last regexp in View mode. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
929 Displays line found at center of window. Sets mark at starting position and |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
930 pushes mark ring. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
931 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
932 The variable `view-highlight-face' controls the face that is used |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
933 for highlighting the match that is found." |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
934 (interactive "p") |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
935 (view-search (- n) nil)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
936 |
44 | 937 (defun view-search (times regexp) |
18448
7cf9cdba062d
Changed some documentation.
Richard M. Stallman <rms@gnu.org>
parents:
18335
diff
changeset
|
938 ;; This function does the job for all the View-search- commands. |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
939 ;; Search for the TIMESt match for REGEXP. If TIMES is negative |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
940 ;; search backwards. If REGEXP is nil use `view-last-regexp'. |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
941 ;; Charcters "!" and "@" have a special meaning at the beginning of |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
942 ;; REGEXP and are removed from REGEXP before the search "!" means |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
943 ;; search for lines with no match for REGEXP. "@" means search in |
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
944 ;; the whole buffer, don't start searching from the present point. |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
945 (let (where no end ln) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
946 (cond |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
947 ((and regexp (> (length regexp) 0) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
948 (or (not (memq (string-to-char regexp) '(?! ?@))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
949 (progn |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
950 (if (member (substring regexp 0 2) '("!@" "@!")) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
951 (setq end t no t ln 2) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
952 (setq no (not (setq end (eq ?@ (string-to-char regexp)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
953 ln 1)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
954 (> (length (setq regexp (substring regexp ln))) 0)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
955 (setq view-last-regexp (if no (list regexp) regexp))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
956 ((consp view-last-regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
957 (setq regexp (car view-last-regexp)) |
20072
92d2c2e3b3f3
Some changes in comments and documentation.
Karl Heuer <kwzh@gnu.org>
parents:
19841
diff
changeset
|
958 (unless (setq no (not no)) (setq view-last-regexp regexp))) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
959 (view-last-regexp (setq regexp view-last-regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
960 (if no (setq view-last-regexp (list regexp)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
961 (t (error "No previous View-mode search"))) |
44 | 962 (save-excursion |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
963 (if end (goto-char (if (< times 0) (point-max) (point-min))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
964 (move-to-window-line (if (< times 0) 0 -1))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
965 (if (if no (view-search-no-match-lines times regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
966 (re-search-forward regexp nil t times)) |
44 | 967 (setq where (point)))) |
968 (if where | |
969 (progn | |
970 (push-mark) | |
971 (goto-char where) | |
13122
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
972 (if view-overlay |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
973 (move-overlay view-overlay (match-beginning 0) (match-end 0)) |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
974 (setq view-overlay |
05bae277596e
(View-search-regexp-forward, View-search-regexp-backward):
Richard M. Stallman <rms@gnu.org>
parents:
13078
diff
changeset
|
975 (make-overlay (match-beginning 0) (match-end 0)))) |
13167
c378e215f4d0
(view-highlight-face): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13158
diff
changeset
|
976 (overlay-put view-overlay 'face view-highlight-face) |
44 | 977 (beginning-of-line) |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
978 (view-recenter)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
979 (message "Can't find occurrence %d of %s%s" |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
980 times (if no "no " "") regexp) |
44 | 981 (sit-for 4)))) |
982 | |
18249
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
983 (defun view-search-no-match-lines (times regexp) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
984 ;; Search for the TIMESt occurrence of line with no match for REGEXP. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
985 (let ((back (and (< times 0) (setq times (- times)) -1)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
986 n) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
987 (while (> times 0) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
988 (save-excursion (beginning-of-line (if back (- times) (1+ times))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
989 (setq n (point))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
990 (setq times |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
991 (cond |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
992 ((< (count-lines (point) n) times) -1) ; Not enough lines. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
993 ((or (null (re-search-forward regexp nil t back)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
994 (if back (and (< (match-end 0) n) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
995 (> (count-lines (match-end 0) n) 1)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
996 (and (< n (match-beginning 0)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
997 (> (count-lines n (match-beginning 0)) 1)))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
998 0) ; No match within lines. |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
999 (back (count-lines (max n (match-beginning 0)) (match-end 0))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1000 (t (count-lines (match-beginning 0) (min n (match-end 0)))))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1001 (goto-char n)) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1002 (and (zerop times) (looking-at "^.*$")))) |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1003 |
cb7e72b9a09d
Make view mode more similar to `less'.
Richard M. Stallman <rms@gnu.org>
parents:
15737
diff
changeset
|
1004 |
584 | 1005 (provide 'view) |
1006 | |
52401 | 1007 ;;; arch-tag: 6d0ace36-1d12-4de3-8de3-1fa3231636d7 |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
1008 ;;; view.el ends here |