annotate lisp/emulation/pc-select.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents df8e0cd18128
children 7c4da622f181
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
1 ;;; pc-select.el --- emulate mark, cut, copy and paste from Motif
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
2 ;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
3 ;;; including key bindings.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
64701
34bd8e434dd7 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64085
diff changeset
5 ;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 104969
diff changeset
6 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
109280
cc75fd2ab734 Fix typos in some Keywords comments.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
9 ;; Keywords: convenience emulations
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; Created: 26 Sep 1995
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; This file is part of GNU Emacs.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13
94658
eb7b2376cae5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
14 ;; GNU Emacs is free software: you can redistribute it and/or modify
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; it under the terms of the GNU General Public License as published by
94658
eb7b2376cae5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
16 ;; the Free Software Foundation, either version 3 of the License, or
eb7b2376cae5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
17 ;; (at your option) any later version.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU Emacs is distributed in the hope that it will be useful,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; GNU General Public License for more details.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
94658
eb7b2376cae5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
25 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;;; Commentary:
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
28
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;; This package emulates the mark, copy, cut and paste look-and-feel of motif
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; programs (which is the same as the MAC gui and (sorry for that) MS-Windows).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;; It modifies the keybindings of the cursor keys and the next, prior,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; home and end keys. They will modify mark-active.
96376
c3309dba6542 American English spelling fix.
Glenn Morris <rgm@gnu.org>
parents: 94658
diff changeset
33 ;; You can still get the old behavior of cursor moving with the
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;; control sequences C-f, C-b, etc.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; This package uses transient-mark-mode and
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;; delete-selection-mode.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;;
30792
97c0caec0a32 fixed sds e-mail
Sam Steingold <sds@gnu.org>
parents: 29807
diff changeset
38 ;; In addition to that all key-bindings from the pc-mode are
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;; done here too (as suggested by RMS).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;; As I found out after I finished the first version, s-region.el tries
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;; to do the same.... But my code is a little more complete and using
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;; delete-selection-mode is very important for the look-and-feel.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;; Pete Forman <pete.forman@airgun.wg.waii.com> provided some motif
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 ;; compliant keybindings which I added. I had to modify them a little
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 ;; to add the -mark and -nomark functionality of cursor moving.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 ;; Credits:
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 ;; Many thanks to all who made comments.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ;; Thanks to RMS and Ralf Muschall <prm@rz.uni-jena.de> for criticism.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 ;; Kevin Cutts <cutts@ukraine.corp.mot.com> added the beginning-of-buffer
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 ;; and end-of-buffer functions which I modified a little.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;; David Biesack <sasdjb@unx.sas.com> suggested some more cleanup.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 ;; Thanks to Pete Forman <pete.forman@airgun.wg.waii.com>
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 ;; for additional motif keybindings.
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
56 ;; Thanks to jvromans@squirrel.nl (Johan Vromans) for a bug report
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
57 ;; concerning setting of this-command.
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
58 ;; Dan Nicolaescu <done@ece.arizona.ro> suggested suppressing the
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
59 ;; scroll-up/scroll-down error.
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
60 ;; Eli Barzilay (eli@cs.bgu.ac.il) suggested the sexps functions and
30792
97c0caec0a32 fixed sds e-mail
Sam Steingold <sds@gnu.org>
parents: 29807
diff changeset
61 ;; keybindings.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 ;;
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
63 ;; Ok, some details about the idea of PC Selection mode:
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 ;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 ;; o The standard keys for moving around (right, left, up, down, home, end,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 ;; prior, next, called "move-keys" from now on) will always de-activate
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 ;; the mark.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 ;; o If you press "Shift" together with the "move-keys", the region
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 ;; you pass along is activated
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 ;; o You have the copy, cut and paste functions (as in many other programs)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ;; which will operate on the active region
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 ;; It was not possible to bind them to C-v, C-x and C-c for obvious
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 ;; emacs reasons.
96376
c3309dba6542 American English spelling fix.
Glenn Morris <rgm@gnu.org>
parents: 94658
diff changeset
74 ;; They will be bound according to the "old" behavior to S-delete (cut),
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 ;; S-insert (paste) and C-insert (copy). These keys do the same in many
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 ;; other programs.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
77 ;;
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 37334
diff changeset
79 ;;; Code:
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 37334
diff changeset
80
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
81 ;; Customization:
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
82 (defgroup pc-select nil
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
83 "Emulate pc bindings."
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
84 :prefix "pc-select"
107378
904ccd8f2acb Reorganize Custom groups.
Chong Yidong <cyd@stupidchicken.com>
parents: 106815
diff changeset
85 :group 'emulations)
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
86
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
87 (defcustom pc-select-override-scroll-error t
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
88 "*Non-nil means don't generate error on scrolling past edge of buffer.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
89 This variable applies in PC Selection mode only.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
90 The scroll commands normally generate an error if you try to scroll
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
91 past the top or bottom of the buffer. This is annoying when selecting
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
92 text with these commands. If you set this variable to non-nil, these
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
93 errors are suppressed."
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
94 :type 'boolean
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
95 :group 'pc-select)
107854
6ebc01c309bf Add variable scroll-error-top-bottom.
Juri Linkov <juri@jurta.org>
parents: 107378
diff changeset
96 (define-obsolete-variable-alias 'pc-select-override-scroll-error
6ebc01c309bf Add variable scroll-error-top-bottom.
Juri Linkov <juri@jurta.org>
parents: 107378
diff changeset
97 'scroll-error-top-bottom
6ebc01c309bf Add variable scroll-error-top-bottom.
Juri Linkov <juri@jurta.org>
parents: 107378
diff changeset
98 "24.1")
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
100 (defcustom pc-select-selection-keys-only nil
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
101 "*Non-nil means only bind the basic selection keys when started.
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
102 Other keys that emulate pc-behavior will be untouched.
63266
0a2deeba6710 (pc-select-selection-keys-only, pc-selection-mode): Fix spellings in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 62440
diff changeset
103 This gives mostly Emacs-like behavior with only the selection keys enabled."
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
104 :type 'boolean
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
105 :group 'pc-select)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
106
19289
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
107 (defcustom pc-select-meta-moves-sexps nil
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
108 "*Non-nil means move sexp-wise with Meta key, otherwise move word-wise."
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
109 :type 'boolean
4e824f1fe62d Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18216
diff changeset
110 :group 'pc-select)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
111
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
112 (defcustom pc-selection-mode-hook nil
109712
de86f640dbaa * emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 109280
diff changeset
113 "The hook to run when PC Selection mode is toggled."
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
114 :type 'hook
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
115 :group 'pc-select)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
116
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
117 (defvar pc-select-saved-settings-alist nil
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
118 "The values of the variables before PC Selection mode was toggled on.
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
119 When PC Selection mode is toggled on, it sets quite a few variables
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
120 for its own purposes. This alist holds the original values of the
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
121 variables PC Selection mode had set, so that these variables can be
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
122 restored to their original values when PC Selection mode is toggled off.")
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
123
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
124 (defvar pc-select-map nil
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
125 "The keymap used as the global map when PC Selection mode is on." )
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
126
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
127 (defvar pc-select-saved-global-map nil
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
128 "The global map that was in effect when PC Selection mode was toggled on.")
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
129
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
130 (defvar pc-select-key-bindings-alist nil
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
131 "This alist holds all the key bindings PC Selection mode sets.")
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
132
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
133 (defvar pc-select-default-key-bindings nil
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
134 "These key bindings always get set by PC Selection mode.")
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
135
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
136 (unless pc-select-default-key-bindings
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
137 (let ((lst
86155
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
138 ;; This is to avoid confusion with the delete-selection-mode.
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
139 ;; On simple displays you can't see that a region is active and
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
140 ;; will be deleted on the next keypress IMHO especially for
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
141 ;; copy-region-as-kill this is confusing.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
142 ;; The same goes for exchange-point-and-mark
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
143 '(("\M-w" . copy-region-as-kill-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
144 ("\C-x\C-x" . exchange-point-and-mark-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
145 ([S-right] . forward-char-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
146 ([right] . forward-char-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
147 ([C-S-right] . forward-word-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
148 ([C-right] . forward-word-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
149 ([S-left] . backward-char-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
150 ([left] . backward-char-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
151 ([C-S-left] . backward-word-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
152 ([C-left] . backward-word-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
153 ([S-down] . next-line-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
154 ([down] . next-line-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
155
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
156 ([S-end] . end-of-line-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
157 ([end] . end-of-line-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
158 ([S-C-end] . end-of-buffer-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
159 ([C-end] . end-of-buffer-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
160 ([S-M-end] . end-of-buffer-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
161 ([M-end] . end-of-buffer-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
162
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
163 ([S-next] . scroll-up-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
164 ([next] . scroll-up-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
165
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
166 ([S-up] . previous-line-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
167 ([up] . previous-line-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
168
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
169 ([S-home] . beginning-of-line-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
170 ([home] . beginning-of-line-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
171 ([S-C-home] . beginning-of-buffer-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
172 ([C-home] . beginning-of-buffer-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
173 ([S-M-home] . beginning-of-buffer-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
174 ([M-home] . beginning-of-buffer-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
175
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
176 ([M-S-down] . forward-line-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
177 ([M-down] . forward-line-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
178 ([M-S-up] . backward-line-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
179 ([M-up] . backward-line-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
180
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
181 ([S-prior] . scroll-down-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
182 ([prior] . scroll-down-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
183
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
184 ;; Next four lines are from Pete Forman.
86155
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
185 ([C-down] . forward-paragraph-nomark) ; KNextPara cDn
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
186 ([C-up] . backward-paragraph-nomark) ; KPrevPara cUp
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
187 ([S-C-down] . forward-paragraph-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
188 ([S-C-up] . backward-paragraph-mark))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43985
diff changeset
189
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
190 (setq pc-select-default-key-bindings lst)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
191
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
192 (defvar pc-select-extra-key-bindings nil
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
193 "Key bindings to set only if `pc-select-selection-keys-only' is nil.")
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
194
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
195 ;; The following keybindings are for standard ISO keyboards
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
196 ;; as they are used with IBM compatible PCs, IBM RS/6000,
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
197 ;; MACs, many X-Stations and probably more
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
198 (unless pc-select-extra-key-bindings
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
199 (let ((lst
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
200 '(([S-insert] . yank)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
201 ([C-insert] . copy-region-as-kill)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
202 ([S-delete] . kill-region)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
203
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
204 ;; The following bindings are useful on Sun Type 3 keyboards
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
205 ;; They implement the Get-Delete-Put (copy-cut-paste)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
206 ;; functions from sunview on the L6, L8 and L10 keys
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
207 ;; Sam Steingold <sds@gnu.org> says that f16 is copy and f18 is paste.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
208 ([f16] . copy-region-as-kill)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
209 ([f18] . yank)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
210 ([f20] . kill-region)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
211
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
212 ;; The following bindings are from Pete Forman.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
213 ([f6] . other-window) ; KNextPane F6
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
214 ([C-delete] . kill-line) ; KEraseEndLine cDel
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
215 ("\M-\d" . undo) ; KUndo aBS
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
216
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
217 ;; The following binding is taken from pc-mode.el
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
218 ;; as suggested by RMS.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
219 ;; I only used the one that is not covered above.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
220 ([C-M-delete] . kill-sexp)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
221 ;; Next line proposed by Eli Barzilay
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
222 ([C-escape] . electric-buffer-list))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43985
diff changeset
223
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
224 (setq pc-select-extra-key-bindings lst)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
225
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
226 (defvar pc-select-meta-moves-sexps-key-bindings
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
227 '((([M-S-right] . forward-sexp-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
228 ([M-right] . forward-sexp-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
229 ([M-S-left] . backward-sexp-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
230 ([M-left] . backward-sexp-nomark))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
231 (([M-S-right] . forward-word-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
232 ([M-right] . forward-word-nomark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
233 ([M-S-left] . backward-word-mark)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
234 ([M-left] . backward-word-nomark)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
235 "The list of key bindings controlled by `pc-select-meta-moves-sexp'.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
236 The bindings in the car of this list get installed if
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
237 `pc-select-meta-moves-sexp' is t, the bindings in the cadr of this
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
238 list get installed otherwise.")
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
239
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
240 ;; This is for tty. We don't turn on normal-erase-is-backspace,
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
241 ;; but bind keys as pc-selection-mode did before
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
242 ;; normal-erase-is-backspace was invented, to keep us back
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
243 ;; compatible.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
244 (defvar pc-select-tty-key-bindings
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
245 '(([delete] . delete-char) ; KDelete Del
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
246 ([C-backspace] . backward-kill-word))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
247 "The list of key bindings controlled by `pc-select-selection-keys-only'.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
248 These key bindings get installed when running in a tty, but only if
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
249 `pc-select-selection-keys-only' is nil.")
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
250
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
251 (defvar pc-select-old-M-delete-binding nil
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
252 "Holds the old mapping of [M-delete] in the `function-key-map'.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
253 This variable holds the value associated with [M-delete] in the
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
254 `function-key-map' before PC Selection mode had changed that
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
255 association.")
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
256
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
257 ;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258 ;; misc
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 ;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 (provide 'pc-select)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 (defun copy-region-as-kill-nomark (beg end)
109712
de86f640dbaa * emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 109280
diff changeset
264 "Save the region as if killed, but don't kill it; deactivate mark.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 If `interprogram-cut-function' is non-nil, also save the text for a window
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
266 system cut and paste.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
267
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
268 Deactivating mark is to avoid confusion with `delete-selection-mode'
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
269 and `transient-mark-mode'."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
270 (interactive "r")
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
271 (copy-region-as-kill beg end)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
272 (setq mark-active nil)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
273 (message "Region saved"))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
274
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
275 (defun exchange-point-and-mark-nomark ()
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
276 "Like `exchange-point-and-mark' but without activating the mark."
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
277 (interactive)
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
278 (exchange-point-and-mark)
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
279 (setq mark-active nil))
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
280
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281 ;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
282 ;; non-interactive
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 ;;;;
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
284 (defun pc-select-ensure-mark ()
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 ;; make sure mark is active
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286 ;; test if it is active, if it isn't, set it and activate it
86155
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
287 (or mark-active (set-mark-command nil))
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
288 ;; Remember who activated the mark.
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
289 (setq mark-active 'pc-select))
86155
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
290
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
291 (defun pc-select-maybe-deactivate-mark ()
86155
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
292 ;; maybe switch off mark (only if *we* switched it on)
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
293 (when (eq mark-active 'pc-select)
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
294 (deactivate-mark)))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297 ;;;;; forward and mark
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 (defun forward-char-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 "Ensure mark is active; move point right ARG characters (left if ARG negative).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 On reaching end of buffer, stop and signal error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
304 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 (forward-char arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
306
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307 (defun forward-word-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308 "Ensure mark is active; move point right ARG words (backward if ARG is negative).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
309 Normally returns t.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 If an edge of the buffer is reached, point is left there
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 and nil is returned."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
313 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 (forward-word arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
316 (defun forward-line-mark (&optional arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
317 "Ensure mark is active; move cursor vertically down ARG lines."
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
318 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
319 (pc-select-ensure-mark)
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
320 (forward-line arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
321 (setq this-command 'forward-line)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
322 )
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
323
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
324 (defun forward-sexp-mark (&optional arg)
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
325 "Ensure mark is active; move forward across one balanced expression (sexp).
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
326 With argument, do it that many times. Negative arg -N means
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
327 move backward across N balanced expressions."
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
328 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
329 (pc-select-ensure-mark)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
330 (forward-sexp arg))
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
331
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 (defun forward-paragraph-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 "Ensure mark is active; move forward to end of paragraph.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
334 With arg N, do it N times; negative arg -N means move backward N paragraphs.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
335
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336 A line which `paragraph-start' matches either separates paragraphs
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
337 \(if `paragraph-separate' matches it also) or is the first line of a paragraph.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338 A paragraph end is the beginning of a line which is not part of the paragraph
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 to which the end of the previous line belongs, or the end of the buffer."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
341 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 (forward-paragraph arg))
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
343
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 (defun next-line-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 "Ensure mark is active; move cursor vertically down ARG lines.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 If there is no character in the target line exactly under the current column,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347 the cursor is positioned after the character in that line which spans this
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 column, or at the end of the line if it is not long enough.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
349 If there is no line in the buffer after this one, behavior depends on the
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 value of `next-line-add-newlines'. If non-nil, it inserts a newline character
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351 to create a line, and moves the cursor to that line. Otherwise it moves the
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
352 cursor to the end of the buffer \(if already at the end of the buffer, an error
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
353 is signaled).
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
354
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
355 The command \\[set-goal-column] can be used to create
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 a semipermanent goal column to which this command always moves.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357 Then it does not try to move vertically. This goal column is stored
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
358 in `goal-column', which is nil when there is none."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
360 (pc-select-ensure-mark)
85686
a55a536ce0db * emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78218
diff changeset
361 (with-no-warnings (next-line arg))
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
362 (setq this-command 'next-line))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364 (defun end-of-line-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 "Ensure mark is active; move point to end of current line.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
366 With argument ARG not nil or 1, move forward ARG - 1 lines first.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367 If scan reaches end of buffer, stop there without error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
369 (pc-select-ensure-mark)
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
370 (end-of-line arg)
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
371 (setq this-command 'end-of-line))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
373 (defun backward-line-mark (&optional arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
374 "Ensure mark is active; move cursor vertically up ARG lines."
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
375 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
376 (pc-select-ensure-mark)
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
377 (if (null arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
378 (setq arg 1))
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
379 (forward-line (- arg))
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
380 (setq this-command 'forward-line)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
381 )
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
382
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 (defun scroll-down-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 "Ensure mark is active; scroll down ARG lines; or near full screen if no ARG.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385 A near full screen is `next-screen-context-lines' less than a full screen.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 Negative ARG means scroll upward.
104969
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
387 When calling from a program, supply a number as argument or nil.
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
388 Attempting to scroll past the edge of buffer does not raise an
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
389 error, unless `pc-select-override-scroll-error' is nil."
30792
97c0caec0a32 fixed sds e-mail
Sam Steingold <sds@gnu.org>
parents: 29807
diff changeset
390 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
391 (pc-select-ensure-mark)
15931
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
392 (cond (pc-select-override-scroll-error
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
393 (condition-case nil (scroll-down arg)
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
394 (beginning-of-buffer (goto-char (point-min)))))
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
395 (t (scroll-down arg))))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 (defun end-of-buffer-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 "Ensure mark is active; move point to the end of the buffer.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
399 With arg N, put point N/10 of the way from the end.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
400
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 If the buffer is narrowed, this command uses the beginning and size
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
402 of the accessible part of the buffer.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
403
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 Don't use this command in Lisp programs!
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 \(goto-char \(point-max)) is faster and avoids clobbering the mark."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
407 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 (let ((size (- (point-max) (point-min))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 (goto-char (if arg
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 (- (point-max)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 (if (> size 10000)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412 ;; Avoid overflow for large buffer sizes!
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 (* (prefix-numeric-value arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 (/ size 10))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 (/ (* size (prefix-numeric-value arg)) 10)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 (point-max))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 ;; If we went to a place in the middle of the buffer,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 ;; adjust it to the beginning of a line.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 (if arg (forward-line 1)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420 ;; If the end of the buffer is not already on the screen,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 ;; then scroll specially to put it near, but not at, the bottom.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422 (if (let ((old-point (point)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423 (save-excursion
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424 (goto-char (window-start))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
425 (vertical-motion (window-height))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
426 (< (point) old-point)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 (progn
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 (overlay-recenter (point))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429 (recenter -3)))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431 ;;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432 ;;;;; no mark
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433 ;;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
434
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435 (defun forward-char-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 "Deactivate mark; move point right ARG characters \(left if ARG negative).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 On reaching end of buffer, stop and signal error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
438 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
439 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440 (forward-char arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
441
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 (defun forward-word-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
443 "Deactivate mark; move point right ARG words \(backward if ARG is negative).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
444 Normally returns t.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 If an edge of the buffer is reached, point is left there
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 and nil is returned."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
448 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449 (forward-word arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
451 (defun forward-line-nomark (&optional arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
452 "Deactivate mark; move cursor vertically down ARG lines."
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
453 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
454 (pc-select-maybe-deactivate-mark)
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
455 (forward-line arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
456 (setq this-command 'forward-line)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
457 )
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
458
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
459 (defun forward-sexp-nomark (&optional arg)
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
460 "Deactivate mark; move forward across one balanced expression (sexp).
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
461 With argument, do it that many times. Negative arg -N means
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
462 move backward across N balanced expressions."
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
463 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
464 (pc-select-maybe-deactivate-mark)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
465 (forward-sexp arg))
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
466
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 (defun forward-paragraph-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 "Deactivate mark; move forward to end of paragraph.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
469 With arg N, do it N times; negative arg -N means move backward N paragraphs.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
470
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 A line which `paragraph-start' matches either separates paragraphs
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
472 \(if `paragraph-separate' matches it also) or is the first line of a paragraph.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 A paragraph end is the beginning of a line which is not part of the paragraph
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
474 to which the end of the previous line belongs, or the end of the buffer."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
476 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
477 (forward-paragraph arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
478
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
479 (defun next-line-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
480 "Deactivate mark; move cursor vertically down ARG lines.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
481 If there is no character in the target line exactly under the current column,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482 the cursor is positioned after the character in that line which spans this
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 column, or at the end of the line if it is not long enough.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
484 If there is no line in the buffer after this one, behavior depends on the
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
485 value of `next-line-add-newlines'. If non-nil, it inserts a newline character
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
486 to create a line, and moves the cursor to that line. Otherwise it moves the
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
487 cursor to the end of the buffer (if already at the end of the buffer, an error
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
488 is signaled).
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
489
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
490 The command \\[set-goal-column] can be used to create
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
491 a semipermanent goal column to which this command always moves.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
492 Then it does not try to move vertically. This goal column is stored
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
493 in `goal-column', which is nil when there is none."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
494 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
495 (pc-select-maybe-deactivate-mark)
85686
a55a536ce0db * emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78218
diff changeset
496 (with-no-warnings (next-line arg))
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
497 (setq this-command 'next-line))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
498
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
499 (defun end-of-line-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
500 "Deactivate mark; move point to end of current line.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501 With argument ARG not nil or 1, move forward ARG - 1 lines first.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
502 If scan reaches end of buffer, stop there without error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
504 (pc-select-maybe-deactivate-mark)
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
505 (end-of-line arg)
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
506 (setq this-command 'end-of-line))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
507
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
508 (defun backward-line-nomark (&optional arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
509 "Deactivate mark; move cursor vertically up ARG lines."
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
510 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
511 (pc-select-maybe-deactivate-mark)
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
512 (if (null arg)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
513 (setq arg 1))
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
514 (forward-line (- arg))
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
515 (setq this-command 'forward-line)
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
516 )
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
517
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
518 (defun scroll-down-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
519 "Deactivate mark; scroll down ARG lines; or near full screen if no ARG.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
520 A near full screen is `next-screen-context-lines' less than a full screen.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
521 Negative ARG means scroll upward.
104969
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
522 When calling from a program, supply a number as argument or nil.
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
523 Attempting to scroll past the edge of buffer does not raise an
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
524 error, unless `pc-select-override-scroll-error' is nil."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
525 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
526 (pc-select-maybe-deactivate-mark)
15931
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
527 (cond (pc-select-override-scroll-error
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
528 (condition-case nil (scroll-down arg)
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
529 (beginning-of-buffer (goto-char (point-min)))))
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
530 (t (scroll-down arg))))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
531
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
532 (defun end-of-buffer-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
533 "Deactivate mark; move point to the end of the buffer.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
534 With arg N, put point N/10 of the way from the end.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
535
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
536 If the buffer is narrowed, this command uses the beginning and size
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
537 of the accessible part of the buffer.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
538
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
539 Don't use this command in Lisp programs!
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
540 \(goto-char (point-max)) is faster and avoids clobbering the mark."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
541 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
542 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
543 (let ((size (- (point-max) (point-min))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
544 (goto-char (if arg
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
545 (- (point-max)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
546 (if (> size 10000)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
547 ;; Avoid overflow for large buffer sizes!
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
548 (* (prefix-numeric-value arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
549 (/ size 10))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
550 (/ (* size (prefix-numeric-value arg)) 10)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
551 (point-max))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
552 ;; If we went to a place in the middle of the buffer,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
553 ;; adjust it to the beginning of a line.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
554 (if arg (forward-line 1)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
555 ;; If the end of the buffer is not already on the screen,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
556 ;; then scroll specially to put it near, but not at, the bottom.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
557 (if (let ((old-point (point)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
558 (save-excursion
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
559 (goto-char (window-start))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
560 (vertical-motion (window-height))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
561 (< (point) old-point)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
562 (progn
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
563 (overlay-recenter (point))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
564 (recenter -3)))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
565
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
567 ;;;;;;;;;;;;;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
568 ;;;;;; backwards and mark
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
569 ;;;;;;;;;;;;;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
570
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
571 (defun backward-char-mark (&optional arg)
109712
de86f640dbaa * emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 109280
diff changeset
572 "Ensure mark is active; move point left ARG characters (right if ARG negative).
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
573 On attempt to pass beginning or end of buffer, stop and signal error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
574 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
575 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
576 (backward-char arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
577
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578 (defun backward-word-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 "Ensure mark is active; move backward until encountering the end of a word.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
580 With argument, do this that many times."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
581 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
582 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
583 (backward-word arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
584
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
585 (defun backward-sexp-mark (&optional arg)
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
586 "Ensure mark is active; move backward across one balanced expression (sexp).
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
587 With argument, do it that many times. Negative arg -N means
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
588 move forward across N balanced expressions."
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
589 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
590 (pc-select-ensure-mark)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
591 (backward-sexp arg))
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
592
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
593 (defun backward-paragraph-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
594 "Ensure mark is active; move backward to start of paragraph.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
595 With arg N, do it N times; negative arg -N means move forward N paragraphs.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
596
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
597 A paragraph start is the beginning of a line which is a
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
598 `first-line-of-paragraph' or which is ordinary text and follows a
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
599 paragraph-separating line; except: if the first real line of a
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
600 paragraph is preceded by a blank line, the paragraph starts at that
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
601 blank line.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
602
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
603 See `forward-paragraph' for more information."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
604 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
605 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
606 (backward-paragraph arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
607
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
608 (defun previous-line-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 "Ensure mark is active; move cursor vertically up ARG lines.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
610 If there is no character in the target line exactly over the current column,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
611 the cursor is positioned after the character in that line which spans this
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
612 column, or at the end of the line if it is not long enough.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
613
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
614 The command \\[set-goal-column] can be used to create
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
615 a semipermanent goal column to which this command always moves.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
616 Then it does not try to move vertically.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
617
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
618 If you are thinking of using this in a Lisp program, consider using
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
619 `forward-line' with a negative argument instead. It is usually easier
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
620 to use and more reliable (no dependence on goal column, etc.)."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
621 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
622 (pc-select-ensure-mark)
85686
a55a536ce0db * emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78218
diff changeset
623 (with-no-warnings (previous-line arg))
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
624 (setq this-command 'previous-line))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
625
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
626 (defun beginning-of-line-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
627 "Ensure mark is active; move point to beginning of current line.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
628 With argument ARG not nil or 1, move forward ARG - 1 lines first.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629 If scan reaches end of buffer, stop there without error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
630 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
631 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632 (beginning-of-line arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
633
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
634
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
635 (defun scroll-up-mark (&optional arg)
109712
de86f640dbaa * emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 109280
diff changeset
636 "Ensure mark is active; scroll upward ARG lines; or near full screen if no ARG.
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
637 A near full screen is `next-screen-context-lines' less than a full screen.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
638 Negative ARG means scroll downward.
104969
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
639 When calling from a program, supply a number as argument or nil.
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
640 Attempting to scroll past the edge of buffer does not raise an
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
641 error, unless `pc-select-override-scroll-error' is nil."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
642 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
643 (pc-select-ensure-mark)
15931
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
644 (cond (pc-select-override-scroll-error
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
645 (condition-case nil (scroll-up arg)
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
646 (end-of-buffer (goto-char (point-max)))))
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
647 (t (scroll-up arg))))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 (defun beginning-of-buffer-mark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650 "Ensure mark is active; move point to the beginning of the buffer.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
651 With arg N, put point N/10 of the way from the beginning.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
652
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
653 If the buffer is narrowed, this command uses the beginning and size
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
654 of the accessible part of the buffer.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
655
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
656 Don't use this command in Lisp programs!
109712
de86f640dbaa * emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 109280
diff changeset
657 \(goto-char (point-min)) is faster and avoids clobbering the mark."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
658 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
659 (pc-select-ensure-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
660 (let ((size (- (point-max) (point-min))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
661 (goto-char (if arg
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
662 (+ (point-min)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
663 (if (> size 10000)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
664 ;; Avoid overflow for large buffer sizes!
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
665 (* (prefix-numeric-value arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 (/ size 10))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668 (point-min))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 (if arg (forward-line 1)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
671 ;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
672 ;;; no mark
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 ;;;;;;;;
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 (defun backward-char-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676 "Deactivate mark; move point left ARG characters (right if ARG negative).
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 On attempt to pass beginning or end of buffer, stop and signal error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
679 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 (backward-char arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
681
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
682 (defun backward-word-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 "Deactivate mark; move backward until encountering the end of a word.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684 With argument, do this that many times."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
686 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
687 (backward-word arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
688
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
689 (defun backward-sexp-nomark (&optional arg)
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
690 "Deactivate mark; move backward across one balanced expression (sexp).
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
691 With argument, do it that many times. Negative arg -N means
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
692 move forward across N balanced expressions."
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
693 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
694 (pc-select-maybe-deactivate-mark)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
695 (backward-sexp arg))
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
696
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
697 (defun backward-paragraph-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
698 "Deactivate mark; move backward to start of paragraph.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
699 With arg N, do it N times; negative arg -N means move forward N paragraphs.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
700
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 A paragraph start is the beginning of a line which is a
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
702 `first-line-of-paragraph' or which is ordinary text and follows a
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
703 paragraph-separating line; except: if the first real line of a
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
704 paragraph is preceded by a blank line, the paragraph starts at that
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
705 blank line.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
706
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
707 See `forward-paragraph' for more information."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
708 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
709 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
710 (backward-paragraph arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
711
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
712 (defun previous-line-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
713 "Deactivate mark; move cursor vertically up ARG lines.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
714 If there is no character in the target line exactly over the current column,
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
715 the cursor is positioned after the character in that line which spans this
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
716 column, or at the end of the line if it is not long enough.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
717
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
718 The command \\[set-goal-column] can be used to create
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
719 a semipermanent goal column to which this command always moves.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
720 Then it does not try to move vertically."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
721 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
722 (pc-select-maybe-deactivate-mark)
85686
a55a536ce0db * emulation/pc-select.el (next-line-mark, next-line-nomark)
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78218
diff changeset
723 (with-no-warnings (previous-line arg))
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
724 (setq this-command 'previous-line))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
725
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 (defun beginning-of-line-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727 "Deactivate mark; move point to beginning of current line.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728 With argument ARG not nil or 1, move forward ARG - 1 lines first.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
729 If scan reaches end of buffer, stop there without error."
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 (interactive "p")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
731 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732 (beginning-of-line arg))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734 (defun scroll-up-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
735 "Deactivate mark; scroll upward ARG lines; or near full screen if no ARG.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 A near full screen is `next-screen-context-lines' less than a full screen.
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
737 Negative ARG means scroll downward.
104969
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
738 When calling from a program, supply a number as argument or nil.
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
739 Attempting to scroll past the edge of buffer does not raise an
1f376790249c * emulation/pc-select.el (scroll-down-mark, scroll-down-nomark)
Chong Yidong <cyd@stupidchicken.com>
parents: 100908
diff changeset
740 error, unless `pc-select-override-scroll-error' is nil."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
742 (pc-select-maybe-deactivate-mark)
15931
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
743 (cond (pc-select-override-scroll-error
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
744 (condition-case nil (scroll-up arg)
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
745 (end-of-buffer (goto-char (point-max)))))
c729af982039 (ensure-mark): Minor rewrite.
Richard M. Stallman <rms@gnu.org>
parents: 15907
diff changeset
746 (t (scroll-up arg))))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
747
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
748 (defun beginning-of-buffer-nomark (&optional arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
749 "Deactivate mark; move point to the beginning of the buffer.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
750 With arg N, put point N/10 of the way from the beginning.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
751
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752 If the buffer is narrowed, this command uses the beginning and size
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
753 of the accessible part of the buffer.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
754
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 Don't use this command in Lisp programs!
14382
d74d8edde304 Add some keybindings.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
756 \(goto-char (point-min)) is faster and avoids clobbering the mark."
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 (interactive "P")
86157
a54bf760b43d (pc-select-shifted-mark): Remove.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 86155
diff changeset
758 (pc-select-maybe-deactivate-mark)
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 (let ((size (- (point-max) (point-min))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760 (goto-char (if arg
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761 (+ (point-min)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 (if (> size 10000)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
763 ;; Avoid overflow for large buffer sizes!
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
764 (* (prefix-numeric-value arg)
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
765 (/ size 10))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
766 (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
767 (point-min))))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
768 (if arg (forward-line 1)))
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
769
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
770
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
771 (defun pc-select-define-keys (alist keymap)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
772 "Make KEYMAP have the key bindings specified in ALIST."
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
773 (let ((lst alist))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
774 (while lst
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
775 (define-key keymap (caar lst) (cdar lst))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
776 (setq lst (cdr lst)))))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
777
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
778 (defun pc-select-restore-keys (alist keymap saved-map)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
779 "Use ALIST to restore key bindings from SAVED-MAP into KEYMAP.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
780 Go through all the key bindings in ALIST, and, for each key
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
781 binding, if KEYMAP and ALIST still agree on the key binding,
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
782 restore the previous value of that key binding from SAVED-MAP."
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
783 (let ((lst alist))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
784 (while lst
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
785 (when (equal (lookup-key keymap (caar lst)) (cdar lst))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
786 (define-key keymap (caar lst) (lookup-key saved-map (caar lst))))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
787 (setq lst (cdr lst)))))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
788
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
789 (defmacro pc-select-add-to-alist (alist var val)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
790 "Ensure that ALIST contains the cons cell (VAR . VAL).
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
791 If a cons cell whose car is VAR is already on the ALIST, update the
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43985
diff changeset
792 cdr of that cell with VAL. Otherwise, make a new cons cell
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
793 \(VAR . VAL), and prepend it onto ALIST."
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
794 (let ((elt (make-symbol "elt")))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
795 `(let ((,elt (assq ',var ,alist)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
796 (if ,elt
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
797 (setcdr ,elt ,val)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
798 (setq ,alist (cons (cons ',var ,val) ,alist))))))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
799
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
800 (defmacro pc-select-save-and-set-var (var newval)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
801 "Set VAR to NEWVAL; save the old value.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
802 The old value is saved on the `pc-select-saved-settings-alist'."
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
803 `(when (boundp ',var)
43025
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
804 (pc-select-add-to-alist pc-select-saved-settings-alist ,var ,var)
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
805 (setq ,var ,newval)))
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
806
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
807 (defmacro pc-select-save-and-set-mode (mode &optional arg mode-var)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
808 "Call the function MODE; save the old value of the variable MODE.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
809 MODE is presumed to be a function which turns on a minor mode. First,
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
810 save the value of the variable MODE on `pc-select-saved-settings-alist'.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
811 Then, if ARG is specified, call MODE with ARG, otherwise call it with
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
812 nil as an argument. If MODE-VAR is specified, save the value of the
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
813 variable MODE-VAR (instead of the value of the variable MODE) on
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
814 `pc-select-saved-settings-alist'."
43025
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
815 (unless mode-var (setq mode-var mode))
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
816 `(when (fboundp ',mode)
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
817 (pc-select-add-to-alist pc-select-saved-settings-alist
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
818 ,mode-var ,mode-var)
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
819 (,mode ,arg)))
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
820
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
821 (defmacro pc-select-restore-var (var)
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43985
diff changeset
822 "Restore the previous value of the variable VAR.
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
823 Look up VAR's previous value in `pc-select-saved-settings-alist', and,
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
824 if the value is found, set VAR to that value."
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
825 (let ((elt (make-symbol "elt")))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
826 `(let ((,elt (assq ',var pc-select-saved-settings-alist)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
827 (unless (null ,elt)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
828 (setq ,var (cdr ,elt))))))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
829
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
830 (defmacro pc-select-restore-mode (mode)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
831 "Restore the previous state (either on or off) of the minor mode MODE.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
832 Look up the value of the variable MODE on `pc-select-saved-settings-alist'.
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
833 If the value is non-nil, call the function MODE with an argument of
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
834 1, otherwise call it with an argument of -1."
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
835 (let ((elt (make-symbol "elt")))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
836 `(when (fboundp ',mode)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
837 (let ((,elt (assq ',mode pc-select-saved-settings-alist)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
838 (unless (null ,elt)
43025
32f6fb5c961f (pc-select-save-and-set-mode): Properly use MODE-VAR.
Richard M. Stallman <rms@gnu.org>
parents: 42980
diff changeset
839 (,mode (if (cdr ,elt) 1 -1)))))))
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
840
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
841
13234
e3b1df16f4b4 (pc-selection-mode): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents: 13233
diff changeset
842 ;;;###autoload
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
843 (define-minor-mode pc-selection-mode
109712
de86f640dbaa * emulation/pc-select.el: Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 109280
diff changeset
844 "Change mark behavior to emulate Motif, Mac or MS-Windows cut and paste style.
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
845
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
846 This mode enables Delete Selection mode and Transient Mark mode.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
847
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
848 The arrow keys (and others) are bound to new functions
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
849 which modify the status of the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
850
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
851 The ordinary arrow keys disable the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
852 The shift-arrow keys move, leaving the mark behind.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
853
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
854 C-LEFT and C-RIGHT move back or forward one word, disabling the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
855 S-C-LEFT and S-C-RIGHT move back or forward one word, leaving the mark behind.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
856
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
857 M-LEFT and M-RIGHT move back or forward one word or sexp, disabling the mark.
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
858 S-M-LEFT and S-M-RIGHT move back or forward one word or sexp, leaving the mark
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
859 behind. To control whether these keys move word-wise or sexp-wise set the
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
860 variable `pc-select-meta-moves-sexps' after loading pc-select.el but before
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
861 turning PC Selection mode on.
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
862
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
863 C-DOWN and C-UP move back or forward a paragraph, disabling the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
864 S-C-DOWN and S-C-UP move back or forward a paragraph, leaving the mark behind.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
865
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
866 HOME moves to beginning of line, disabling the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
867 S-HOME moves to beginning of line, leaving the mark behind.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
868 With Ctrl or Meta, these keys move to beginning of buffer instead.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
869
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
870 END moves to end of line, disabling the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
871 S-END moves to end of line, leaving the mark behind.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
872 With Ctrl or Meta, these keys move to end of buffer instead.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
873
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
874 PRIOR or PAGE-UP scrolls and disables the mark.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
875 S-PRIOR or S-PAGE-UP scrolls and leaves the mark behind.
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
876
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
877 S-DELETE kills the region (`kill-region').
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
878 S-INSERT yanks text from the kill ring (`yank').
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
879 C-INSERT copies the region into the kill ring (`copy-region-as-kill').
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
880
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
881 In addition, certain other PC bindings are imitated (to avoid this, set
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
882 the variable `pc-select-selection-keys-only' to t after loading pc-select.el
56083
d62a2b6e582e Doc fixes: say "PC Selection mode", not "`pc-selection-mode'".
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
883 but before calling PC Selection mode):
15907
c25492075289 Replace \n in doc strings.
Richard M. Stallman <rms@gnu.org>
parents: 14734
diff changeset
884
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
885 F6 other-window
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
886 DELETE delete-char
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
887 C-DELETE kill-line
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
888 M-DELETE kill-word
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
889 C-M-DELETE kill-sexp
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
890 C-BACKSPACE backward-kill-word
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
891 M-BACKSPACE undo"
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
892 ;; FIXME: bring pc-bindings-mode here ?
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
893 nil nil nil
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
894
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
895 :group 'pc-select
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
896 :global t
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
897
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
898 (if pc-selection-mode
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
899 (if (null pc-select-key-bindings-alist)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
900 (progn
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
901 (setq pc-select-saved-global-map (copy-keymap (current-global-map)))
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
902 (setq pc-select-key-bindings-alist
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
903 (append pc-select-default-key-bindings
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
904 (if pc-select-selection-keys-only
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
905 nil
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
906 pc-select-extra-key-bindings)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
907 (if pc-select-meta-moves-sexps
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
908 (car pc-select-meta-moves-sexps-key-bindings)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
909 (cadr pc-select-meta-moves-sexps-key-bindings))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
910 (if (or pc-select-selection-keys-only
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
911 (eq window-system 'x)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
912 (memq system-name '(ms-dos windows-nt)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
913 nil
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
914 pc-select-tty-key-bindings)))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
915
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
916 (pc-select-define-keys pc-select-key-bindings-alist
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
917 (current-global-map))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
918
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
919 (unless (or pc-select-selection-keys-only
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
920 (eq window-system 'x)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
921 (memq system-name '(ms-dos windows-nt)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
922 ;; it is not clear that we need the following line
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
923 ;; I hope it doesn't do too much harm to leave it in, though...
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
924 (setq pc-select-old-M-delete-binding
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
925 (lookup-key function-key-map [M-delete]))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
926 (define-key function-key-map [M-delete] [?\M-d]))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
927
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
928 (when (and (not pc-select-selection-keys-only)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
929 (or (eq window-system 'x)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
930 (memq system-name '(ms-dos windows-nt)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
931 (fboundp 'normal-erase-is-backspace-mode))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
932 (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
933 normal-erase-is-backspace))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
934 ;; the original author also had this above:
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
935 ;; (setq-default normal-erase-is-backspace t)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
936 ;; However, the documentation for the variable says that
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
937 ;; "setting it with setq has no effect", so I'm removing it.
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43985
diff changeset
938
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
939 (pc-select-save-and-set-var highlight-nonselected-windows nil)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
940 (pc-select-save-and-set-var transient-mark-mode t)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
941 (pc-select-save-and-set-var mark-even-if-inactive t)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
942 (pc-select-save-and-set-mode delete-selection-mode 1))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
943 ;;else
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
944 ;; If the user turned on pc-selection-mode a second time
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
945 ;; do not clobber the values of the variables that were
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
946 ;; saved from before pc-selection mode was activated --
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
947 ;; just make sure the values are the way we like them.
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
948 (pc-select-define-keys pc-select-key-bindings-alist
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
949 (current-global-map))
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
950 (unless (or pc-select-selection-keys-only
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
951 (eq window-system 'x)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
952 (memq system-name '(ms-dos windows-nt)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
953 ;; it is not clear that we need the following line
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
954 ;; I hope it doesn't do too much harm to leave it in, though...
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
955 (define-key function-key-map [M-delete] [?\M-d]))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
956 (when (and (not pc-select-selection-keys-only)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
957 (or (eq window-system 'x)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
958 (memq system-name '(ms-dos windows-nt)))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
959 (fboundp 'normal-erase-is-backspace-mode))
41299
77b08a460f84 Doc string fixes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 38436
diff changeset
960 (normal-erase-is-backspace-mode 1))
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
961 (setq highlight-nonselected-windows nil)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
962 (setq transient-mark-mode t)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
963 (setq mark-even-if-inactive t)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
964 (delete-selection-mode 1))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
965 ;;else
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
966 (when pc-select-key-bindings-alist
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
967 (when (and (not pc-select-selection-keys-only)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
968 (or (eq window-system 'x)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
969 (memq system-name '(ms-dos windows-nt))))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
970 (pc-select-restore-mode normal-erase-is-backspace-mode))
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
971
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
972 (pc-select-restore-keys
43985
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
973 pc-select-key-bindings-alist (current-global-map)
2fab49a69d94 (pc-selection-mode): Alter the existing global map, don't replace it.
Richard M. Stallman <rms@gnu.org>
parents: 43025
diff changeset
974 pc-select-saved-global-map)
18216
75f7eec6d388 (pc-select-selection-keys-only): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 17915
diff changeset
975
42980
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
976 (pc-select-restore-var highlight-nonselected-windows)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
977 (pc-select-restore-var transient-mark-mode)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
978 (pc-select-restore-var mark-even-if-inactive)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
979 (pc-select-restore-mode delete-selection-mode)
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
980 (and pc-select-old-M-delete-binding
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
981 (define-key function-key-map [M-delete]
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
982 pc-select-old-M-delete-binding))
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
983 (setq pc-select-key-bindings-alist nil
6134751ae11f (pc-selection-mode-hook)
Richard M. Stallman <rms@gnu.org>
parents: 41299
diff changeset
984 pc-select-saved-settings-alist nil))))
49598
0d8b17d428b5 Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43985
diff changeset
985
86155
39b88001b04b (pc-select-shifted-mark): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85686
diff changeset
986 ;; arch-tag: 10697b70-ae07-4f3e-ad23-7814a3f418c2
13233
8b29f638af52 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
987 ;;; pc-select.el ends here