]> code.delx.au - gnu-emacs/blobdiff - man/killing.texi
(Misc Buffer): Explain use of M-x rename-uniquely
[gnu-emacs] / man / killing.texi
index 0811f1f1f38f117a535e80f7fccd2d944de53e38..60b5129389d65bbbc952dd7bd504b5dcc54d42d3 100644 (file)
@@ -15,6 +15,11 @@ is versatile, because the many commands for killing syntactic units can
 also be used for moving those units.  But there are other ways of
 copying text for special purposes.
 
+  On terminals that support multiple windows for multiple applications,
+the kill commands also provide a way to select text for other applications
+to copy, and the Emacs yank commands can access selections made by
+other programs.
+
   Emacs has only one kill ring for all buffers, so you can kill text in
 one buffer and yank it in another buffer.
 
@@ -54,6 +59,11 @@ data generally do a kill operation instead.  The commands' names and
 individual descriptions use the words @samp{kill} and @samp{delete} to
 say which kind of operation they perform.
 
+  On window systems, the most recent kill done in Emacs is also the
+primary selection, if it is more recent than any selection you made in
+another program.  This means that the paste commands of other window
+applications copy the text that you killed in Emacs.
+
 @cindex Delete Selection mode
 @cindex mode, Delete Selection
 @findex delete-selection-mode
@@ -70,7 +80,7 @@ mode (@pxref{Transient Mark}).
                           blank areas.
 * Killing by Lines::    How to kill entire lines of text at one time.
 * Other Kill Commands:: Commands to kill large regions of text and
-                          syntactic units such as words and sentences. 
+                          syntactic units such as words and sentences.
 @end menu
 
 @need 1500
@@ -142,8 +152,8 @@ what they ought to do, you need to tell Emacs which key to use for
 @findex normal-erase-is-backspace-mode
   On most text-only terminals, Emacs cannot tell which keys the
 keyboard really has, so it follows a uniform plan which may or may not
-fit your keyboard.  The uniform plan is that the ASCII @key{DEL}
-character deletes, and the ASCII @key{BS} (backspace) character asks
+fit your keyboard.  The uniform plan is that the @acronym{ASCII} @key{DEL}
+character deletes, and the @acronym{ASCII} @key{BS} (backspace) character asks
 for help (it is the same as @kbd{C-h}).  If this is not right for your
 keyboard, such as if you find that the key which ought to delete backwards
 enters Help instead, see @ref{DEL Does Not Delete}.
@@ -211,7 +221,6 @@ following newline.  This variable is normally @code{nil}.
 @findex kill-region
 @kindex C-w
 
-@c DoubleWideCommands
 @table @kbd
 @item C-w
 Kill region (from point to the mark) (@code{kill-region}).
@@ -280,6 +289,11 @@ Save region as last killed text without actually killing it
 Append next kill to last batch of killed text (@code{append-next-kill}).
 @end table
 
+  On window systems, if there is a current selection in some other
+application, and you selected it more recently than you killed any
+text in Emacs, @kbd{C-y} copies the selection instead of text
+killed within Emacs.
+
 @menu
 * Kill Ring::          Where killed text is stored.  Basic yanking.
 * Appending Kills::    Several kills in a row all yank together.
@@ -306,6 +320,15 @@ mark after it.  This happens only if the argument is specified with just
 a @kbd{C-u}, precisely.  Any other sort of argument, including @kbd{C-u}
 and digits, specifies an earlier kill to yank (@pxref{Earlier Kills}).
 
+@cindex yanking and text properties
+@vindex yank-excluded-properties
+  The yank commands discard certain text properties from the text that
+is yanked, those that might lead to annoying results.  For instance,
+they discard text properties that respond to the mouse or specify key
+bindings.  The variable @code{yank-excluded-properties} specifies the
+properties to discard.  Yanking of register contents and rectangles
+also discard these properties.
+
 @kindex M-w
 @findex kill-ring-save
   To copy a block of text, you can use @kbd{M-w}
@@ -527,7 +550,7 @@ a line.
 
 @table @kbd
 @item C-x r k
-Kill the text of the region-rectangle, saving its contents as the 
+Kill the text of the region-rectangle, saving its contents as the
 ``last killed rectangle'' (@code{kill-rectangle}).
 @item C-x r d
 Delete the text of the region-rectangle (@code{delete-rectangle}).
@@ -538,8 +561,9 @@ Yank the last killed rectangle with its upper left corner at point
 Insert blank space to fill the space of the region-rectangle
 (@code{open-rectangle}).  This pushes the previous contents of the
 region-rectangle rightward.
-@item M-x clear-rectangle
-Clear the region-rectangle by replacing its contents with spaces.
+@item C-x r c
+Clear the region-rectangle by replacing its contents with spaces
+(@code{clear-rectangle}).
 @item M-x delete-whitespace-rectangle
 Delete whitespace in each of the lines on the specified rectangle,
 starting from the left edge column of the rectangle.
@@ -592,12 +616,13 @@ Registers}.
 
 @kindex C-x r o
 @findex open-rectangle
+@kindex C-x r c
 @findex clear-rectangle
   There are two commands you can use for making blank rectangles:
-@kbd{M-x clear-rectangle} which blanks out existing text, and @kbd{C-x r
-o} (@code{open-rectangle}) which inserts a blank rectangle.  Clearing a
-rectangle is equivalent to deleting it and then inserting a blank
-rectangle of the same size.
+@kbd{C-x r c} (@code{clear-rectangle}) which blanks out existing text,
+and @kbd{C-x r o} (@code{open-rectangle}) which inserts a blank
+rectangle.  Clearing a rectangle is equivalent to deleting it and then
+inserting a blank rectangle of the same size.
 
 @findex delete-whitespace-rectangle
   The command @kbd{M-x delete-whitespace-rectangle} deletes horizontal
@@ -616,6 +641,10 @@ if the string is wider than the rectangle, the text after the
 rectangle shifts right.
 
 @findex string-insert-rectangle
-  The command @kbd{M-x string-insert-rectangle} is similar to 
-@code{string-rectangle}, but inserts the string on each line, 
+  The command @kbd{M-x string-insert-rectangle} is similar to
+@code{string-rectangle}, but inserts the string on each line,
 shifting the original text to the right.
+
+@ignore
+   arch-tag: d8da8f96-0928-449a-816e-ff2d3497866c
+@end ignore