Now on revision 106909. ------------------------------------------------------------ revno: 106909 author: Lars Magne Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Sun 2012-01-22 00:54:58 +0000 message: mm-decode.el (mm-interactively-view-part): Fix prompt. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-01-19 07:21:25 +0000 +++ lisp/gnus/ChangeLog 2012-01-22 00:54:58 +0000 @@ -1,3 +1,7 @@ +2012-01-21 Lars Magne Ingebrigtsen + + * mm-decode.el (mm-interactively-view-part): Fix prompt. + 2012-01-10 Teodor Zlatanov * nntp.el (nntp-send-authinfo): Query `auth-source-search' with the === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2012-01-19 07:21:25 +0000 +++ lisp/gnus/mm-decode.el 2012-01-22 00:54:58 +0000 @@ -1353,7 +1353,7 @@ (mailcap-mime-info type 'all))) (method (let ((minibuffer-local-completion-map mm-viewer-completion-map)) - (completing-read "Viewer" methods)))) + (completing-read "Viewer: " methods)))) (when (string= method "") (error "No method given")) (if (string-match "^[^% \t]+$" method) ------------------------------------------------------------ revno: 106908 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-01-22 00:04:55 +0800 message: Emacs Lisp manual updates. * doc/lispref/intro.texi (A Sample Function Description): Special notation used for macros too. * doc/lispref/objects.texi (Ctl-Char Syntax, Other Char Bits): Copyedits. (Symbol Type): Add xref for keyword symbols. (Sequence Type): Clarify differences between sequence types. (Cons Cell Type): Add "linked list" index entry. (Non-ASCII in Strings): Copyedits. (Equality Predicates): Symbols with same name need not be eq. * doc/lispref/numbers.texi (Float Basics): Document isnan, copysign, frexp and ldexp. Move float-e and float-pi to Math Functions node. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-01-21 03:15:07 +0000 +++ doc/lispref/ChangeLog 2012-01-21 16:04:55 +0000 @@ -1,3 +1,18 @@ +2012-01-21 Chong Yidong + + * intro.texi (A Sample Function Description): Special notation + used for macros too. + + * objects.texi (Ctl-Char Syntax, Other Char Bits): Copyedits. + (Symbol Type): Add xref for keyword symbols. + (Sequence Type): Clarify differences between sequence types. + (Cons Cell Type): Add "linked list" index entry. + (Non-ASCII in Strings): Copyedits. + (Equality Predicates): Symbols with same name need not be eq. + + * numbers.texi (Float Basics): Document isnan, copysign, frexp and + ldexp. Move float-e and float-pi to Math Functions node. + 2012-01-21 Glenn Morris * modes.texi (Auto Major Mode): === modified file 'doc/lispref/intro.texi' --- doc/lispref/intro.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/intro.texi 2012-01-21 16:04:55 +0000 @@ -162,7 +162,7 @@ @cindex @code{nil} @cindex false - In Lisp, the symbol @code{nil} has three separate meanings: it + In Emacs Lisp, the symbol @code{nil} has three separate meanings: it is a symbol with the name @samp{nil}; it is the logical truth value @var{false}; and it is the empty list---the list of zero elements. When used as a variable, @code{nil} always has the value @code{nil}. @@ -396,13 +396,14 @@ interactively; macros process their arguments differently from functions (the arguments are not evaluated), but are presented the same way. - Special form descriptions use a more complex notation to specify -optional and repeated arguments because they can break the argument -list down into separate arguments in more complicated ways. -@samp{@r{[}@var{optional-arg}@r{]}} means that @var{optional-arg} is -optional and @samp{@var{repeated-args}@dots{}} stands for zero or more -arguments. Parentheses are used when several arguments are grouped into -additional levels of list structure. Here is an example: + The descriptions of macros and special forms use a more complex +notation to specify optional and repeated arguments, because they can +break the argument list down into separate arguments in more +complicated ways. @samp{@r{[}@var{optional-arg}@r{]}} means that +@var{optional-arg} is optional and @samp{@var{repeated-args}@dots{}} +stands for zero or more arguments. Parentheses are used when several +arguments are grouped into additional levels of list structure. Here +is an example: @defspec count-loop (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{} This imaginary special form implements a loop that executes the @@ -485,9 +486,9 @@ @end deffn @defvar emacs-build-time -The value of this variable indicates the time at which Emacs was built -at the local site. It is a list of three integers, like the value -of @code{current-time} (@pxref{Time of Day}). +The value of this variable indicates the time at which Emacs was +built. It is a list of three integers, like the value of +@code{current-time} (@pxref{Time of Day}). @example @group === modified file 'doc/lispref/numbers.texi' --- doc/lispref/numbers.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/numbers.texi 2012-01-21 16:04:55 +0000 @@ -168,34 +168,37 @@ @node Float Basics @section Floating Point Basics +@cindex @acronym{IEEE} floating point Floating point numbers are useful for representing numbers that are not integral. The precise range of floating point numbers is machine-specific; it is the same as the range of the C data type -@code{double} on the machine you are using. +@code{double} on the machine you are using. Emacs uses the +@acronym{IEEE} floating point standard where possible (the standard is +supported by most modern computers). - The read-syntax for floating point numbers requires either a decimal + The read syntax for floating point numbers requires either a decimal point (with at least one digit following), an exponent, or both. For example, @samp{1500.0}, @samp{15e2}, @samp{15.0e2}, @samp{1.5e3}, and @samp{.15e4} are five ways of writing a floating point number whose -value is 1500. They are all equivalent. You can also use a minus sign -to write negative floating point numbers, as in @samp{-1.0}. - -@cindex @acronym{IEEE} floating point +value is 1500. They are all equivalent. You can also use a minus +sign to write negative floating point numbers, as in @samp{-1.0}. + + Emacs Lisp treats @code{-0.0} as equal to ordinary zero (with +respect to @code{equal} and @code{=}), even though the two are +distinguishable in the @acronym{IEEE} floating point standard. + @cindex positive infinity @cindex negative infinity @cindex infinity @cindex NaN - Most modern computers support the @acronym{IEEE} floating point standard, -which provides for positive infinity and negative infinity as floating point -values. It also provides for a class of values called NaN or -``not-a-number''; numerical functions return such values in cases where -there is no correct answer. For example, @code{(/ 0.0 0.0)} returns a -NaN. For practical purposes, there's no significant difference between -different NaN values in Emacs Lisp, and there's no rule for precisely -which NaN value should be used in a particular case, so Emacs Lisp -doesn't try to distinguish them (but it does report the sign, if you -print it). Here are the read syntaxes for these special floating -point values: + The @acronym{IEEE} floating point standard supports positive +infinity and negative infinity as floating point values. It also +provides for a class of values called NaN or ``not-a-number''; +numerical functions return such values in cases where there is no +correct answer. For example, @code{(/ 0.0 0.0)} returns a NaN. (NaN +values can also carry a sign, but for practical purposes there's no +significant difference between different NaN values in Emacs Lisp.) +Here are the read syntaxes for these special floating point values: @table @asis @item positive infinity @@ -206,16 +209,37 @@ @samp{0.0e+NaN} or @samp{-0.0e+NaN}. @end table - To test whether a floating point value is a NaN, compare it with -itself using @code{=}. That returns @code{nil} for a NaN, and -@code{t} for any other floating point value. - - The value @code{-0.0} is distinguishable from ordinary zero in -@acronym{IEEE} floating point, but Emacs Lisp @code{equal} and -@code{=} consider them equal values. - - You can use @code{logb} to extract the binary exponent of a floating -point number (or estimate the logarithm of an integer): +@defun isnan number +This predicate tests whether its argument is NaN, and returns @code{t} +if so, @code{nil} otherwise. The argument must be a number. +@end defun + + The following functions are specialized for handling floating point +numbers: + +@defun frexp x +This function returns a cons cell @code{(@var{sig} . @var{exp})}, +where @var{sig} and @var{exp} are respectively the significand and +exponent of the floating point number @var{x}: + +@smallexample +@var{x} = @var{sig} * 2^@var{exp} +@end smallexample + +@var{sig} is a floating point number between 0.5 (inclusive) and 1.0 +(exclusive). If @var{x} is zero, the return value is @code{(0 . 0)}. +@end defun + +@defun ldexp sig &optional exp +This function returns a floating point number corresponding to the +significand @var{sig} and exponent @var{exp}. +@end defun + +@defun copysign x1 x2 +This function copies the sign of @var{x2} to the value of @var{x1}, +and returns the result. @var{x1} and @var{x2} must be floating point +numbers. +@end defun @defun logb number This function returns the binary exponent of @var{number}. More @@ -230,14 +254,6 @@ @end example @end defun -@defvar float-e -The mathematical constant @math{e} (2.71828@dots{}). -@end defvar - -@defvar float-pi -The mathematical constant @math{pi} (3.14159@dots{}). -@end defvar - @node Predicates on Numbers @section Type Predicates for Numbers @cindex predicates for numbers @@ -1122,35 +1138,15 @@ @end defun @defun exp arg -This is the exponential function; it returns -@tex -@math{e} -@end tex -@ifnottex -@i{e} -@end ifnottex -to the power @var{arg}. -@tex -@math{e} -@end tex -@ifnottex -@i{e} -@end ifnottex -is a fundamental mathematical constant also called the base of natural -logarithms. +This is the exponential function; it returns @math{e} to the power +@var{arg}. @end defun @defun log arg &optional base -This function returns the logarithm of @var{arg}, with base @var{base}. -If you don't specify @var{base}, the base -@tex -@math{e} -@end tex -@ifnottex -@i{e} -@end ifnottex -is used. If @var{arg} is negative, it signals a @code{domain-error} -error. +This function returns the logarithm of @var{arg}, with base +@var{base}. If you don't specify @var{base}, the natural base +@math{e} is used. If @var{arg} is negative, it signals a +@code{domain-error} error. @end defun @ignore @@ -1185,6 +1181,17 @@ it signals a @code{domain-error} error. @end defun +In addition, Emacs defines the following common mathematical +constants: + +@defvar float-e +The mathematical constant @math{e} (2.71828@dots{}). +@end defvar + +@defvar float-pi +The mathematical constant @math{pi} (3.14159@dots{}). +@end defvar + @node Random Numbers @section Random Numbers @cindex random numbers @@ -1218,7 +1225,6 @@ If @var{limit} is @code{t}, it means to choose a new seed based on the current time of day and on Emacs's process @acronym{ID} number. -@c "Emacs'" is incorrect usage! On some machines, any integer representable in Lisp may be the result of @code{random}. On other machines, the result can never be larger === modified file 'doc/lispref/objects.texi' --- doc/lispref/objects.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/objects.texi 2012-01-21 16:04:55 +0000 @@ -427,10 +427,10 @@ @ifnottex 2**26 @end ifnottex -bit as well as the code for the corresponding non-control -character. Ordinary terminals have no way of generating non-@acronym{ASCII} -control characters, but you can generate them straightforwardly using X -and other window systems. +bit as well as the code for the corresponding non-control character. +Ordinary text terminals have no way of generating non-@acronym{ASCII} +control characters, but you can generate them straightforwardly using +X and other window systems. For historical reasons, Emacs treats the @key{DEL} character as the control equivalent of @kbd{?}: @@ -501,10 +501,10 @@ @end ifnottex bit to indicate that the shift key was used in typing a control character. This distinction is possible only when you use X terminals -or other special terminals; ordinary terminals do not report the -distinction to the computer in any way. The Lisp syntax for -the shift bit is @samp{\S-}; thus, @samp{?\C-\S-o} or @samp{?\C-\S-O} -represents the shifted-control-o character. +or other special terminals; ordinary text terminals do not report the +distinction. The Lisp syntax for the shift bit is @samp{\S-}; thus, +@samp{?\C-\S-o} or @samp{?\C-\S-O} represents the shifted-control-o +character. @cindex hyper characters @cindex super characters @@ -541,9 +541,9 @@ independently. A symbol whose name starts with a colon (@samp{:}) is called a -@dfn{keyword symbol}. These symbols automatically act as constants, and -are normally used only by comparing an unknown symbol with a few -specific alternatives. +@dfn{keyword symbol}. These symbols automatically act as constants, +and are normally used only by comparing an unknown symbol with a few +specific alternatives. @xref{Constant Variables}. @cindex @samp{\} in symbols @cindex backslash in symbols @@ -617,26 +617,28 @@ @subsection Sequence Types A @dfn{sequence} is a Lisp object that represents an ordered set of -elements. There are two kinds of sequence in Emacs Lisp, lists and -arrays. Thus, an object of type list or of type array is also -considered a sequence. - - Arrays are further subdivided into strings, vectors, char-tables and -bool-vectors. Vectors can hold elements of any type, but string -elements must be characters, and bool-vector elements must be @code{t} -or @code{nil}. Char-tables are like vectors except that they are -indexed by any valid character code. The characters in a string can -have text properties like characters in a buffer (@pxref{Text -Properties}), but vectors do not support text properties, even when -their elements happen to be characters. - - Lists, strings and the other array types are different, but they have -important similarities. For example, all have a length @var{l}, and all -have elements which can be indexed from zero to @var{l} minus one. -Several functions, called sequence functions, accept any kind of -sequence. For example, the function @code{elt} can be used to extract -an element of a sequence, given its index. @xref{Sequences Arrays -Vectors}. +elements. There are two kinds of sequence in Emacs Lisp: @dfn{lists} +and @dfn{arrays}. + + Lists are the most commonly-used sequences. A list can hold +elements of any type, and its length can be easily changed by adding +or removing elements. See the next subsection for more about lists. + + Arrays are fixed-length sequences. They are further subdivided into +strings, vectors, char-tables and bool-vectors. Vectors can hold +elements of any type, whereas string elements must be characters, and +bool-vector elements must be @code{t} or @code{nil}. Char-tables are +like vectors except that they are indexed by any valid character code. +The characters in a string can have text properties like characters in +a buffer (@pxref{Text Properties}), but vectors do not support text +properties, even when their elements happen to be characters. + + Lists, strings and the other array types also share important +similarities. For example, all have a length @var{l}, and all have +elements which can be indexed from zero to @var{l} minus one. Several +functions, called sequence functions, accept any kind of sequence. +For example, the function @code{length} reports the length of any kind +of sequence. @xref{Sequences Arrays Vectors}. It is generally impossible to read the same sequence twice, since sequences are always created anew upon reading. If you read the read @@ -650,24 +652,27 @@ @cindex decrement field of register @cindex pointers - A @dfn{cons cell} is an object that consists of two slots, called the -@sc{car} slot and the @sc{cdr} slot. Each slot can @dfn{hold} or -@dfn{refer to} any Lisp object. We also say that ``the @sc{car} of -this cons cell is'' whatever object its @sc{car} slot currently holds, -and likewise for the @sc{cdr}. - -@quotation -A note to C programmers: in Lisp, we do not distinguish between -``holding'' a value and ``pointing to'' the value, because pointers in -Lisp are implicit. -@end quotation - + A @dfn{cons cell} is an object that consists of two slots, called +the @sc{car} slot and the @sc{cdr} slot. Each slot can @dfn{hold} any +Lisp object. We also say that ``the @sc{car} of this cons cell is'' +whatever object its @sc{car} slot currently holds, and likewise for +the @sc{cdr}. + +@cindex list structure A @dfn{list} is a series of cons cells, linked together so that the @sc{cdr} slot of each cons cell holds either the next cons cell or the empty list. The empty list is actually the symbol @code{nil}. -@xref{Lists}, for functions that work on lists. Because most cons -cells are used as part of lists, the phrase @dfn{list structure} has -come to refer to any structure made out of cons cells. +@xref{Lists}, for details. Because most cons cells are used as part +of lists, we refer to any structure made out of cons cells as a +@dfn{list structure}. + +@cindex linked list +@quotation +A note to C programmers: a Lisp list thus works as a @dfn{linked list} +built up of cons cells. Because pointers in Lisp are implicit, we do +not distinguish between a cons cell slot ``holding'' a value versus +``pointing to'' the value. +@end quotation @cindex atoms Because cons cells are so central to Lisp, we also have a word for @@ -1025,40 +1030,40 @@ @node Non-ASCII in Strings @subsubsection Non-@acronym{ASCII} Characters in Strings - You can include a non-@acronym{ASCII} international character in a string -constant by writing it literally. There are two text representations -for non-@acronym{ASCII} characters in Emacs strings (and in buffers): unibyte -and multibyte. If the string constant is read from a multibyte source, -such as a multibyte buffer or string, or a file that would be visited as -multibyte, then the character is read as a multibyte character, and that -makes the string multibyte. If the string constant is read from a -unibyte source, then the character is read as unibyte and that makes the -string unibyte. + You can include a non-@acronym{ASCII} international character in a +string constant by writing it literally. There are two text +representations for non-@acronym{ASCII} characters in Emacs strings +(and in buffers): unibyte and multibyte (@pxref{Text +Representations}). If the string constant is read from a multibyte +source, such as a multibyte buffer or string, or a file that would be +visited as multibyte, then Emacs reads the non-@acronym{ASCII} +character as a multibyte character and automatically makes the string +a multibyte string. If the string constant is read from a unibyte +source, then Emacs reads the non-@acronym{ASCII} character as unibyte, +and makes the string unibyte. - You can also represent a multibyte non-@acronym{ASCII} character with its -character code: use a hex escape, @samp{\x@var{nnnnnnn}}, with as many -digits as necessary. (Multibyte non-@acronym{ASCII} character codes are all -greater than 256.) Any character which is not a valid hex digit -terminates this construct. If the next character in the string could be -interpreted as a hex digit, write @w{@samp{\ }} (backslash and space) to -terminate the hex escape---for example, @w{@samp{\xe0\ }} represents -one character, @samp{a} with grave accent. @w{@samp{\ }} in a string -constant is just like backslash-newline; it does not contribute any -character to the string, but it does terminate the preceding hex escape. + Instead of writing a non-@acronym{ASCII} character literally into a +multibyte string, you can write it as its character code using a hex +escape, @samp{\x@var{nnnnnnn}}, with as many digits as necessary. +(Multibyte non-@acronym{ASCII} character codes are all greater than +256.) You can also specify a character in a multibyte string using +the @samp{\u} or @samp{\U} Unicode escape syntax (@pxref{General +Escape Syntax}). In either case, any character which is not a valid +hex digit terminates the construct. If the next character in the +string could be interpreted as a hex digit, write @w{@samp{\ }} +(backslash and space) to terminate the hex escape---for example, +@w{@samp{\xe0\ }} represents one character, @samp{a} with grave +accent. @w{@samp{\ }} in a string constant is just like +backslash-newline; it does not contribute any character to the string, +but it does terminate the preceding hex escape. Using any hex escape +in a string (even for an @acronym{ASCII} character) automatically +forces the string to be multibyte. You can represent a unibyte non-@acronym{ASCII} character with its character code, which must be in the range from 128 (0200 octal) to 255 (0377 octal). If you write all such character codes in octal and the string contains no other characters forcing it to be multibyte, -this produces a unibyte string. However, using any hex escape in a -string (even for an @acronym{ASCII} character) forces the string to be -multibyte. - - You can also specify characters in a string by their numeric values -in Unicode, using @samp{\u} and @samp{\U} (@pxref{Character Type}). - - @xref{Text Representations}, for more information about the two -text representations. +this produces a unibyte string. @node Nonprinting Characters @subsubsection Nonprinting Characters in Strings @@ -1922,23 +1927,24 @@ @section Equality Predicates @cindex equality - Here we describe functions that test for equality between any two -objects. Other functions test equality of contents between objects of specific -types, e.g., strings. For these predicates, see the appropriate chapter -describing the data type. + Here we describe functions that test for equality between two +objects. Other functions test equality of contents between objects of +specific types, e.g.@: strings. For these predicates, see the +appropriate chapter describing the data type. @defun eq object1 object2 This function returns @code{t} if @var{object1} and @var{object2} are -the same object, @code{nil} otherwise. +the same object, and @code{nil} otherwise. -@code{eq} returns @code{t} if @var{object1} and @var{object2} are -integers with the same value. Also, since symbol names are normally -unique, if the arguments are symbols with the same name, they are -@code{eq}. For other types (e.g., lists, vectors, strings), two -arguments with the same contents or elements are not necessarily -@code{eq} to each other: they are @code{eq} only if they are the same -object, meaning that a change in the contents of one will be reflected -by the same change in the contents of the other. +If @var{object1} and @var{object2} are integers with the same value, +they are considered to be the same object (i.e.@: @code{eq} returns +@code{t}). If @var{object1} and @var{object2} are symbols with the +same name, they are normally the same object---but see @ref{Creating +Symbols} for exceptions. For other types (e.g.@: lists, vectors, +strings), two arguments with the same contents or elements are not +necessarily @code{eq} to each other: they are @code{eq} only if they +are the same object, meaning that a change in the contents of one will +be reflected by the same change in the contents of the other. @example @group @@ -1988,6 +1994,7 @@ @end group @end example +@noindent The @code{make-symbol} function returns an uninterned symbol, distinct from the symbol that is used if you write the name in a Lisp expression. Distinct symbols with the same name are not @code{eq}. @xref{Creating @@ -2003,11 +2010,11 @@ @defun equal object1 object2 This function returns @code{t} if @var{object1} and @var{object2} have -equal components, @code{nil} otherwise. Whereas @code{eq} tests if its -arguments are the same object, @code{equal} looks inside nonidentical -arguments to see if their elements or contents are the same. So, if two -objects are @code{eq}, they are @code{equal}, but the converse is not -always true. +equal components, and @code{nil} otherwise. Whereas @code{eq} tests +if its arguments are the same object, @code{equal} looks inside +nonidentical arguments to see if their elements or contents are the +same. So, if two objects are @code{eq}, they are @code{equal}, but +the converse is not always true. @example @group @@ -2059,13 +2066,13 @@ @end example Comparison of strings is case-sensitive, but does not take account of -text properties---it compares only the characters in the strings. Use -@code{equal-including-properties} to also compare text properties. For -technical reasons, a unibyte string and a multibyte string are -@code{equal} if and only if they contain the same sequence of -character codes and all these codes are either in the range 0 through -127 (@acronym{ASCII}) or 160 through 255 (@code{eight-bit-graphic}). -(@pxref{Text Representations}). +text properties---it compares only the characters in the strings. +@xref{Text Properties}. Use @code{equal-including-properties} to also +compare text properties. For technical reasons, a unibyte string and +a multibyte string are @code{equal} if and only if they contain the +same sequence of character codes and all these codes are either in the +range 0 through 127 (@acronym{ASCII}) or 160 through 255 +(@code{eight-bit-graphic}). (@pxref{Text Representations}). @example @group === modified file 'etc/NEWS' --- etc/NEWS 2012-01-21 14:58:38 +0000 +++ etc/NEWS 2012-01-21 16:04:55 +0000 @@ -1367,6 +1367,9 @@ (when not immediately followed by a possible symbol character) stands for an empty uninterned symbol. ++++ +** New math functions `isnan', `copysign', `frexp', `ldexp'. + ** Obsolete functions and variables *** buffer-substring-filters is obsolete. ------------------------------------------------------------ revno: 106907 committer: Michael Albinus branch nick: trunk timestamp: Sat 2012-01-21 17:02:53 +0100 message: * net/tramp-sh.el (tramp-default-user-alist): Don't add "plink", "plink1" and "psftp". (Bug#10530) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-21 11:36:42 +0000 +++ lisp/ChangeLog 2012-01-21 16:02:53 +0000 @@ -1,4 +1,9 @@ -20122-01-21 Kenichi Handa +2012-01-21 Michael Albinus + + * net/tramp-sh.el (tramp-default-user-alist): Don't add "plink", + "plink1" and "psftp". (Bug#10530) + +2012-01-21 Kenichi Handa * international/mule-cmds.el (prefer-coding-system): Show a warning message if the default value of file-name-coding-system === modified file 'lisp/net/tramp-sh.el' --- lisp/net/tramp-sh.el 2012-01-15 16:03:30 +0000 +++ lisp/net/tramp-sh.el 2012-01-21 16:02:53 +0000 @@ -419,13 +419,13 @@ `(,(concat "\\`" (regexp-opt '("su" "sudo" "ksu")) "\\'") nil "root")) ;; Do not add "ssh" based methods, otherwise ~/.ssh/config would be ignored. +;; Do not add "plink" and "psftp", they ask interactively for the user. ;;;###tramp-autoload (add-to-list 'tramp-default-user-alist `(,(concat "\\`" (regexp-opt - '("rcp" "remcp" "rsh" "telnet" "krlogin" - "plink" "plink1" "pscp" "psftp" "fcp")) + '("rcp" "remcp" "rsh" "telnet" "krlogin" "pscp" "fcp")) "\\'") nil ,(user-login-name))) ------------------------------------------------------------ revno: 106906 committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-01-21 23:52:46 +0800 message: Make second arg of copysign non-optional. * src/floatfns.c (Fcopysign): Make the second argument non-optional, since nil is not allowed anyway. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-01-21 10:54:19 +0000 +++ src/ChangeLog 2012-01-21 15:52:46 +0000 @@ -1,3 +1,8 @@ +2012-01-21 Chong Yidong + + * floatfns.c (Fcopysign): Make the second argument non-optional, + since nil is not allowed anyway. + 2012-01-21 Andreas Schwab * process.c (read_process_output): Use p instead of XPROCESS (proc). === modified file 'src/floatfns.c' --- src/floatfns.c 2012-01-19 07:21:25 +0000 +++ src/floatfns.c 2012-01-21 15:52:46 +0000 @@ -294,7 +294,7 @@ } #ifdef HAVE_COPYSIGN -DEFUN ("copysign", Fcopysign, Scopysign, 1, 2, 0, +DEFUN ("copysign", Fcopysign, Scopysign, 2, 2, 0, doc: /* Copy sign of X2 to value of X1, and return the result. Cause an error if X1 or X2 is not a float. */) (Lisp_Object x1, Lisp_Object x2) ------------------------------------------------------------ revno: 106905 author: Ognyan Kulev committer: Chong Yidong branch nick: trunk timestamp: Sat 2012-01-21 22:58:38 +0800 message: Update TUTORIAL.bg. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2012-01-17 14:16:42 +0000 +++ admin/FOR-RELEASE 2012-01-21 14:58:38 +0000 @@ -100,10 +100,10 @@ SECTION READERS ---------------------------------- TUTORIAL cyd -TUTORIAL.bg +TUTORIAL.bg ogi TUTORIAL.cn TUTORIAL.cs -TUTORIAL.de +TUTORIAL.de wl TUTORIAL.eo TUTORIAL.es TUTORIAL.fr @@ -215,7 +215,7 @@ modes.texi nonascii.texi numbers.texi -objects.texi +objects.texi cyd os.texi package.texi positions.texi === modified file 'etc/ChangeLog' --- etc/ChangeLog 2012-01-19 07:21:25 +0000 +++ etc/ChangeLog 2012-01-21 14:58:38 +0000 @@ -1,3 +1,7 @@ +2012-01-21 Ognyan Kulev + + * tutorials/TUTORIAL.bg: Updated; synchronize with TUTORIAL. + 2012-01-19 Werner Lemberg * tutorial/TUTORIAL.de: Updated; synchronize with TUTORIAL. === modified file 'etc/NEWS' --- etc/NEWS 2012-01-21 03:15:07 +0000 +++ etc/NEWS 2012-01-21 14:58:38 +0000 @@ -1382,20 +1382,19 @@ * Changes in Emacs 24.1 on non-free operating systems --- -** On MS Windows, Emacs now warns when the obsolete _emacs init file is used, +** On MS Windows, Emacs warns when using the obsolete init file _emacs, and also when HOME is set to C:\ by default. -** New configure.bat option --enable-checking builds Emacs with extra -runtime checks. - -** New configure.bat option --distfiles to specify files to be -included in binary distribution. - -** New configure.bat option --without-gnutls to disable automatic -GnuTLS detection. - -** New configure.bat option --lib for general library linkage, works -with the USER_LIBS build variable. +** New configure.bat options + +*** --enable-checking builds Emacs with extra runtime checks. + +*** --distfiles specifies files to be included in binary distribution. + +*** --without-gnutls disables automatic GnuTLS detection. + +*** --lib for general library linkage, works with the USER_LIBS build +variable. ** New make target `dist' to create binary distribution for MS Windows. === modified file 'etc/tutorials/TUTORIAL.bg' --- etc/tutorials/TUTORIAL.bg 2012-01-19 07:21:25 +0000 +++ etc/tutorials/TUTORIAL.bg 2012-01-21 14:58:38 +0000 @@ -1,4 +1,4 @@ -Въведението на Емакс. Условията за копиране са в края на текста. +Въведение в Емакс. Условията за копиране са в края на текста. Командите на Емакс най-често включват клавишите CONTROL (понякога отбелязван с CTRL или CTL) и META (понякога отбелязван с EDIT или @@ -14,14 +14,14 @@ клавиша ESC и след това въведете <знак>. Ние записваме , за да отбележим клавиша ESC. -Важна бележка: в края на Емакс сесията въведете двата знака C-x C-c. -Знаците ">>" отляво ви дават указание да изпълните команда. Например: +Важна бележка: в края на Емакс сесията въведете C-x C-c. (Два знака.) +За да прекъснете частично въведена команда, използвайте C-g. +Знаците „>>“ отляво ви дават указание да изпълните команда. Например: <> ->> Сега въведете C-v (Покажи следващия екран), за да се придвижите към -следващия екран. - (Направете го сега, задръжте CONTROL, докато натискате v). - Отсега нататък вие ще правите това винаги, когато прочетете - екрана. +>> Сега въведете C-v (Показване на следващия екран), за да се придвижите + към следващия екран. (Направете го сега, задръжте CONTROL, + докато натискате „v“). Отсега нататък вие ще правите това винаги, + когато прочетете екрана. Забележете, че има припокриване на два реда, когато се придвижвате от екран в екран; това осигурява някаква приемственост, така че да можете @@ -30,8 +30,8 @@ Първото нещо, което трябва да знаете, е как да се придвижвате от едно място на текста към друго. Вие вече знаете как да се придвижвате екран напред, с C-v. За да се придвижите екран назад, въведете M-v -(задръжте клавиша META и натиснете v, или въведете v, ако нямате -клавиш META, EDIT или ALT). +(задръжте клавиша META и натиснете „v“, или въведете и после „v“, +ако нямате клавиш META, EDIT или ALT). >> Опитайте се да въведете M-v и след това C-v няколко пъти. @@ -49,7 +49,11 @@ >> Намерете курсора и си запомнете какъв е текстът около него. След това въведете C-l. - Намерете пак курсора и вижте, че същият текст е пак около курсора. + Намерете пак курсора и вижте, че същият текст е пак около курсора, + но сега вече в средата на екрана. + Ако пак натиснете C-l, тази част от текста ще се придвижи в горния + край на екрана. Натиснете отново C-l и този текст ще отиде в долния + край на екрана. Може също да използвате клавишите PageUp и PageDown за придвижване по екрани, ако вашият терминал ги притежава, но вие можете да редактирате @@ -65,7 +69,7 @@ Има няколко начина да го направите. Може да използвате клавишите стрелки, но е по-ефективно да държите ръцете си в стандартно положение и да използвате командите C-p, C-b, C-f и C-n. Тези знаци са -еквивалентни на четирите клавиши стрелки, ето така: +еквивалентни на четирите клавиши стрелки по следния начин: Предишен ред (Previous), C-p : @@ -76,38 +80,37 @@ Следващ ред (Next), C-n >> Придвижете курсора до реда в средата на тази диаграма, използвайки - C-n и C-p. След това натиснете C-l, за да видите цялата диаграма, + C-n и C-p. След това натиснете C-l и ще видите цялата диаграма, центрирана на екрана. Ще намерите, че запомнянето на тези букви по думите на английски на -действията, които извършват, е лесно: P за Previous (предишен), N за -Next (следващ), B за Backward (назад) и F за Forward (напред). Вие ще -използвате тези основни команди за придвижване на курсора през цялото -време. - ->> Въведете няколко C-n, за да доведете курсора до този ред. - ->> Придвижете се в реда с няколко C-f и след това с няколко C-p. +действията, които извършват, е лесно: „P“ за Previous (предишен), „N“ +за Next (следващ), „B“ за Backward (назад) и „F“ за Forward (напред). +Вие ще използвате тези основни команди за придвижване на курсора през +цялото време. + +>> Въведете няколко пъти C-n, за да доведете курсора до този ред. + +>> Придвижете се вътре в реда с няколко C-f и след това с няколко C-p. Вижте какво прави C-p, когато курсорът е в средата на реда. Всеки ред от текст завършва със знак за нов ред, който служи за -отделянето на реда от следващия ред. Последният ред във вашия файл -трябва да има знак за нов ред в края (но Емакс не изисква такъв, -когато прочита файла). +отделянето на реда от следващия ред. (Последният ред във вашия файл +трябва да има знак за нов ред в края, но Емакс не изисква такъв.) >> Опитайте C-b в началото на ред. Това трябва да ви придвижи в края на предишния ред. Това е така, защото курсорът се придвижва към знака за нов ред на предишния ред. -C-f може да придвижва през знак за нов ред точно както C-b. +C-f може да придвижва през знак за нов ред, точно както C-b. ->> Направете няколко C-b придвижвания, така че да добиете усещане къде - се намира курсорът. След това няколко C-f, за да се върнете в края - на реда. След това още няколко C-f, за да се придвижите до +>> Направете няколко придвижвания с C-b, така че да добиете усещане + къде се намира курсорът. След това няколко C-f, докато се върнете + в края на реда. След това още няколко C-f, за да се придвижите до следващия ред. Когато се придвижвате след горния или долния край на екрана, текстът -отвъд края се измества към екрана. Това се нарича "скролиране". То +отвъд края се измества към екрана. Това се нарича „скролиране“. То позволява на Емакс да придвижва курсора към зададеното място в текста, без да го изкарва извън екрана. @@ -146,9 +149,8 @@ клавишни комбинации не са точно аналогични, всяка една от тях изглежда естествена. -Положението на курсора в текста се нарича също "точка". -Перефразирано, курсорът показва на екрана къде е разположена точката в -текста. +Положението на курсора в текста се нарича „точка“. Перефразирано, +курсорът показва на екрана къде е разположена точката в текста. Ето обобщение на простите действия, движещи курсора, включително придвижващите по дума и изречение: @@ -175,7 +177,7 @@ която придвижва до началото на целия текст, и M-> (Meta по-голямо), която премества до края на целия текст. -При повечето терминали знакът "<" е отбелязан над запетаята, така че +При повечето терминали знакът „<“ е отбелязан над запетаята, така че трябва да използвате клавиша Shift, за да го напишете. На тези терминали трябва да използвате Shift, за да въведете и M-<; без клавиша Shift бихте въвели M-запетая. @@ -206,17 +208,17 @@ (или EDIT или ALT), има друг, алтернативен начин да въведете числов аргумент: въведете цифрите, докато задържате клавиша META. Ние препоръчваме да научите начина с C-u, защото той работи на който и да -е терминал. Числовият аргумент се нарича също "префиксен аргумент", +е терминал. Числовият аргумент се нарича също „префиксен аргумент“, защото го въвеждате преди командата, за която е предназначен. -Например, C-u 8 C-f придвижва осем знака напред. +Например C-u 8 C-f придвижва осем знака напред. >> Опитайте използването на C-n или C-p с числов аргумент, за да придвижите курсора до ред, близък до този, само с една команда. Повечето команди използват числовия аргумент като брояч на повторенията, но някои го използват за други цели. Няколко команди -(но никоя от тези, които сте научили досега) го използват като флаг -- +(но никоя от тези, които сте научили досега) го използват като флаг – присъствието на числов аргумент, независимо от стойноста му, кара командата да върши нещо различно. @@ -234,13 +236,8 @@ bar), в лявата страна на прозореца на Емакс. Вие можете да скролирате текста, щракайки с мишката в плъзгача. ->> Опитайте да натиснете средния бутон на върха на осветената област - вътре в плъзгача. Това би трябвало да скролира текста към - положение, определено от това колко високо или ниско сте щракнали. - ->> Опитайте се да движите мишката нагоре и надолу, докато сте - задържали десния бутон натиснат. Ще видите, че текстът се скролира - нагоре и надолу, като движите мишката. +Ако вашата мишка има търкалце, можете и него да използвате за +скролиране. * КОГАТО ЕМАКС Е БЛОКИРАЛ @@ -263,7 +260,7 @@ * ЗАБРАНЕНИ КОМАНДИ ------------------- -Някои команди на Емакс са "забранени", така че начинаещите потребители +Някои команди на Емакс са „забранени“, така че начинаещите потребители да не могат да ги употребят по погрешка. Ако въведете някоя от забранените команди, Емакс извежда съобщение, @@ -272,16 +269,16 @@ Ако наистина искате да изпробвате командата, въведете клавиша интервал в отговор на въпроса. Обикновено ако не искате да изпълните -забранената команда, отговаряте на въпроса с "n". +забранената команда, отговаряте на въпроса с „n“. >> Въведете C-x C-l (която е забранена команда), и след това въведете - "n" в отговор на въпроса. + „n“ в отговор на въпроса. * ПРОЗОРЦИ ---------- -Емакс може да управлява няколко прозореца, всеки извеждайки свой +Емакс може да управлява няколко „прозореца“, всеки извеждайки свой собствен текст. Ние ще обясним по-късно как да използвате няколко прозореца. Точно сега ние искаме да обясним как да се отървете от допълнителни прозорци и да се върнете към основното редактиране с един @@ -301,57 +298,52 @@ >> Въведете C-x 1 и вижте как прозорецът с документацията изчезва. Тази команда не е като другите команди, които сте научили, в това -отношение, че се състои от два знака. Започва със знака C-x. Има -цяла редица от команди, които започват с C-x; много от тях имат нещо -общо с прозорци, файлове, буфери и свързаните с тях неща. Тези -команди са от два, три или четири знака. +отношение, че се състои от два знака. Започва със знака CONTROL-x. +Има цяла редица от команди, които започват с CONTROL-x; много от тях +имат нещо общо с прозорци, файлове, буфери и свързаните с тях неща. +Тези команди са от два, три или четири знака. * ВМЪКВАНЕ И ИЗТРИВАНЕ ---------------------- Ако искате да вмъкнете текст, просто го въведете. Знаците, които -могат да се виждат, като А, 7, * и т.н., се възприемат от Емакс като -текст и се вмъкват веднага. Въведете (клавишът за връщане в -началото на реда), за да вмъкнете знак за нов ред. - -Може да изтриете последния знак, който сте въвели, с въвеждане на -. е клавиш от клавиатурата -- същият, който -обикновено използвате извън Емакс, за да изтриете последния въведен от -вас знак. Обикновено е голям клавиш, на няколко реда разстояние от -клавиша , и обикновено е отбелязан с "Delete", "Del" или -"Backspace". - -Ако големият клавиш там е с етикет "Backspace", тогава той е този, -който ще използвате за . Може да има още един клавиш с -етикет "Delete" някъде другаде, но той не е . - -По-общо казано, изтрива знака точно преди текущото място на -курсора. - ->> Направете това сега -- напишете няколко знака, после ги изтрийте с - въвеждане на няколко пъти. Не се безпокойте, че този - файл ще бъде променен; вие няма да промените първоначалното - въведение. Това е ваше лично копие. +могат да се виждат, като А, 7, * и т.н., се вмъкват веднага. За да +вмъкнете знак за нов ред, натиснете (това е клавишът, който +понякога е отбелязван като „Enter“). + +За да изтриете знака непосредствено преди текущото положение на +курсора, въведете . Обикновено това е клавишът, отбелязван като +„Backspace“ – нормалният за това действие и извън Емакс. + +Може да има още един клавиш с етикет някъде другаде, но той +не е , за който става въпрос тук. + +>> Направете това сега – напишете няколко знака, после ги изтрийте с + въвеждане на няколко пъти. Не се безпокойте, че този файл ще + бъде променен; вие няма да промените първоначалното въведение. + Това е ваше лично копие. Когато ред от текста стане твърде дълъг, за да се събере в ред от -екрана, редът от текста се "продължава" на следващия ред. Обратна -наклонена черта ("\") (или, ако използвате графичен интерфейс, малка -изкривена стрелка) в дясната граница отбелязва ред, който е бил -продължен. +екрана, редът от текста се „продължава“ на следващия ред. Ако +използвате графичен дисплей, в малкото пространство отстрани на текста +(левият и десният „ръб“) ще се появят малки извити стрелки за +отбелязване къде редът продължава. Ако използвате текстов терминал, +продължените редове се отбелязват с обратна наклонена черта („\“) в +най-дясната колона на прозореца. >> Въведете текст, докато стигнете дясната граница, и продължете с вмъкването. Ще видите продължението на реда да се показва. ->> Използвайте няколко , за да изтриете текста, докато редът - се вмести в един екранен ред. Продължението на реда изчезва. +>> Използвайте няколко , за да изтриете текста, докато редът се + вмести в един екранен ред. Продължението на реда изчезва. Може да изтриете знака за нов ред точно както всеки друг знак. Изтриването на знака за нов ред между два реда ги слива в един ред. Ако полученият комбиниран ред е твърде дълъг, за да се вмести в ширината на екрана, той ще бъде показан като продължен ред. ->> Придвижете курсора в началото на ред и въведете . Това ще +>> Придвижете курсора в началото на ред и въведете . Това ще слее този ред с предишния. >> Въведете , за да вмъкнете наново знака за нов ред, който @@ -361,48 +353,52 @@ на повторенията; това включва вмъкването на текстови знаци. Повтарянето на текстов знак го вмъква няколко пъти. ->> Опитайте това сега -- въведете C-u 8 *, за да вмъкнете ********. +>> Опитайте това сега – въведете C-u 8 *, за да вмъкнете ********. Сега вие сте научили най-основните начини за въвеждане на нещо в Емакс и поправяне на грешки. Можете също така да изтривате думи или редове. Ето обобщение на изтриващите действия: - изтриване на знака точно преди курсора - C-d изтриване на знака точно след курсора - - M- изтриване на думата непосредствено преди курсора - M-d изтриване на думата след курсора - - C-k изтриване от мястото на курсора до края на реда - M-k изтриване до края на текущото изречение - -Забележете, че и C-d, сравнени с M- и M-d, -разширяват подобието, започнато от C-f и M-f (добре, не е -наистина контролиращ знак, но нека не се безпокоим за това). C-k и -M-k са подобни на C-e и M-e в смисъл, че едните са за редове, а -другите -- за изречения. - -Можете също да премахнете всяка част от буфера с един универсален -начин. Придвижете се до единия край на частта и въведете C-@ или -C-интервал (което и да е от двете). Придвижете се до другия край на -частта и въведете C-w. Това ще изреже целия текст между тези два -края. - ->> Придвижете курсора до знака "М" в началото на предишния абзац. ->> Въведете C-интервал. Емакс трябва да изведе съобщение "Mark set" в + Изтриване на знака точно преди курсора + C-d Изтриване на знака точно след курсора + + M- Изтриване на думата непосредствено преди курсора + M-d Изтриване на думата след курсора + + C-k Изтриване от мястото на курсора до края на реда + M-k Изтриване до края на текущото изречение + +Забележете, че и C-d, сравнени с M- и M-d, разширяват +подобието, започнато от C-f и M-f (добре, не е наистина +контролиращ знак, но нека не се безпокоим за това). C-k и M-k са +подобни на C-e и M-e в смисъл, че едните са за редове, а другите – за +изречения. + +Можете също да премахнете всяка част от текста по един универсален +начин. Придвижете се до единия край и въведете C- ( е +интервалът).. Придвижете се до другия край на текста, който искате да +изтриете. Докато го правите, Емакс осветява текстът между курсора и +мястото, където се въвели C-. Накрая въведете C-w. Това ще +изреже целия текст между тези два края. + +>> Придвижете курсора до знака „М“ в началото на предишния абзац. +>> Въведете C-. Емакс трябва да изведе съобщение „Mark set“ в долния край на екрана. ->> Придвижете курсора до буквата "р" в "край" на втория ред от абзаца. ->> Въведете C-w. Това ще изреже текста, започващ от "М" и завършващ - точно преди "р". +>> Придвижете курсора до буквата „р“ в „край“ на втория ред от абзаца. +>> Въведете C-w. Това ще изреже текста, започващ от „М“ и завършващ + точно преди „р“. -Разликата между "изрязване" (kill, cut) и "изтриване" (delete) е, че -"изрязаният" текст може да бъде вмъкнат наново, докато "изтритите" -неща не могат да се вмъкнат наново. Поставянето наново на изрязан -текст се нарича "вмъкване" (yank, paste). Общо казано, командите, -които отстраняват много текст, го изрязват (така че той да може да -бъде вмъкнат), докато командите, които отстраняват само един знак или +Разликата между „изрязване“ (kill, cut) и „изтриване“ (delete) е, че +„изрязаният“ текст може да бъде вмъкнат наново, докато „изтритите“ +неща не могат да се вмъкнат наново (обаче можете да отмените +изтриването – вж. по-долу). Поставянето наново на изрязан текст се +нарича „вмъкване“ (yank, paste). Общо казано, командите, които +отстраняват много текст, го изрязват (така че той да може да бъде +вмъкнат), докато командите, които отстраняват само един знак или изтриват само празни редове и знаци, извършват изтриване (така че не -можете да вмъкнете наново този текст). +можете да вмъкнете наново този текст). и C-d изтриват в +обикновения случай, когато няма префиксен аргумент. При наличие на +аргумент те отрязват. >> Придвижете курсора до началото на ред, който не е празен. Тогава въведете C-k, за да изрежете текста на този ред. @@ -414,14 +410,16 @@ C-k обработва числовите аргументи по специален начин: премахват се толкова на брой редове И тяхното съдържание. Това не е просто повторение. C-u 2 C-k изрязва два реда и техните знаци за нов ред; -въвеждането на C-k два пъти не прави това. +въвеждането два пъти на C-k не прави това. -Връщането обратно на текст се нарича "вмъкване". (Мислете за него +Връщането обратно на текст се нарича „вмъкване“. (Мислете за него като за изваждане обратно, или дръпване обратно, на текст, който е бил изрязан.) Можете да вмъквате изрязания текст или на същото място, -откъдето е бил премахнат, или на друго място в буфера, даже и в +откъдето е бил премахнат, или на друго място в буфера, или даже в различен файл. Можете да вмъквате един и същ текст няколко пъти; това -прави няколко копия от него. +прави няколко копия от него. Някои други редактори наричат +изрязването (kill) и вмъкването (yank) съответно изрязване (cut) и +поставяне (paste) (вж. Речника на Ръководството на Емакс). Командата за вмъкване е C-y. Тя вмъква наново последния изрязан текст в текущото място на курсора. @@ -466,31 +464,30 @@ -------- Ако направите промяна в текста и след това решите, че това е било -грешка, вие можете да отмените промяната с командата за отменяне, C-x -u. +грешка, вие можете да отмените промяната с командата за отменяне, C-/. -Обикновено C-x u отменя промените, направени от една команда; ако -повтаряте C-x u няколко пъти последователно, всяко повторение отменя -още една команда. +Обикновено C-/ отменя промените, направени от една команда; ако +повтаряте C-/ няколко пъти последователно, всяко повторение отменя още +една команда. Но има две изключения: командите, които не променят текста, не се броят (това включва придвижването на курсора и скролиращите команди), и самовмъкващите се знаци обикновено се обработват на групи, всяка до -20 знака. (Това намалява броя на C-x u, които трябва да въведете, за -да отмените въведен текст.) - ->> Изрежете този ред с C-k, след това въведете C-x u и той трябва да - се появи отново. - -C-_ е алтернативна отменяща команда; тя работи точно като C-x u, но е -по-лесна за въвеждане няколко пъти последователно. Недостатъкът на -C_- е, че на някои клавиатури не е очевидно как трябва да се въведе. -Затова осигуряваме и C-x u. На някои терминали може да въведете C-_ с -въвеждане на /, докато задържате CONTROL. - -Числов аргумент към C-_ или C-x u действа като брояч на повторенията. - -Може да отменята изтриване на текст точно както отменяте изрязване на +20 знака. (Това намалява броя на C-/, които трябва да въведете, за да +отмените въведен текст.) + +>> Изрежете този ред с C-k, след това въведете C-/ и той трябва да се + появи отново. + +C-_ е алтернативна отменяща команда; тя работи точно като C-/. На +някои терминали въвеждането на C-/ всъщност изпраща C-_ на Емакс. +Като алтернатива, C-x u работи точно като C-/, но е по-неудобна за +въвеждане. + +Числов аргумент към C-/, C-_ или C-x u действа като брояч на +повторения. + +Може да отменяте изтриване на текст точно както отменяте изрязване на текст. Различието между изрязването на нещо и изтриването му въздейства дали ще може да го извадите с C-y; за отменянето няма разлика между двата вида. @@ -501,35 +498,35 @@ За да направите текста, който редактирате, постоянен, трябва да го сложите във файл. В противен случай той ще изчезне, когато Емакс -приключи. За да сложите вашия текст във файл, трябва да "намерите" -файла преди да въвеждате текст. (Това също се нарича "посещаване" на -файла.) +приключи. За да сложите вашия текст във файл, трябва да „намерите“ +(find) файла преди да въвеждате текст. (Това също се нарича +„посещаване“ (visit) на файл.) Намиране на файл означава, че виждате съдържанието му в Емакс. В много случаи това е като да редактирате самия файл. Обаче промените, които правите, използвайки Емакс, не остават постоянни, докато не -"запишете" файла. Това е така, за да се предотврати оставянето на -полупроменен файл в системата, когато не искате това. Дори когато +„запишете“ (save) файла. Това е така, за да се предотврати оставянето +на полупроменен файл в системата, когато не искате това. Дори когато записвате, Емакс оставя началния файл под променено име, в случай, че по-късно решите, че вашите промени са били грешка. -Ако погледнете в дъното на екрана, ще видите ред, който започва и -завършва с тирета и започва с "-b:-- TUTORIAL.bg" или нещо подобно. -Тази част от екрана показва името на файла, който сте посетили. Точно -сега вие сте посетили файл, наречен "TUTORIAL.bg", който е вашето -лично копие-чернова на Емакс въведението. Когато намерите файл в -Емакс, името на този файл ще се появи на същото място. +Ако погледнете в дъното на екрана, ще видите ред, който започва с +тирета – „ b:--- TUTORIAL.bg“ или нещо подобно. Тази част от екрана +показва името на файла, който сте посетили. Точно сега вие сте +посетили файл, наречен „TUTORIAL.bg“, който е вашето лично +копие-чернова на Емакс въведението. Когато намерите файл в Емакс, +името на този файл ще се появи на това място. Особеност на командата за намиране на файл е, че трябва да кажете -името на файла, който искате. Ние го наричаме "четене на аргумент от -терминала" (в този случай аргументът е името на файла). След като +името на файла, който искате. Казваме, че командата „чете на +аргумент“ (в този случай аргументът е името на файла). След като въведете командата C-x C-f Намиране на файл Емакс ви подканя да въведете името на файла. Името на файла, което напишете, се появява в дъното на екрана. Редът в дъното на екрана се -нарича минибуфер, когато се използва за този вид вход. Можете да +нарича минибуфер, когато се използва за този вид въвеждане. Можете да използвате обикновените команди за редактиране на Емакс, за да редактирате името на файла. @@ -541,35 +538,36 @@ Така че не намирате файл. Когато приключите с въвеждането на името на файла, въведете , -за да покажете това. Тогава C-x C-f тръгва да работи и намира файла, -който сте избрали. Минибуферът изчезва, когато командата C-x C-f -свърши. +за да завършите. Минибуферът изчезва и командата C-x C-f тръгва да +работи и намира файла, който сте избрали. След малко съдържанието на файла се появява на екрана и вие можете да редактирате съдържанието му. Когато пожелаете да запазите вашите промени за постоянно, въведете командата - C-x C-s Запазване на файла + C-x C-s Запис (save) на файла Това копира текста от Емакс във файла. Първия път, когато това се направи, Емакс преименува началния файл с ново име, така че той да не -се изгуби. Новото име се построява с добавяне на "~" в края на името +се изгуби. Новото име се построява с добавяне на „~“ в края на името на началния файл. Когато запазването е свършило, Емакс извежда името на файла, който е бил записан. Трябва да записвате достатъчно често, така че да не -изгубите много работа, ако системата се срине по някаква причина. +изгубите много работа, ако системата се срине по някаква причина +(вж. раздела „Автоматичен запис“ по-долу). ->> Въведете C-x C-s, запазвайки вашето копие от въведението. - Това трябва да изведе "Wrote ...TUTORIAL.bg" в дъното на екрана. +>> Въведете C-x C-s TUTORIAL.bg . + Това ще запише въведението във файл с име TUTORIAL.bg и ще покаже + „Wrote ...TUTORIAL.bg“ в дъното на екрана. Може да намерите съществуващ файл, да го разгледате и да го редактирате. Можете също да намерите файл, който не съществува. Това е начинът за създаване на нови файлове в Емакс: намирате файла, който ще бъде в началото празен, и тогава започвате вмъкването на текста за -файла. Когато говорите за "записване" на файл, Емакс всъщност ще -създаде файла с текста, който сте въвели. Оттам нататък може да -считате, че редактирате вече съществуващ файл. +файла. Когато искате „запис“ на файл, Емакс всъщност ще създаде файла +с текста, който сте въвели. Оттам нататък може да считате, че +редактирате вече съществуващ файл. * БУФЕРИ @@ -579,53 +577,50 @@ Можете да превключите обратно към него, като го намерите пак с C-x C-f. По този начин може да получите доста на брой файлове в Емакс. ->> Създайте файл с име "foo", въвеждайки C-x C-f foo . - Вмъкнете малко текст, редактирайте го и запазете "foo" с въвеждане - на C-x C-s. - Накрая въведете C-x C-f TUTORIAL.bg , за да се върнете - обратно във въведението. - -Емакс запазва текста на всеки файл в обект, наричан "буфер". -Намирането на файл прави нов буфер в Емакс. За да видите списък на -буферите, които в момента съществуват във вашия Емакс, въведете - - C-x C-b Показване на буферите - ->> Опитайте C-x C-b сега. - -Вижте как всеки буфер има име, а понякога и име на файл за файла, -чието съдържание държи. ВСЕКИ текст, който виждате в Емакс прозорец, -е винаги част от някакъв буфер. - ->> Въведете C-x 1, за да махнете списъка с буферите. - -Когато имате няколко буфера, само един от тях е "текущ" в даден момент +Емакс съхранява текста на всеки файла в обект, наричан „буфер“. +Намирането на файл създава нов буфер вътре в Емакс. За да видите +списък с всички съществуващи буфери, въведете + + C-x C-b Списък на буферите + +>> Опитайте C-x C-b още сега. + +Забележете, че всеки буфер има име, а също може да има и име на файл, +чието съдържание се пази в буфера. ВСЕКИ текст, който виждате в +прозорец на Емакс, винаги е част от някой буфер. + +>> Въведете C-x 1, за да махнете списъка на буфери. + +Когато имате няколко буфера, само един от тях е „текущ“ в даден момент от време. Това е буферът, който редактирате. Ако искате да -редактирате друг буфер, се нуждаете от "превключване" към него. Ако +редактирате друг буфер, се нуждаете от „превключване“ към него. Ако искате да се превключите към буфер, който съответства на файл, можете да го направите, като просто посетите файла отново с C-x C-f. Но има и по-лесен начин: използването на командата C-x b. В тази команда трябва да въведете името на буфера. ->> Въведете C-x b foo , за да се върнете към буфера "foo", - който държи текста на файла "foo". Тогава въведете C-x b TUTORIAL - , за да се върнете в това въведение. +>> Суздайте файл с име „foo“ чрез въвеждане на C-x C-f foo . + Тогава въведете C-x b TUTORIAL.bg , за да се върнете в това + въведение. В повечето случаи името на буфера е същото като името на файла (без частта в коя директория се намира). Обаче това не винаги е вярно. -Списъкът с буферите, който правите с C-x C-b, винаги ви показва името -на всеки буфер. +Списъкът с буферите, който правите с C-x C-b, винаги ви показва и +името на буфера, и името на файла. ВСЕКИ текст, който виждате в Емакс прозорец, е винаги част от някакъв -буфер. Някои буфери не съответстват на файлове. Например буферът, -именуван "*Buffer List*", не съответства на файл. Това е буферът, -който съдържа списъка с буферите, които сте направили с C-x C-b. -Буферът, именуван "*Messages*", също не съответства на файл; той +буфер. Някои буфери не съответстват на файлове. Буферът, именуван +„*Buffer List*“, които сте направили с C-x C-b, не съответства на +файл. Това е буферът, който съдържа списъка с буферите. Този буфер +TUTORIAL.bg отначало не е бил към файл, но вече е, защото в предишния +раздел въведохте C-x C-s и го записахте във файл. + +Буферът, именуван „*Messages*“, също не съответства на файл; той съдържа съобщенията, които се появяват в дъното на екрана по време на Емакс сесията. >> Въведете C-x b *Messages* , за да видите буфера със - съобщенията. След това въведете C-x b TUTORIAL , за да + съобщенията. След това въведете C-x b TUTORIAL.bg , за да се върнете към това въведение. Ако направите промени в текста на един файл и тогава намерите друг @@ -636,14 +631,15 @@ буфера на първия файл. Ще е неудобно да превключите обратно с C-x C-f, за да го запазите с C-x C-s. Така че имаме - C-x s Запазва някои буфери + C-x s Запис на някои (some) буфери C-x s пита за всеки буфер, който съдържа промени, които не сте -запазили. Въпросът за всеки такъв буфер е дали да бъде запазен. +запазили. Командата задава въпрос за всеки такъв буфер дали да бъде +запазен. ->> Вмъкнете ред в текста, след това въведете C-x s. - Трябва да бъдете попитан дали да запазите буфера, именуван "TUTORIAL". - Отговорете с "да" на въпроса, като въведете "y". +>> Вмъкнете ред с текст, след това въведете C-x s. + Трябва да бъдете попитан дали да запазите буфера, именуван „TUTORIAL.bg“. + Отговорете с „да“ на въпроса, като въведете „y“ (yes). * РАЗШИРЯВАНЕ НА НАБОРА КОМАНДИ @@ -659,53 +655,47 @@ Тези команди са общо взето полезни, но по-малко, отколкото командите, които досега сте научили. Вече видяхте две от тях: командите върху -файлове C-x C-f за намиране (Find) и C-x C-s за запазване (Save). -Друг пример е командата за край на Емакс сесията -- това е командата -C-x C-c. (Не се безпокойте, че може да изгубите всички промени, които -сте направили; C-x C-c предлага да запази всеки променен файл, преди -да премахне Емакс.) - -C-z е командата за излизане от Емакс *временно* -- така че да можете -да се върнете към същата Емакс сесия по-късно. - -На системи, които позволяват това, C-z "изоставя" (suspend) Емакс, -т.е. връща към обвивката, но не разрушава Емакс. В повечето обвивки -можете да продължите Емакс сесията с командата "fg" или с "%emacs". - -На системи, които не позволяват изоставяне, C-z създава нова -подобвивка, която върви под Емакс, за да ви даде шанс да стартирате -други програми и да се върнете към Емакс след това; това не е истинско -"излизане" от Емакс. В този случай командата на обвивката "exit" е -обикновеният начин да се върнете обратно към Емакс от подобвивката. - -Моментът да използвате C-x C-c е, когато искате да излезете от -системата. Това е и правилната команда за излизане, когато Емакс е -извикан от пощенска програма или други странични програми, тъй като те -може и да не знаят как да се справят с изоставянето на Емакс. При -обикновени обстоятелства, обаче, ако не сте тръгнали да излизате от -системата, по-добре е да изоставите Емакс с C-z, вместо да излизате от -Емакс. +файлове C-x C-f за намиране (Find) и C-x C-s за запис (Save). Друг +пример е командата за край на Емакс сесията -- това е командата C-x +C-c. (Не се безпокойте, че може да изгубите всички промени, които сте +направили; C-x C-c предлага да запази всеки променен файл, преди да +премахне Емакс.) + +Ако сте на графичен дисплей, не е нужна специална команда за +придвижване от Емакс към друго работещо приложение. Можете да +извършите това с мишката или с команди към управлението на прозорци. +Но ако сте на текстов терминал, който може да показва само едно +приложение в даден момент, се нуждаете от начин за „изоставяне“ +(suspend) на Емакс и придвижване към други програми. + +C-z е командата за излизане от Емакс *временно* – така че да можете да +се върнете към същата Емакс сесия по-късно. Когато Емакс върви на +текстов терминал, C-z „изоставя“ Емакс, т.е. връща се към обвивката, +но не унищожава задачата (job) на Емакс. В повечето популярни обвивки +можете да продължите Емакс с командата „fg“ или с „%emacs“. Има много команди C-x. Ето списък на тези, които сте научили: - C-x C-f Намиране на файл. - C-x C-s Запазване на файл. - C-x C-b Списък на буферите. - C-x C-c Излизане от Емакс. - C-x 1 Изтриване на всички прозорци освен един. - C-x u Отмяна. - -Именуваните разширени команди са команди, които се използват даже още -по-рядко, или команди, които се използват само в определени режими. -Пример е командата replace-string, която заменя глобално един низ с -друг. Когато въведете M-x, Емакс ви подсказва в дъното на екрана с -M-x и вие трябва да въведете името на командата, в този случай -"replace-string". Просто въведете "repl s" и Емакс ще завърши -името. ( е клавишът Tab, обикновено намиращ се над клавиша -CapsLock или клавиша Shift близо до левия край на клавиатурата.) -Завършете името на командата с . - -Командата replace-string изисква два аргумента -- низът, който ще бъде + C-x C-f Намиране на файл + C-x C-s Запис на файл + C-x s Запис на някои буфери + C-x C-b Списък на буферите + C-x b Превключване към буфер + C-x C-c Излизане от Емакс + C-x 1 Изтриване на всички прозорци освен един + C-x u Отмяна + +Именуваните разширени (X) команди са команди, които се използват даже +още по-рядко, или команди, които се използват само в определени +режими. Пример е командата replace-string, която заменя глобално един +низ с друг. Когато въведете M-x, Емакс ви подсказва в дъното на +екрана с M-x и вие трябва да въведете името на командата, в този +случай „replace-string“. Просто въведете „repl s“ и Емакс ще +завърши името. ( е клавишът Tab, обикновено намиращ се над +клавиша CapsLock или клавиша Shift близо до левия край на +клавиатурата.) Завършете името на командата с . + +Командата replace-string изисква два аргумента – низът, който ще бъде заменян, и низът, който ще го замени. Трябва да завършите въвеждането на всеки аргумент с . @@ -713,28 +703,26 @@ Тогава въведете M-x repl sпроменяизменя Забележете как този ред се променя: вие заменихте думата - п-р-о-м-е-н-я с "изменя", където и да се намира след началното + п-р-о-м-е-н-я с „изменя“, където и да се намира след началното място на курсора. -ЗАБЕЛЕЖКА: Превключването към въвеждане на кирилски буква става с C-\. - * АВТОМАТИЧНО ЗАПАЗВАНЕ ----------------------- Когато сте направили промени във файл, но още не сте го запазили, те могат да бъдат загубени, ако компютърът внезапно се изключи. За да ви -предпази от такива ситуации, Емакс периодично запазва "автоматично -запазван" файл за всеки файл, който редактирате. Името на автоматично +предпази от такива ситуации, Емакс периодично запазва „автоматично +запазван“ файл за всеки файл, който редактирате. Името на автоматично запазвания файл има # в началото и в края; например, ако вашият файл е -с име "hello.c", името на неговия автоматично запазван файл ще бъде +с име „hello.c“, името на неговия автоматично запазван файл ще бъде "#hello.c#". Когато запазвате файл по обикновения начин, Емакс изтрива неговия автоматично записван файл. Ако компютърът зависне, може да възстановите вашата автоматично запазвана редакция, като намерите файла както обикновено (файлът, който сте редактирали, не автоматично запазвания) и след това въведете -M-x recover file. Когато командата изиска потвърждение, +M-x recover-file . Когато командата изиска потвърждение, въведете yes, за да продължите и да възстановите автоматично запазваните данни. @@ -743,28 +731,28 @@ -------------- Ако Емакс види, че въвеждате многознакови команди бавно, ще ви ги -покаже в дъното на екрана, в област, наричана "ехо област". Ехо +покаже в дъното на екрана, в област, наричана „ехо област“. Ехо областта обхваща последния ред от екрана. * РЕД НА РЕЖИМА ---------------- -Редът точно над ехо областта се нарича "ред на режима" (mode line). +Редът точно над ехо областта се нарича „ред на режима“ (mode line). Той показва нещо като: --b:** TUTORIAL.bg (Fundamental)--L670--58%---------------- + b:**- TUTORIAL.bg 63% L744 (Fundamental) Този ред дава полезна информация за състоянието на Емакс и текста, който редактирате. -Вече знаете какво означава името на файла -- това е файлът, който сте -намерили. -NN%-- показва вашата текуща позиция в текста; това -означава, че NN процента от текста е над върха на екрана. Ако -началото на файла е на екрана, ще се показва --Top-- (връх) вместо ---00%--. Ако края на файла е на екрана, ще се показва --Bot-- (дъно). -Ако гледате текст, който е толкова малък, че се показва изцяло на -екрана, редът на режима ще изведе --All--. +Вече знаете какво означава името на файла – това е файлът, който сте +намерили. NN% показва вашата текуща позиция в текста; това означава, +че NN процента от текста е над върха на екрана. Ако началото на файла +е на екрана, ще се показва „Top“ (връх) вместо „ 0%“. Ако края на +файла е на екрана, ще се показва „Bot“ (bottom – дъно). Ако гледате +текст, който е толкова малък, че се показва изцяло на екрана, редът на +режима ще изведе „All“ (всичко). Знакът L и цифрите показват мястото по друг начин: това е номерът на текущия ред на точката. @@ -776,13 +764,13 @@ Частта от реда на режима вътре в скобите е, за да ви покаже в какъв режим на редактиране се намирате. Подразбиращият се режим е Fundamental (Основен), който използвате в момента. Това е пример за -"главен режим" (major mode). +„главен режим“ (major mode). Емакс има много главни режими. Някои от тях са предвидени за редактиране на различни езици и/или видове текст, като например режим -Лисп, режим Текст и други. Във всеки един момент от време точно един -главен режим е активен и неговото име може винаги да бъде намерено в -реда на режима, точно както "Fundamental" сега. +Lisp (Лисп), режим Text (текст) и други. Във всеки един момент от +време точно един главен режим е активен и неговото име може винаги да +бъде намерено в реда на режима, точно както „Fundamental“ сега. Всеки главен режим прави някои команди да се държат по различен начин. Например, има команди за редактиране на коментари в програми, и тъй @@ -793,9 +781,9 @@ команда за превключване към режим Fundamental. Когато редактирате текст на естествен език, като този файл, -най-вероятно трябва да използвате режим Текст (text). +най-вероятно трябва да използвате режим Text (текст). ->> Въведете M-x text mode. +>> Въведете M-x text-mode . Не се безпокойте, никоя от Емакс командите, които сте научили, няма да се промени по някакъв съществен начин. Но може да забележите, че M-f @@ -804,13 +792,13 @@ разделители на думи. Главните режими обикновено правят малки промени като тази: повечето -команди вършат "същата работа" във всеки главен режим, но работят по +команди вършат „същата работа“ във всеки главен режим, но работят по малко по-различен начин. За да видите документацията на вашия текущ главен режим, въведете C-h m. ->> Употребете C-u C-v веднъж или повече пъти, за да докарате този ред +>> Употребете C-l C-l веднъж или повече пъти, за да докарате този ред близо до върха на екрана. >> Въведете C-h m, за да видите как текстовият режим се различава от основния режим. @@ -824,20 +812,20 @@ малки режими, да използвате един малък режим, или да използвате някаква комбинация от няколко малки режима. -Един главен режим, който е много полезен, особено за редактиране на +Един малък режим, който е много полезен, особено за редактиране на текст на естествен език, е режимът на автоматично запълване (Auto Fill mode). Когато този режим е включен, Емакс автоматично разделя реда при мястото между думите, когато вмъквате текст и направите ред, който е твърде дълъг. Може да включите режима на автоматично запълване, като изпълните M-x -auto fill mode. Когато режимът е включен, може да го -изключите с M-x auto fill mode. Ако режимът е изключен, тази +auto-fill-mode . Когато режимът е включен, може да го +изключите с M-x auto-fill-mode. Ако режимът е изключен, тази команда го включва, а ако е включен, го изключва. Казваме, че -командата "обръща режима". +командата „превключва (toggle) режима“. ->> Въведете M-x auto fill mode сега. След това вмъкнете ред - от "asdf " отново и отново, докато не видите, че текстът се разделя +>> Въведете M-x auto-fill-mode сега. След това вмъкнете ред + от „asdf “ отново и отново, докато не видите, че текстът се разделя на два реда. Трябва да слагате интервали между думите, защото автоматичното запълване разделя редовете само при интервалите. @@ -866,51 +854,42 @@ на низ е придвижваща курсора команда; тя премества курсора на следващото място, където се среща низът. -Командата за търсене на Емакс се различава от командата за търсене на -повечето редактори по това, че тя е "постъпкова". Това означава, че +Командата за търсене на Емакс е „постъпкова“. Това означава, че търсенето се извършва още докато въвеждате текста, който търсите. Командата за започване на търсене е C-s за търсене напред, и C-r за търсене назад. НО ПОЧАКАЙТЕ! Не ги пробвайте сега. -Когато въведете C-s, ще забележите, че низът "I-search" се появява +Когато въведете C-s, ще забележите, че низът „I-search“ се появява като подсказка в ехо областта. Това ви казва, че Емакс е в това, което се нарича постъпково търсене, чакайки ви да въвеждате текста, който искате да търсите. приключва търсенето. >> Сега въведете C-s, за да започнете търсенето. БАВНО, буква по - буква, въведете думата "търсене", изчаквайки след въвеждането на + буква, въведете думата „курсор“, изчаквайки след въвеждането на всеки знак, за да може да забележите какво става с курсора. Сега - извършихте търсене на "търсене" веднъж. ->> Въведете отново C-s, за да търсите друго съвпадение с "търсене". ->> Сега въведете три пъти и вижте как се придвижва курсора. + извършихте търсене на „курсор“ веднъж. +>> Въведете отново C-s, за да търсите друго съвпадение с „курсор“. +>> Сега въведете четири пъти и вижте как се придвижва курсора. >> Въведете , за да прекратите търсенето. Забелязахте ли какво стана? Емакс, когато търси постъпково, се опитва да намери следващото съвпадение на низа, който се въвежда. За да -отидете на следващото съвпадение на "търсне", просто отново въведете +отидете на следващото съвпадение на „курсор“, просто отново въведете C-s. Ако няма такова съвпадение, Емакс бибипва и ви казва, че -търсенето е "провалено" (failing). C-g също прекратява търсенето. - -ЗАБЕЛЕЖКА: На някои системи въвеждането на C-s ще замрази екрана и вие -няма да може да видите повече реакция от Емакс. Това показва, че -"способност" на операционната система, наречена "управление на потока" -(flow control), е прихванала C-s и не го пропуска до Емакс. За да -размразите екрана, въведете C-q. Тогава вижте секцията "Спонтанно -включване на постъпковото търсене" (Spontaneous Entry to Incremental -Search) в ръководството на Емакс за съвет как да се справите с тази -"способност". - -Ако сте в средата на постъпково търсене и въведете , ще +търсенето е „провалено“ (failing). C-g също така прекратява +търсенето. + +Ако сте в средата на постъпково търсене и въведете , ще забележите, че последният знак в търсения низ се изтрива и търсенето се връща към последното място на търсене. Например, предположете, че -сте въвели "т", за да намерите първото съвпадение с "т". Сега, ако -въведете "ъ", курсорът ще се придвижи към първото съвпадение на "тъ". -Сега въведете . Това изтрива знака "ъ" от низа за търсене и -курсорът се премества назад, до първото съвпадение с "т". +сте въвели „к“, за да намерите първото съвпадение с „к“. Сега, ако +въведете „у“, курсорът ще се придвижи към първото съвпадение на „ку“. +Сега въведете . Това изтрива знака „у“ от низа за търсене и +курсорът се премества назад, до първото съвпадение с „к“. Ако сте в средата на търсене и въведете контролен или мета знак (с -няколко изключения -- знаците, които са специални по време на търсене, +няколко изключения – знаците, които са специални по време на търсене, като C-s и C-r), търсенето се прекратява. C-s започва търсене, което гледа за съвпадение с низа, даден за @@ -924,9 +903,11 @@ Една от привлекателните способности на Емакс е тази, че може да гледате повече от един прозорец на екрана в даден момент от време. +(Обърнете внимание, че Емакс използва думата „рамки“, описана в +следващия раздел, за това, което други приложения наричат „прозорец“. +Ръководството на Емак съдържа речника на термините на Емакс.) ->> Придвижете курсора до този ред и въведете C-u 0 C-l (това е - CONTROL-L, не CONTROL-1). +>> Придвижете курсора до този ред и въведете C-l C-l. >> Сега въведете C-x 2, което ще раздели екрана на два отделни прозореца. Двата прозореца показват това въведение. Курсорът @@ -935,7 +916,7 @@ >> Въведете C-M-v, за да скролирате долния прозорец. (Ако нямате истински клавиш META, въведете ESC C-v.) ->> Въведете C-x o ("o" от "other" -- "друг"), за да придвижите +>> Въведете C-x o („o“ от „other“ – „друг“), за да придвижите курсора в долния прозорец. >> Използвайте C-v и M-v в долния прозорец, за да го скролирате. Продължете четенето на тези насоки от въведението в горния @@ -946,32 +927,32 @@ преди. Може да продължите да използвате C-x o, за да превключвате между -прозорците. Всеки прозорец има собствено място на курсора, но само -един прозорец показва курсор. Всички обикновени команди за -редактиране се прилагат в прозореца, в който е курсорът. Ние наричаме -този прозорец "текущ прозорец". +прозорците. „Текущият прозорец“, където се извършва редактирането, е +този с явен курсор, който мига, когато не въвеждате. Другите прозорци +имат собствени положения на курсора. Ако Емакс е на графичен дисплей, +тези курсори ще са изчертани като немигащи празни кутии. Командата C-M-v е много полезна, когато редактирате текст в един прозорец и използвате другия прозорец просто за справка. Може да държите курсора винаги в прозореца, където редактирате, и да напредвате последователно в другия прозорец чрез C-M-v. -C-M-v е пример за знак CONTROL-META. Ако имате истински клавиш META, -може да въвеждате C-M-v, задържайки едновременно CONTROL и META, -докато въвеждате v. Няма значение дали CONTROL или META "е натиснат -първи", защото и двата клавиша действат, модифицирайки знака, който -сте въвели. +C-M-v е пример за знак CONTROL-META. Ако имате истински клавиш META +(или Alt), може да въвеждате C-M-v, задържайки едновременно CONTROL и +META, докато въвеждате „v“. Няма значение дали CONTROL или META „е +натиснат първи“, защото и двата клавиша действат, модифицирайки знака, +който натискате. -Ако нямате истински клавиш META и използвате ESC вместо това, редът -има значение: трябва да въвеждате ESC, последван от CONTROL-v, защото -CONTROL-ESC v няма да работи. Това е така, защото ESC е собствен -знак, а не модификатор. +Ако нямате истински клавиш META и използвате вместо това, редът +вече има значение: трябва да въвеждате , последван от CONTROL-v, +защото CONTROL- v няма да работи. Това е така, защото е +собствен знак, а не модификатор. >> Въведете C-x 1 (в горния прозорец), за да махнете долния прозорец. (Ако сте въвели C-x 1 в долния прозорец, това ще махне горния. -Мислете за тази команда като "Задръж точно един прозорец -- този, в -който съм сега".) +Мислете за тази команда като „Задръж точно един прозорец – този, в +който съм сега“.) Няма нужда да извеждате един и същи буфер в двата прозореца. Ако използвате C-x C-f, за да намерите файл в единия прозорец, другият @@ -989,22 +970,47 @@ изтриете долния. +* МНОЖЕСТВО РАМКИ +----------------- + +Емакс може да създава и „рамки“. Рамката (frame) е това, което +наричаме един набор от прозорци, заедно с техните менюта, плъзгачи, +ехо области и т.н. В графичен дисплей Емакс нарича „рамка“ това, +което повечето други приложения наричат „прозорец“. На екрана могат +да бъдат показвани няколко графични рамки едновременно. В текстов +терминал може да се показва само една рамка в даден момент от време. + +>> Въведете M-x make-frame . + Вижте как се появява нова рамка на екрана. + +В новата рамка можете да правите всичко, което правите и в +оригиналната рамка. Няма нищо специално в първата рамка. + +>> Въведете M-x delete-frame + Избраната рамка се премахва. + +Можете да премахвате рамки и по нормалния за това начин в графичната +система, най-често с натискане на бутона, отбелязан като „X“ в горен +ъгъл на рамката. Ако премахнете и последната рамка на работещ Емакс, +това ще излезе от Емакс. + + * ВЛОЖЕНИ НИВА НА РЕДАКТИРАНЕ ----------------------------- -Понякога ще се озовете в това, което се нарича "вложено ниво на -редактиране" (recursive editing level). Това се отбелязва от +Понякога ще се озовете в това, което се нарича „вложено ниво на +редактиране“ (recursive editing level). Това се отбелязва от квадратни скоби в реда на режима, които ограждат скобите около името на главния режим. Например, може да видите [(Fundamental)] вместо (Fundamental). -За да се махнете от вложеното ниво на редактиране, въведете ESC ESC -ESC. Това е обща команда за "излизане". Може и да я използвате за -махане (скриване) на допълнителни прозорци, както и за да се махнете -от минибуфера. +За да се махнете от вложеното ниво на редактиране, въведете + . Това е обща команда за „излизане“. Може и да я +използвате за махане (скриване) на допълнителни прозорци, както и за +да се махнете от минибуфера. ->> Въведете M-x, за да влезете в минибуфер; тогава въведете ESC ESC - ESC, за да излезете. +>> Въведете M-x, за да влезете в минибуфер; тогава въведете + , за да излезете. Не можете да използвате C-g, за да излезете от вложено ниво на редактиране. Това е така, защото C-g се използва за прекратяване на @@ -1028,13 +1034,10 @@ помогне. Ако сте въвели C-h и решите, че не се нуждаете от помощ, просто въведете C-g, за да я прекратите. -(Някои компютри променят значението на знака C-h. Те наистина не -трябва да правят това като сляпа мярка за всички потребители, така че -имате основание да се оплачете на системния администратор. Между -другото, ако C-h не извежда съобщение за помощ в дъното на екрана, -опитайте клавиша F1 или M-x help вместо това.) +(Ако C-h не извежда съобщение за помощ в дъното на екрана, опитайте +клавиша F1 или M-x help вместо това.) -Най-основното помощно средство е C-h c. Въведете C-h, знака c и +Най-основното помощно средство е C-h c. Въведете C-h, знака „c“ и команден знак или последователност от знаци, образуващи команда; тогава Емакс ще изведе много кратко описание на командата. @@ -1045,10 +1048,10 @@ C-p runs the command previous-line (C-p изпълнява командата предишен-ред) -Това ви казва "името на функцията". Имената на функциите се използват +Това ви казва „името на функцията“. Имената на функциите се използват най-вече за настройване и разширяване на Емакс. Но тъй като имената на функциите са избрани така, че да показват какво прави командата, те -могат да служат и за много кратка документация -- достатъчна, за да ви +могат да служат и за много кратка документация – достатъчна, за да ви припомни команди, които вече сте учили. Многознакови команди, като C-x C-s и (ако нямате клавиш META или EDIT @@ -1070,7 +1073,7 @@ C-h f Описва функция. Трябва да въведете името на функцията. ->> Опитайте с въвеждане на C-h f previous-line. +>> Опитайте с въвеждане на C-h f previous-line . Това извежда цялата информация, която Емакс знае за функцията, която осъществява командата C-p. @@ -1086,11 +1089,12 @@ двузнакова последователност от клавиши, която пуска същата команда. ->> Въведете C-h a file. +>> Въведете C-h a file . Това извежда в друг прозорец списък на всички M-x команди, които -съдържат "file" в тяхното име. Ще видите знакови команди като C-x -C-f, изброени измежду съответните имена на команди, като find-file. +съдържат „file“ (файл) в тяхното име. Ще видите знакови команди като +C-x C-f, изброени измежду съответните имена на команди, като +find-file. >> Въведете C-M-v, за да скролирате помощния прозорец. Направете го няколко пъти. @@ -1098,7 +1102,7 @@ >> Въведете C-x 1, за да изтриете помощния прозорец. C-h i Четене на ръководства (Info). Тази команда ви праща в - специален буфер, наричан "*info*", където може да + специален буфер, наричан „*info*“, където може да четете ръководствата на инсталираните във вашата система пакети. Въведете m emacs , за да четете ръководството на Емакс. Ако никога преди това @@ -1113,8 +1117,8 @@ ----------------- Може да научите повече за Емакс с четене на неговото ръководство, или -като книга, или в Инфо (използвайте менюто помощ (Help) или въведете -F10 h r). Две възможности, които може да желаете в началото, са +като книга, или в Инфо (използвайте менюто Помощ (Help) или въведете +C-h r). Две възможности, които може да желаете в началото, са довършване (completion), което спестява писане, и dired, който опростява боравенето с файлове. @@ -1122,8 +1126,8 @@ искате да превключите към буфера *Messages*, може да въведете C-x b *M и Емакс ще запълни останалата част от името на буфера, доколкото може да се определи от това, което сте въвели. Довършването -е описано в Инфо-ръководството на Емакс в страницата "Довършване" -("Completion"). +е описано в Инфо-ръководството на Емакс в страницата „Довършване“ +(„Completion“). Dired ви позволява да гледате списъка от файлове в директория (и като възможност: нейните поддиректории), да се придвижвате в този списък, @@ -1138,13 +1142,11 @@ * ЗАКЛЮЧЕНИЕ ------------ -Запомнете: за да излезете безвъзвратно от Емакс, използвайте C-x C-c. -За да излезете временно в обвивка, така че да се върнете в Емакс -по-късно, използвайте C-z. +За да излезете безвъзвратно от Емакс, използвайте C-x C-c. Това въведение е предвидено да бъде разбираемо за всички нови -потребители, така че ако намирате нещо неясно, не се самообвинявайте --- оплачете се! +потребители, така че ако намирате нещо неясно, не се самообвинявайте – +оплачете се! * КОПИРАНЕ @@ -1160,26 +1162,28 @@ This version of the tutorial, like GNU Emacs, is copyrighted, and comes with permission to distribute copies on certain conditions: -Copyright (C) 1985, 1996, 1998, 2001-2012 Free Software Foundation, Inc. - - Permission is granted to anyone to make or distribute verbatim copies - of this document as received, in any medium, provided that the - copyright notice and permission notice are preserved, - and that the distributor grants the recipient permission - for further redistribution as permitted by this notice. - - Permission is granted to distribute modified versions - of this document, or of portions of it, - under the above conditions, provided also that they - carry prominent notices stating who last altered them. - -Условията за копиране на самия Емакс са по-сложни, но в същия дух. + Copyright (C) 1985, 1996, 1998, 2001-2012 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs. If not, see . + Моля, прочетете файла COPYING и тогава давайте копия на ГНУ Емакс на свои приятели. Помогнете да спрем затвореността на програмите -("притежанието"), като използваме, пишем и споделяме свободен софтуер! +(„притежанието“), като използваме, пишем и споделяме свободен софтуер! -Преводът на български е извършен от Огнян Кулев -. +Преводът на български е извършен от Огнян Кулев . ;;; Local Variables: ;;; coding: windows-1251 === modified file 'etc/tutorials/TUTORIAL.translators' --- etc/tutorials/TUTORIAL.translators 2012-01-17 14:16:42 +0000 +++ etc/tutorials/TUTORIAL.translators 2012-01-21 14:58:38 +0000 @@ -2,8 +2,8 @@ tutorial. * TUTORIAL.bg: -Author: Ognyan Kulev -Maintainer: Ognyan Kulev +Author: Ognyan Kulev +Maintainer: Ognyan Kulev * TUTORIAL.cn: Author: Sun Yijiang ------------------------------------------------------------ revno: 106904 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Sat 2012-01-21 20:38:18 +0900 message: international/mule-cmds.el (prefer-coding-system): Show a warning message if the default value of file-name-coding-system was not changed. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-21 10:02:34 +0000 +++ lisp/ChangeLog 2012-01-21 11:36:42 +0000 @@ -1,3 +1,9 @@ +20122-01-21 Kenichi Handa + + * international/mule-cmds.el (prefer-coding-system): Show a + warning message if the default value of file-name-coding-system + was not changed. + 2012-01-21 JГ©rГ©my Compostella * windmove.el (windmove-reference-loc): Fix === modified file 'lisp/international/mule-cmds.el' --- lisp/international/mule-cmds.el 2012-01-19 07:21:25 +0000 +++ lisp/international/mule-cmds.el 2012-01-21 11:36:42 +0000 @@ -418,7 +418,10 @@ (if (memq eol-type '(0 1 2)) (setq base (coding-system-change-eol-conversion base eol-type))) - (set-default-coding-systems base))) + (set-default-coding-systems base) + (if (called-interactively-p 'interactive) + (or (eq base default-file-name-coding-system) + (message "The default value of `file-name-coding-system' was not changed because the specified coding system is not suitable for file names."))))) (defvar sort-coding-systems-predicate nil "If non-nil, a predicate function to sort coding systems. ------------------------------------------------------------ revno: 106903 committer: Andreas Schwab branch nick: emacs timestamp: Sat 2012-01-21 11:54:19 +0100 message: * process.c (read_process_output): Use p instead of XPROCESS (proc). (send_process): Likewise. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-01-19 10:38:31 +0000 +++ src/ChangeLog 2012-01-21 10:54:19 +0000 @@ -1,3 +1,8 @@ +2012-01-21 Andreas Schwab + + * process.c (read_process_output): Use p instead of XPROCESS (proc). + (send_process): Likewise. + 2012-01-19 Martin Rudalics * window.c (save_window_save, Fcurrent_window_configuration) === modified file 'src/process.c' --- src/process.c 2012-01-19 07:21:25 +0000 +++ src/process.c 2012-01-21 10:54:19 +0000 @@ -5060,9 +5060,8 @@ proc_buffered_char[channel] = -1; } #ifdef HAVE_GNUTLS - if (XPROCESS (proc)->gnutls_p) - nbytes = emacs_gnutls_read (XPROCESS (proc), - chars + carryover + buffered, + if (p->gnutls_p) + nbytes = emacs_gnutls_read (p, chars + carryover + buffered, readmax - buffered); else #endif @@ -5527,9 +5526,8 @@ #endif { #ifdef HAVE_GNUTLS - if (XPROCESS (proc)->gnutls_p) - written = emacs_gnutls_write (XPROCESS (proc), - buf, this); + if (p->gnutls_p) + written = emacs_gnutls_write (p, buf, this); else #endif written = emacs_write (outfd, buf, this); ------------------------------------------------------------ revno: 106902 author: JГѓВ©rГѓВ©my Compostella committer: martin rudalics branch nick: trunk timestamp: Sat 2012-01-21 11:02:34 +0100 message: Fix windmove-reference-loc miscalculation. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-01-21 00:46:09 +0000 +++ lisp/ChangeLog 2012-01-21 10:02:34 +0000 @@ -1,3 +1,8 @@ +2012-01-21 JГ©rГ©my Compostella + + * windmove.el (windmove-reference-loc): Fix + windmove-reference-loc miscalculation. + 2012-01-21 Jay Belanger * calc/calc-units.el (math-put-default-units): Don't use "1" as a === modified file 'lisp/windmove.el' --- lisp/windmove.el 2012-01-19 07:21:25 +0000 +++ lisp/windmove.el 2012-01-21 10:02:34 +0000 @@ -417,17 +417,17 @@ (- (nth 3 edges) 1)))) (cond ((> effective-arg 0) - top-left) + top-left) ((< effective-arg 0) - bottom-right) + bottom-right) ((= effective-arg 0) - (windmove-coord-add - top-left - (let ((col-row - (posn-col-row - (posn-at-point (window-point window) window)))) - (cons (- (car col-row) (window-hscroll window)) - (cdr col-row))))))))) + (windmove-coord-add + top-left + ;; Don't care whether window is horizontally scrolled - + ;; `posn-at-point' handles that already. See also: + ;; http://lists.gnu.org/archive/html/emacs-devel/2012-01/msg00638.html + (posn-col-row + (posn-at-point (window-point window) window)))))))) ;; This uses the reference location in the current window (calculated ;; by `windmove-reference-loc' above) to find a reference location ------------------------------------------------------------ revno: 106901 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-01-20 19:15:07 -0800 message: Document inhibit-local-variables-regexps in the lispref. * doc/lispref/modes.texi (Auto Major Mode): * doc/lispref/variables.texi (File Local Variables): Mention inhibit-local-variables-regexps. * etc/NEWS: Markup. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2012-01-19 10:38:31 +0000 +++ doc/lispref/ChangeLog 2012-01-21 03:15:07 +0000 @@ -1,3 +1,9 @@ +2012-01-21 Glenn Morris + + * modes.texi (Auto Major Mode): + * variables.texi (File Local Variables): + Mention inhibit-local-variables-regexps. + 2012-01-19 Martin Rudalics * windows.texi (Window Configurations): Rewrite references to === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/modes.texi 2012-01-21 03:15:07 +0000 @@ -588,6 +588,18 @@ is @code{nil}, @code{set-auto-mode} does not check the @w{@samp{-*-}} line, or near the end of the file, for any mode tag. +@vindex inhibit-local-variables-regexps +There are some file types where it is not appropriate to scan the file +contents for a mode specifier. For example, a tar archive may happen to +contain, near the end of the file, a member file that has a local +variables section specifying a mode for that particular file. This +should not be applied to the containing tar file. Similarly, a tiff +image file might just happen to contain a first line that seems to +match the @w{@samp{-*-}} pattern. For these reasons, both these file +extensions are members of the list @var{inhibit-local-variables-regexps}. +Add patterns to this list to prevent Emacs searching them for local +variables of any kind (not just mode specifiers). + If @var{keep-mode-if-same} is non-@code{nil}, this function does not call the mode command if the buffer is already in the proper major mode. For instance, @code{set-visited-file-name} sets this to === modified file 'doc/lispref/variables.texi' --- doc/lispref/variables.texi 2012-01-19 07:21:25 +0000 +++ doc/lispref/variables.texi 2012-01-21 03:15:07 +0000 @@ -1660,6 +1660,13 @@ @end table @end defopt +@defvar inhibit-local-variables-regexps +This is a list of regular expressions. If a file has a name +matching an element of this list, then it is not scanned for +any form of file-local variable. For examples of why you might want +to use this, @pxref{Auto Major Mode}. +@end defvar + @defun hack-local-variables &optional mode-only This function parses, and binds or evaluates as appropriate, any local variables specified by the contents of the current buffer. The variable === modified file 'etc/NEWS' --- etc/NEWS 2012-01-21 00:41:05 +0000 +++ etc/NEWS 2012-01-21 03:15:07 +0000 @@ -369,8 +369,7 @@ *** Using "mode: MINOR-MODE" to enable a minor mode is deprecated. Instead, use "eval: (minor-mode 1)". -FIXME: inhibit-first-line-modes-regexps was not mentioned in lispref, -but this probably should be. ++++ *** The variable `inhibit-first-line-modes-regexps' has been renamed to `inhibit-local-variables-regexps'. As the name suggests, it now applies to ALL file local variables, not just -*- mode ones. ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.