diff options
68 files changed, 2924 insertions, 2235 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog index 597beb60ce2..2178df6caf0 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2012-01-19 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * bzrmerge.el (bzrmerge-missing): Allow a definitive "no" answer to the | ||
| 4 | "skip?" question, since there can be multiple such for any revision. | ||
| 5 | |||
| 1 | 2012-01-14 Eli Zaretskii <eliz@gnu.org> | 6 | 2012-01-14 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * FOR-RELEASE (Check the Emacs Tutorial): Mark TUTORIAL.he as | 8 | * FOR-RELEASE (Check the Emacs Tutorial): Mark TUTORIAL.he as |
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index daf8e33d041..f704a3c9397 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -100,10 +100,10 @@ names of the people who have checked it. | |||
| 100 | SECTION READERS | 100 | SECTION READERS |
| 101 | ---------------------------------- | 101 | ---------------------------------- |
| 102 | TUTORIAL cyd | 102 | TUTORIAL cyd |
| 103 | TUTORIAL.bg | 103 | TUTORIAL.bg ogi |
| 104 | TUTORIAL.cn | 104 | TUTORIAL.cn |
| 105 | TUTORIAL.cs | 105 | TUTORIAL.cs |
| 106 | TUTORIAL.de | 106 | TUTORIAL.de wl |
| 107 | TUTORIAL.eo | 107 | TUTORIAL.eo |
| 108 | TUTORIAL.es | 108 | TUTORIAL.es |
| 109 | TUTORIAL.fr | 109 | TUTORIAL.fr |
| @@ -117,7 +117,7 @@ TUTORIAL.pt_BR | |||
| 117 | TUTORIAL.ro | 117 | TUTORIAL.ro |
| 118 | TUTORIAL.ru | 118 | TUTORIAL.ru |
| 119 | TUTORIAL.sk | 119 | TUTORIAL.sk |
| 120 | TUTORIAL.sl | 120 | TUTORIAL.sl Primoz PETERLIN |
| 121 | TUTORIAL.sv | 121 | TUTORIAL.sv |
| 122 | TUTORIAL.th | 122 | TUTORIAL.th |
| 123 | TUTORIAL.zh | 123 | TUTORIAL.zh |
| @@ -187,25 +187,25 @@ backups.texi | |||
| 187 | buffers.texi | 187 | buffers.texi |
| 188 | commands.texi | 188 | commands.texi |
| 189 | compile.texi | 189 | compile.texi |
| 190 | control.texi | 190 | control.texi cyd |
| 191 | customize.texi | 191 | customize.texi |
| 192 | debugging.texi | 192 | debugging.texi |
| 193 | display.texi | 193 | display.texi |
| 194 | edebug.texi | 194 | edebug.texi |
| 195 | elisp.texi | 195 | elisp.texi |
| 196 | errors.texi | 196 | errors.texi |
| 197 | eval.texi | 197 | eval.texi cyd |
| 198 | files.texi | 198 | files.texi |
| 199 | frames.texi | 199 | frames.texi |
| 200 | functions.texi | 200 | functions.texi |
| 201 | hash.texi | 201 | hash.texi cyd |
| 202 | help.texi | 202 | help.texi |
| 203 | hooks.texi | 203 | hooks.texi |
| 204 | index.texi | 204 | index.texi |
| 205 | internals.texi | 205 | internals.texi |
| 206 | intro.texi | 206 | intro.texi cyd |
| 207 | keymaps.texi | 207 | keymaps.texi |
| 208 | lists.texi | 208 | lists.texi cyd |
| 209 | loading.texi | 209 | loading.texi |
| 210 | locals.texi | 210 | locals.texi |
| 211 | macros.texi | 211 | macros.texi |
| @@ -214,17 +214,17 @@ markers.texi | |||
| 214 | minibuf.texi | 214 | minibuf.texi |
| 215 | modes.texi | 215 | modes.texi |
| 216 | nonascii.texi | 216 | nonascii.texi |
| 217 | numbers.texi | 217 | numbers.texi cyd |
| 218 | objects.texi | 218 | objects.texi cyd |
| 219 | os.texi | 219 | os.texi |
| 220 | package.texi | 220 | package.texi |
| 221 | positions.texi | 221 | positions.texi |
| 222 | processes.texi | 222 | processes.texi |
| 223 | searching.texi | 223 | searching.texi |
| 224 | sequences.texi | 224 | sequences.texi cyd |
| 225 | streams.texi | 225 | streams.texi |
| 226 | strings.texi | 226 | strings.texi cyd |
| 227 | symbols.texi | 227 | symbols.texi cyd |
| 228 | syntax.texi | 228 | syntax.texi |
| 229 | text.texi | 229 | text.texi |
| 230 | tips.texi | 230 | tips.texi |
| @@ -232,8 +232,7 @@ variables.texi | |||
| 232 | windows.texi | 232 | windows.texi |
| 233 | 233 | ||
| 234 | * PLANNED ADDITIONS | 234 | * PLANNED ADDITIONS |
| 235 | 235 | * pov-mode (probably not for Emacs-23: waiting for a Free POV-Ray). | |
| 236 | ** pov-mode (probably not for Emacs-23: waiting for a Free POV-Ray). | ||
| 237 | ** gas-mode ? | 236 | ** gas-mode ? |
| 238 | 237 | ||
| 239 | 238 | ||
diff --git a/admin/bzrmerge.el b/admin/bzrmerge.el index 2efb17603cd..cb63d5b16ba 100644 --- a/admin/bzrmerge.el +++ b/admin/bzrmerge.el | |||
| @@ -133,9 +133,23 @@ are both lists of revnos, in oldest-first order." | |||
| 133 | (setq str (substring str (match-end 0)))) | 133 | (setq str (substring str (match-end 0)))) |
| 134 | (when (string-match "[.!;, ]+\\'" str) | 134 | (when (string-match "[.!;, ]+\\'" str) |
| 135 | (setq str (substring str 0 (match-beginning 0)))) | 135 | (setq str (substring str 0 (match-beginning 0)))) |
| 136 | (if (save-excursion (y-or-n-p (concat str ": Skip? "))) | 136 | (let ((help-form "\ |
| 137 | (setq skip t)))) | 137 | Type `y' to skip this revision, |
| 138 | (if skip | 138 | `N' to include it and go on to the next revision, |
| 139 | `n' to not skip, but continue to search this log entry for skip regexps, | ||
| 140 | `q' to quit merging.")) | ||
| 141 | (case (save-excursion | ||
| 142 | (read-char-choice | ||
| 143 | (format "%s: Skip (y/n/N/q/%s)? " str | ||
| 144 | (key-description (vector help-char))) | ||
| 145 | '(?y ?n ?N ?q))) | ||
| 146 | (?y (setq skip t)) | ||
| 147 | (?q (keyboard-quit)) | ||
| 148 | ;; A single log entry can match skip-regexp multiple | ||
| 149 | ;; times. If you are sure you don't want to skip it, | ||
| 150 | ;; you don't want to be asked multiple times. | ||
| 151 | (?N (setq skip 'no)))))) | ||
| 152 | (if (eq skip t) | ||
| 139 | (push revno skipped) | 153 | (push revno skipped) |
| 140 | (push revno revnos))))) | 154 | (push revno revnos))))) |
| 141 | (delete-region (point) (point-max))) | 155 | (delete-region (point) (point-max))) |
diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy index 65f317145a0..f7808fd20b8 100644 --- a/admin/grammars/python.wy +++ b/admin/grammars/python.wy | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | ;;; python.wy -- LALR grammar for Python | 1 | ;;; python.wy -- LALR grammar for Python |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2012 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2012 Free Software Foundation, Inc. |
| 4 | ;; Copyright (C) 2001-2010 Python Software Foundation | 4 | ;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, |
| 5 | ;; 2009, 2010 Python Software Foundation; All Rights Reserved | ||
| 5 | 6 | ||
| 6 | ;; Author: Richard Kim <ryk@dspwiz.com> | 7 | ;; Author: Richard Kim <ryk@dspwiz.com> |
| 7 | ;; Maintainer: Richard Kim <ryk@dspwiz.com> | 8 | ;; Maintainer: Richard Kim <ryk@dspwiz.com> |
diff --git a/admin/grammars/wisent-grammar.el b/admin/grammars/wisent-grammar.el index be014a56906..714b5211127 100644 --- a/admin/grammars/wisent-grammar.el +++ b/admin/grammars/wisent-grammar.el | |||
| @@ -470,13 +470,13 @@ Menu items are appended to the common grammar menu.") | |||
| 470 | "srecode/srt-wy") | 470 | "srecode/srt-wy") |
| 471 | ("wisent-javascript-jv-wy.el" | 471 | ("wisent-javascript-jv-wy.el" |
| 472 | "semantic/wisent/js-wy" | 472 | "semantic/wisent/js-wy" |
| 473 | "Copyright (C) 1998-2011 Ecma International" | 473 | "Copyright (C) 1998-2011 Ecma International." |
| 474 | ,wisent-make-parsers--ecmascript-license) | 474 | ,wisent-make-parsers--ecmascript-license) |
| 475 | ("wisent-java-tags-wy.el" | 475 | ("wisent-java-tags-wy.el" |
| 476 | "semantic/wisent/javat-wy") | 476 | "semantic/wisent/javat-wy") |
| 477 | ("wisent-python-wy.el" | 477 | ("wisent-python-wy.el" |
| 478 | "semantic/wisent/python-wy" | 478 | "semantic/wisent/python-wy" |
| 479 | "Copyright (C) 2001-2010 Python Software Foundation" | 479 | "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Python Software Foundation; All Rights Reserved." |
| 480 | ,wisent-make-parsers--python-license))) | 480 | ,wisent-make-parsers--python-license))) |
| 481 | 481 | ||
| 482 | (defun wisent-make-parsers () | 482 | (defun wisent-make-parsers () |
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 90a7f69ea72..9aa4899e591 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2012-01-23 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * anti.texi (Antinews): Add Emacs 23 antinews. | ||
| 4 | |||
| 1 | 2012-01-16 Volker Sobek <reklov@live.com> (tiny change) | 5 | 2012-01-16 Volker Sobek <reklov@live.com> (tiny change) |
| 2 | 6 | ||
| 3 | * programs.texi (Comment Commands): Typo (bug#10514). | 7 | * programs.texi (Comment Commands): Typo (bug#10514). |
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi index d9f17c91f5e..7bc405e442e 100644 --- a/doc/emacs/anti.texi +++ b/doc/emacs/anti.texi | |||
| @@ -13,7 +13,100 @@ greater simplicity that results from the absence of many Emacs | |||
| 13 | 13 | ||
| 14 | @itemize @bullet | 14 | @itemize @bullet |
| 15 | @item | 15 | @item |
| 16 | FIXME | 16 | Support for displaying and editing ``bidirectional'' text has been |
| 17 | removed. Text is now always displayed on the screen in a single | ||
| 18 | consistent direction---left to right---regardless of the underlying | ||
| 19 | script. Similarly, @kbd{C-f} and @kbd{C-b} always move the text | ||
| 20 | cursor to the right and left respectively. Also, @key{right} and | ||
| 21 | @key{left} are now equivalent to @kbd{C-f} and @kbd{C-b}, as you might | ||
| 22 | expect, rather than moving forward or backward based on the underlying | ||
| 23 | ``paragraph direction''. | ||
| 24 | |||
| 25 | Users of ``right-to-left'' languages, like Arabic and Hebrew, may | ||
| 26 | adapt by reading and/or editing text in left-to-right order. | ||
| 27 | |||
| 28 | @item | ||
| 29 | The Emacs Lisp package manager has been removed. Instead of using a | ||
| 30 | ``user interface'' (@kbd{M-x list-packages}), additional Lisp packages | ||
| 31 | must now be installed by hand, which is the most flexible and | ||
| 32 | ``Lispy'' method anyway. Typically, this just involves editing your | ||
| 33 | init file to add the package installation directory to the load path | ||
| 34 | and defining some autoloads; see each package's commentary section | ||
| 35 | and/or README file for details. | ||
| 36 | |||
| 37 | @item | ||
| 38 | The option @code{delete-active-region} has been deleted. When the | ||
| 39 | region is active, typing @key{DEL} or @key{delete} no longer deletes | ||
| 40 | the text in the region; it deletes a single character instead. | ||
| 41 | |||
| 42 | @item | ||
| 43 | We have reworked how Emacs handles the clipboard and the X primary | ||
| 44 | selection. Commands for killing and yanking, like @kbd{C-w} and | ||
| 45 | @kbd{C-y}, use the primary selection and not the clipboard, so you can | ||
| 46 | use these commands without interfering with ``cutting'' or ``pasting'' | ||
| 47 | in other programs. The @samp{Cut}/@samp{Copy}/@samp{Paste} menu items | ||
| 48 | are bound to separate clipboard commands, not to the same commands as | ||
| 49 | @kbd{C-w}/@kbd{M-w}/@kbd{C-y}. | ||
| 50 | |||
| 51 | Selecting text by dragging with the mouse now puts the text in the | ||
| 52 | kill ring, in addition to the primary selection. But note that | ||
| 53 | selecting an active region with @kbd{C-@key{SPC}} does @emph{not} | ||
| 54 | alter the kill ring nor the primary selection, even though the text | ||
| 55 | highlighting is visually identical. | ||
| 56 | |||
| 57 | @item | ||
| 58 | In Isearch, @kbd{C-y} and @kbd{M-y} are no longer bound to | ||
| 59 | @code{isearch-yank-kill} and @code{isearch-yank-pop} respectively. | ||
| 60 | Instead, @kbd{C-y} yanks the rest of the current line into the search | ||
| 61 | string (@code{isearch-yank-line}), whereas @kbd{M-y} does | ||
| 62 | @code{isearch-yank-kill}. The mismatch with the usual meanings of | ||
| 63 | @kbd{C-y} and @kbd{M-y} is unintended. | ||
| 64 | |||
| 65 | @item | ||
| 66 | Various completion features have been simplified. The options | ||
| 67 | @code{completion-cycle-threshold} and | ||
| 68 | @code{completion-category-overrides} have been removed. Due to the | ||
| 69 | latter removal, Emacs uses a single consistent scheme to generate | ||
| 70 | completions, instead of using a separate scheme for (say) buffer name | ||
| 71 | completion. Several major modes, such as Shell mode, now implement | ||
| 72 | their own inline completion commands instead of using | ||
| 73 | @code{completion-at-point}. | ||
| 74 | |||
| 75 | @item | ||
| 76 | We have removed various options for controlling how windows are used, | ||
| 77 | e.g.@: @code{display-buffer-base-action}, @code{display-buffer-alist}, | ||
| 78 | @code{window-combination-limit}, and @code{window-combination-resize}. | ||
| 79 | |||
| 80 | @item | ||
| 81 | The command @kbd{M-x customize-themes} has been removed. Emacs no | ||
| 82 | longer comes with pre-defined themes (you can write your own). | ||
| 83 | |||
| 84 | @item | ||
| 85 | Emacs no longer adapts various aspects of its display to GTK+ | ||
| 86 | settings, opting instead for a uniform toolkit-independent look. GTK+ | ||
| 87 | scroll bars are placed on the left, the same position as non-GTK+ X | ||
| 88 | scroll bars. Emacs no longer refers to GTK+ to set the default | ||
| 89 | @code{region} face, nor for drawing tooltips. | ||
| 90 | |||
| 91 | @item | ||
| 92 | Setting the option @code{delete-by-moving-to-trash} to a | ||
| 93 | non-@code{nil} now causes all file deletions to use the system trash, | ||
| 94 | even temporary files created by Lisp programs; furthermore, the | ||
| 95 | @kbd{M-x delete-file} and @kbd{M-x delete-directory} commands no | ||
| 96 | longer accept prefix arguments to force true deletion. | ||
| 97 | |||
| 98 | @item | ||
| 99 | On GNU/Linux and Unix, the default method for sending mail (as | ||
| 100 | specified by @code{send-mail-function}) is to use the | ||
| 101 | @command{sendmail} program. Emacs no longer asks for a delivery | ||
| 102 | method the first time you try to send mail, trusting instead that the | ||
| 103 | system is configured for mail delivery, as it ought to be. | ||
| 104 | |||
| 105 | @item | ||
| 106 | Several VC features have been removed, including the @kbd{C-x v +} and | ||
| 107 | @kbd{C-x v m} commands for pulling and merging on distributed version | ||
| 108 | control systems, and the ability to view inline log entries in the log | ||
| 109 | buffers made by @kbd{C-x v L}. | ||
| 17 | 110 | ||
| 18 | @item | 111 | @item |
| 19 | To keep up with decreasing computer memory capacity and disk space, many | 112 | To keep up with decreasing computer memory capacity and disk space, many |
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog index 0365a3ca174..2a1d018cc26 100644 --- a/doc/lispintro/ChangeLog +++ b/doc/lispintro/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2012-01-19 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * emacs-lisp-intro.texi (count-words-in-defun): | ||
| 4 | Add missing parenthesis (bug#10544). | ||
| 5 | |||
| 6 | 2012-01-17 Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | * emacs-lisp-intro.texi (re-search-forward): Fix typo. | ||
| 9 | |||
| 1 | 2011-11-24 Juanma Barranquero <lekktu@gmail.com> | 10 | 2011-11-24 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 11 | ||
| 3 | * makefile.w32-in: Update dependencies. | 12 | * makefile.w32-in: Update dependencies. |
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 0f9b6b906aa..d70ff9f3b44 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi | |||
| @@ -12607,7 +12607,7 @@ four arguments: | |||
| 12607 | @enumerate | 12607 | @enumerate |
| 12608 | @item | 12608 | @item |
| 12609 | The first argument is the regular expression that the function searches | 12609 | The first argument is the regular expression that the function searches |
| 12610 | for. The regular expression will be a string between quotations marks. | 12610 | for. The regular expression will be a string between quotation marks. |
| 12611 | 12611 | ||
| 12612 | @item | 12612 | @item |
| 12613 | The optional second argument limits how far the function will search; it is a | 12613 | The optional second argument limits how far the function will search; it is a |
| @@ -15012,7 +15012,7 @@ expression for this (@pxref{Syntax}), so the loop is straightforward: | |||
| 15012 | @group | 15012 | @group |
| 15013 | (while (and (< (point) end) | 15013 | (while (and (< (point) end) |
| 15014 | (re-search-forward | 15014 | (re-search-forward |
| 15015 | "\\(\\w\\|\\s_\\)+[^ \t\n]*[ \t\n]*" end t) | 15015 | "\\(\\w\\|\\s_\\)+[^ \t\n]*[ \t\n]*" end t)) |
| 15016 | (setq count (1+ count))) | 15016 | (setq count (1+ count))) |
| 15017 | @end group | 15017 | @end group |
| 15018 | @end smallexample | 15018 | @end smallexample |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 4b9531c0e6c..b66f82c5738 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,54 @@ | |||
| 1 | 2012-01-23 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * strings.texi (Text Comparison): Minor qualification. | ||
| 4 | |||
| 5 | * lists.texi (Cons Cells): Copyedits. | ||
| 6 | (List Elements): Mention push. | ||
| 7 | (List Variables): Mention pop. | ||
| 8 | (Rings): Move to sequences.texi. | ||
| 9 | |||
| 10 | * sequences.texi (Sequence Functions): Don't repeat the | ||
| 11 | introduction already given in the parent. | ||
| 12 | (Vectors): Copyedits. | ||
| 13 | (Rings): Move from lists.texi. Note that this is specific to the | ||
| 14 | ring package. | ||
| 15 | |||
| 16 | * symbols.texi (Definitions, Symbol Components): Mention variable | ||
| 17 | scoping issues. | ||
| 18 | (Plists and Alists): Copyedits. | ||
| 19 | |||
| 20 | * eval.texi (Intro Eval, Symbol Forms): Minor tweaks for | ||
| 21 | correctness with lexical scoping. | ||
| 22 | (Eval): Copyedits. | ||
| 23 | |||
| 24 | 2012-01-21 Chong Yidong <cyd@gnu.org> | ||
| 25 | |||
| 26 | * intro.texi (A Sample Function Description): Special notation | ||
| 27 | used for macros too. | ||
| 28 | |||
| 29 | * objects.texi (Ctl-Char Syntax, Other Char Bits): Copyedits. | ||
| 30 | (Symbol Type): Add xref for keyword symbols. | ||
| 31 | (Sequence Type): Clarify differences between sequence types. | ||
| 32 | (Cons Cell Type): Add "linked list" index entry. | ||
| 33 | (Non-ASCII in Strings): Copyedits. | ||
| 34 | (Equality Predicates): Symbols with same name need not be eq. | ||
| 35 | |||
| 36 | * numbers.texi (Float Basics): Document isnan, copysign, frexp and | ||
| 37 | ldexp. Move float-e and float-pi to Math Functions node. | ||
| 38 | |||
| 39 | 2012-01-21 Glenn Morris <rgm@gnu.org> | ||
| 40 | |||
| 41 | * modes.texi (Auto Major Mode): | ||
| 42 | * variables.texi (File Local Variables): | ||
| 43 | Mention inhibit-local-variables-regexps. | ||
| 44 | |||
| 45 | 2012-01-19 Martin Rudalics <rudalics@gmx.at> | ||
| 46 | |||
| 47 | * windows.texi (Window Configurations): Rewrite references to | ||
| 48 | persistent window parameters. | ||
| 49 | (Window Parameters): Fix description of persistent window | ||
| 50 | parameters. | ||
| 51 | |||
| 1 | 2012-01-16 Juanma Barranquero <lekktu@gmail.com> | 52 | 2012-01-16 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 53 | ||
| 3 | * windows.texi (Window Parameters): Use @pxref. | 54 | * windows.texi (Window Parameters): Use @pxref. |
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi index e74f3e198bf..0511f21007d 100644 --- a/doc/lispref/control.texi +++ b/doc/lispref/control.texi | |||
| @@ -8,11 +8,11 @@ | |||
| 8 | @cindex special forms for control structures | 8 | @cindex special forms for control structures |
| 9 | @cindex control structures | 9 | @cindex control structures |
| 10 | 10 | ||
| 11 | A Lisp program consists of expressions or @dfn{forms} (@pxref{Forms}). | 11 | A Lisp program consists of a set of @dfn{expressions}, or |
| 12 | We control the order of execution of these forms by enclosing them in | 12 | @dfn{forms} (@pxref{Forms}). We control the order of execution of |
| 13 | @dfn{control structures}. Control structures are special forms which | 13 | these forms by enclosing them in @dfn{control structures}. Control |
| 14 | control when, whether, or how many times to execute the forms they | 14 | structures are special forms which control when, whether, or how many |
| 15 | contain. | 15 | times to execute the forms they contain. |
| 16 | 16 | ||
| 17 | @cindex textual order | 17 | @cindex textual order |
| 18 | The simplest order of execution is sequential execution: first form | 18 | The simplest order of execution is sequential execution: first form |
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 0b8d972c1d5..1555b98e7fb 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -326,7 +326,6 @@ Lists | |||
| 326 | * Modifying Lists:: Storing new pieces into an existing list. | 326 | * Modifying Lists:: Storing new pieces into an existing list. |
| 327 | * Sets And Lists:: A list can represent a finite mathematical set. | 327 | * Sets And Lists:: A list can represent a finite mathematical set. |
| 328 | * Association Lists:: A list can represent a finite relation or mapping. | 328 | * Association Lists:: A list can represent a finite relation or mapping. |
| 329 | * Rings:: Managing a fixed-size ring of objects. | ||
| 330 | 329 | ||
| 331 | Modifying Existing List Structure | 330 | Modifying Existing List Structure |
| 332 | 331 | ||
| @@ -344,6 +343,7 @@ Sequences, Arrays, and Vectors | |||
| 344 | * Vector Functions:: Functions specifically for vectors. | 343 | * Vector Functions:: Functions specifically for vectors. |
| 345 | * Char-Tables:: How to work with char-tables. | 344 | * Char-Tables:: How to work with char-tables. |
| 346 | * Bool-Vectors:: How to work with bool-vectors. | 345 | * Bool-Vectors:: How to work with bool-vectors. |
| 346 | * Rings:: Managing a fixed-size ring of objects. | ||
| 347 | 347 | ||
| 348 | Hash Tables | 348 | Hash Tables |
| 349 | 349 | ||
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi index adb4841a82d..fc18e503543 100644 --- a/doc/lispref/eval.texi +++ b/doc/lispref/eval.texi | |||
| @@ -64,8 +64,8 @@ evaluate a @dfn{function call} form such as @code{(car x)}, Emacs | |||
| 64 | first evaluates the argument (the subform @code{x}). After evaluating | 64 | first evaluates the argument (the subform @code{x}). After evaluating |
| 65 | the argument, Emacs @dfn{executes} the function (@code{car}), and if | 65 | the argument, Emacs @dfn{executes} the function (@code{car}), and if |
| 66 | the function is written in Lisp, execution works by evaluating the | 66 | the function is written in Lisp, execution works by evaluating the |
| 67 | @dfn{body} of the function. (In this example, however, @code{car} is | 67 | @dfn{body} of the function (in this example, however, @code{car} is |
| 68 | not a Lisp function; it is a primitive function implemented in C.) | 68 | not a Lisp function; it is a primitive function implemented in C). |
| 69 | @xref{Functions}, for more information about functions and function | 69 | @xref{Functions}, for more information about functions and function |
| 70 | calls. | 70 | calls. |
| 71 | 71 | ||
| @@ -77,9 +77,8 @@ variables (@pxref{Variables}).@footnote{This definition of | |||
| 77 | that can affect the result of a program.} Whenever a form refers to a | 77 | that can affect the result of a program.} Whenever a form refers to a |
| 78 | variable without creating a new binding for it, the variable evaluates | 78 | variable without creating a new binding for it, the variable evaluates |
| 79 | to the value given by the current environment. Evaluating a form may | 79 | to the value given by the current environment. Evaluating a form may |
| 80 | create a new environment for recursive evaluation, by binding | 80 | also temporarily alter the environment by binding variables |
| 81 | variables (@pxref{Local Variables}). Such environments are temporary, | 81 | (@pxref{Local Variables}). |
| 82 | and vanish when the evaluation of the form is complete. | ||
| 83 | 82 | ||
| 84 | @cindex side effect | 83 | @cindex side effect |
| 85 | Evaluating a form may also make changes that persist; these changes | 84 | Evaluating a form may also make changes that persist; these changes |
| @@ -177,9 +176,9 @@ program. Here is an example: | |||
| 177 | @cindex symbol evaluation | 176 | @cindex symbol evaluation |
| 178 | 177 | ||
| 179 | When a symbol is evaluated, it is treated as a variable. The result | 178 | When a symbol is evaluated, it is treated as a variable. The result |
| 180 | is the variable's value, if it has one. If it has none (if its value | 179 | is the variable's value, if it has one. If the symbol has no value as |
| 181 | cell is void), an error is signaled. For more information on the use of | 180 | a variable, the Lisp interpreter signals an error. For more |
| 182 | variables, see @ref{Variables}. | 181 | information on the use of variables, see @ref{Variables}. |
| 183 | 182 | ||
| 184 | In the following example, we set the value of a symbol with | 183 | In the following example, we set the value of a symbol with |
| 185 | @code{setq}. Then we evaluate the symbol, and get back the value that | 184 | @code{setq}. Then we evaluate the symbol, and get back the value that |
| @@ -602,12 +601,13 @@ functions provides the ability to pass information to them as | |||
| 602 | arguments. | 601 | arguments. |
| 603 | 602 | ||
| 604 | @defun eval form &optional lexical | 603 | @defun eval form &optional lexical |
| 605 | This is the basic function evaluating an expression. It evaluates | 604 | This is the basic function for evaluating an expression. It evaluates |
| 606 | @var{form} in the current environment and returns the result. How the | 605 | @var{form} in the current environment and returns the result. How the |
| 607 | evaluation proceeds depends on the type of the object (@pxref{Forms}). | 606 | evaluation proceeds depends on the type of the object (@pxref{Forms}). |
| 608 | @var{lexical} if non-nil means to evaluate @var{form} using lexical scoping | 607 | |
| 609 | rules (@pxref{Lexical Binding}) instead of the default dynamic scoping used | 608 | The argument @var{lexical}, if non-@code{nil}, means to evaluate |
| 610 | historically in Emacs Lisp. | 609 | @var{form} using lexical scoping rules for variables, instead of the |
| 610 | default dynamic scoping rules. @xref{Lexical Binding}. | ||
| 611 | 611 | ||
| 612 | Since @code{eval} is a function, the argument expression that appears | 612 | Since @code{eval} is a function, the argument expression that appears |
| 613 | in a call to @code{eval} is evaluated twice: once as preparation before | 613 | in a call to @code{eval} is evaluated twice: once as preparation before |
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 64c856d3ed4..a68bcfa0fe7 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi | |||
| @@ -162,7 +162,7 @@ being described, are formatted like this: @var{first-number}. | |||
| 162 | 162 | ||
| 163 | @cindex @code{nil} | 163 | @cindex @code{nil} |
| 164 | @cindex false | 164 | @cindex false |
| 165 | In Lisp, the symbol @code{nil} has three separate meanings: it | 165 | In Emacs Lisp, the symbol @code{nil} has three separate meanings: it |
| 166 | is a symbol with the name @samp{nil}; it is the logical truth value | 166 | is a symbol with the name @samp{nil}; it is the logical truth value |
| 167 | @var{false}; and it is the empty list---the list of zero elements. | 167 | @var{false}; and it is the empty list---the list of zero elements. |
| 168 | When used as a variable, @code{nil} always has the value @code{nil}. | 168 | When used as a variable, @code{nil} always has the value @code{nil}. |
| @@ -396,13 +396,14 @@ Form', respectively. Commands are simply functions that may be called | |||
| 396 | interactively; macros process their arguments differently from functions | 396 | interactively; macros process their arguments differently from functions |
| 397 | (the arguments are not evaluated), but are presented the same way. | 397 | (the arguments are not evaluated), but are presented the same way. |
| 398 | 398 | ||
| 399 | Special form descriptions use a more complex notation to specify | 399 | The descriptions of macros and special forms use a more complex |
| 400 | optional and repeated arguments because they can break the argument | 400 | notation to specify optional and repeated arguments, because they can |
| 401 | list down into separate arguments in more complicated ways. | 401 | break the argument list down into separate arguments in more |
| 402 | @samp{@r{[}@var{optional-arg}@r{]}} means that @var{optional-arg} is | 402 | complicated ways. @samp{@r{[}@var{optional-arg}@r{]}} means that |
| 403 | optional and @samp{@var{repeated-args}@dots{}} stands for zero or more | 403 | @var{optional-arg} is optional and @samp{@var{repeated-args}@dots{}} |
| 404 | arguments. Parentheses are used when several arguments are grouped into | 404 | stands for zero or more arguments. Parentheses are used when several |
| 405 | additional levels of list structure. Here is an example: | 405 | arguments are grouped into additional levels of list structure. Here |
| 406 | is an example: | ||
| 406 | 407 | ||
| 407 | @defspec count-loop (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{} | 408 | @defspec count-loop (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{} |
| 408 | This imaginary special form implements a loop that executes the | 409 | This imaginary special form implements a loop that executes the |
| @@ -485,9 +486,9 @@ giving a prefix argument makes @var{here} non-@code{nil}. | |||
| 485 | @end deffn | 486 | @end deffn |
| 486 | 487 | ||
| 487 | @defvar emacs-build-time | 488 | @defvar emacs-build-time |
| 488 | The value of this variable indicates the time at which Emacs was built | 489 | The value of this variable indicates the time at which Emacs was |
| 489 | at the local site. It is a list of three integers, like the value | 490 | built. It is a list of three integers, like the value of |
| 490 | of @code{current-time} (@pxref{Time of Day}). | 491 | @code{current-time} (@pxref{Time of Day}). |
| 491 | 492 | ||
| 492 | @example | 493 | @example |
| 493 | @group | 494 | @group |
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi index eb9ddf58603..c8433c79b54 100644 --- a/doc/lispref/lists.texi +++ b/doc/lispref/lists.texi | |||
| @@ -23,7 +23,6 @@ the whole list. | |||
| 23 | * Modifying Lists:: Storing new pieces into an existing list. | 23 | * Modifying Lists:: Storing new pieces into an existing list. |
| 24 | * Sets And Lists:: A list can represent a finite mathematical set. | 24 | * Sets And Lists:: A list can represent a finite mathematical set. |
| 25 | * Association Lists:: A list can represent a finite relation or mapping. | 25 | * Association Lists:: A list can represent a finite relation or mapping. |
| 26 | * Rings:: Managing a fixed-size ring of objects. | ||
| 27 | @end menu | 26 | @end menu |
| 28 | 27 | ||
| 29 | @node Cons Cells | 28 | @node Cons Cells |
| @@ -31,61 +30,56 @@ the whole list. | |||
| 31 | @cindex lists and cons cells | 30 | @cindex lists and cons cells |
| 32 | 31 | ||
| 33 | Lists in Lisp are not a primitive data type; they are built up from | 32 | Lists in Lisp are not a primitive data type; they are built up from |
| 34 | @dfn{cons cells}. A cons cell is a data object that represents an | 33 | @dfn{cons cells} (@pxref{Cons Cell Type}). A cons cell is a data |
| 35 | ordered pair. That is, it has two slots, and each slot @dfn{holds}, or | 34 | object that represents an ordered pair. That is, it has two slots, |
| 36 | @dfn{refers to}, some Lisp object. One slot is known as the @sc{car}, | 35 | and each slot @dfn{holds}, or @dfn{refers to}, some Lisp object. One |
| 37 | and the other is known as the @sc{cdr}. (These names are traditional; | 36 | slot is known as the @sc{car}, and the other is known as the @sc{cdr}. |
| 38 | see @ref{Cons Cell Type}.) @sc{cdr} is pronounced ``could-er.'' | 37 | (These names are traditional; see @ref{Cons Cell Type}.) @sc{cdr} is |
| 38 | pronounced ``could-er.'' | ||
| 39 | 39 | ||
| 40 | We say that ``the @sc{car} of this cons cell is'' whatever object | 40 | We say that ``the @sc{car} of this cons cell is'' whatever object |
| 41 | its @sc{car} slot currently holds, and likewise for the @sc{cdr}. | 41 | its @sc{car} slot currently holds, and likewise for the @sc{cdr}. |
| 42 | 42 | ||
| 43 | A list is a series of cons cells ``chained together,'' so that each | 43 | A list is a series of cons cells ``chained together,'' so that each |
| 44 | cell refers to the next one. There is one cons cell for each element of | 44 | cell refers to the next one. There is one cons cell for each element |
| 45 | the list. By convention, the @sc{car}s of the cons cells hold the | 45 | of the list. By convention, the @sc{car}s of the cons cells hold the |
| 46 | elements of the list, and the @sc{cdr}s are used to chain the list: the | 46 | elements of the list, and the @sc{cdr}s are used to chain the list |
| 47 | @sc{cdr} slot of each cons cell refers to the following cons cell. The | 47 | (this asymmetry between @sc{car} and @sc{cdr} is entirely a matter of |
| 48 | @sc{cdr} of the last cons cell is @code{nil}. This asymmetry between | 48 | convention; at the level of cons cells, the @sc{car} and @sc{cdr} |
| 49 | the @sc{car} and the @sc{cdr} is entirely a matter of convention; at the | 49 | slots have similar properties). Hence, the @sc{cdr} slot of each cons |
| 50 | level of cons cells, the @sc{car} and @sc{cdr} slots have the same | 50 | cell in a list refers to the following cons cell. |
| 51 | characteristics. | ||
| 52 | 51 | ||
| 53 | @cindex true list | 52 | @cindex true list |
| 54 | Since @code{nil} is the conventional value to put in the @sc{cdr} of | 53 | Also by convention, the @sc{cdr} of the last cons cell in a list is |
| 55 | the last cons cell in the list, we call that case a @dfn{true list}. | 54 | @code{nil}. We call such a @code{nil}-terminated structure a |
| 56 | 55 | @dfn{true list}. In Emacs Lisp, the symbol @code{nil} is both a | |
| 57 | In Lisp, we consider the symbol @code{nil} a list as well as a | 56 | symbol and a list with no elements. For convenience, the symbol |
| 58 | symbol; it is the list with no elements. For convenience, the symbol | ||
| 59 | @code{nil} is considered to have @code{nil} as its @sc{cdr} (and also | 57 | @code{nil} is considered to have @code{nil} as its @sc{cdr} (and also |
| 60 | as its @sc{car}). Therefore, the @sc{cdr} of a true list is always a | 58 | as its @sc{car}). |
| 61 | true list. | 59 | |
| 60 | Hence, the @sc{cdr} of a true list is always a true list. The | ||
| 61 | @sc{cdr} of a nonempty true list is a true list containing all the | ||
| 62 | elements except the first. | ||
| 62 | 63 | ||
| 63 | @cindex dotted list | 64 | @cindex dotted list |
| 64 | @cindex circular list | 65 | @cindex circular list |
| 65 | If the @sc{cdr} of a list's last cons cell is some other value, | 66 | If the @sc{cdr} of a list's last cons cell is some value other than |
| 66 | neither @code{nil} nor another cons cell, we call the structure a | 67 | @code{nil}, we call the structure a @dfn{dotted list}, since its |
| 67 | @dfn{dotted list}, since its printed representation would use | 68 | printed representation would use dotted pair notation (@pxref{Dotted |
| 68 | @samp{.}. There is one other possibility: some cons cell's @sc{cdr} | 69 | Pair Notation}). There is one other possibility: some cons cell's |
| 69 | could point to one of the previous cons cells in the list. We call | 70 | @sc{cdr} could point to one of the previous cons cells in the list. |
| 70 | that structure a @dfn{circular list}. | 71 | We call that structure a @dfn{circular list}. |
| 71 | 72 | ||
| 72 | For some purposes, it does not matter whether a list is true, | 73 | For some purposes, it does not matter whether a list is true, |
| 73 | circular or dotted. If the program doesn't look far enough down the | 74 | circular or dotted. If a program doesn't look far enough down the |
| 74 | list to see the @sc{cdr} of the final cons cell, it won't care. | 75 | list to see the @sc{cdr} of the final cons cell, it won't care. |
| 75 | However, some functions that operate on lists demand true lists and | 76 | However, some functions that operate on lists demand true lists and |
| 76 | signal errors if given a dotted list. Most functions that try to find | 77 | signal errors if given a dotted list. Most functions that try to find |
| 77 | the end of a list enter infinite loops if given a circular list. | 78 | the end of a list enter infinite loops if given a circular list. |
| 78 | 79 | ||
| 79 | @cindex list structure | 80 | @cindex list structure |
| 80 | Because most cons cells are used as part of lists, the phrase | 81 | Because most cons cells are used as part of lists, we refer to any |
| 81 | @dfn{list structure} has come to mean any structure made out of cons | 82 | structure made out of cons cells as a @dfn{list structure}. |
| 82 | cells. | ||
| 83 | |||
| 84 | The @sc{cdr} of any nonempty true list @var{l} is a list containing all the | ||
| 85 | elements of @var{l} except the first. | ||
| 86 | |||
| 87 | @xref{Cons Cell Type}, for the read and print syntax of cons cells and | ||
| 88 | lists, and for ``box and arrow'' illustrations of lists. | ||
| 89 | 83 | ||
| 90 | @node List-related Predicates | 84 | @node List-related Predicates |
| 91 | @section Predicates on Lists | 85 | @section Predicates on Lists |
| @@ -257,6 +251,10 @@ x | |||
| 257 | x | 251 | x |
| 258 | @result{} (b c) | 252 | @result{} (b c) |
| 259 | @end example | 253 | @end example |
| 254 | |||
| 255 | @noindent | ||
| 256 | For the @code{pop} macro, which removes an element from a list, | ||
| 257 | @xref{List Variables}. | ||
| 260 | @end defmac | 258 | @end defmac |
| 261 | 259 | ||
| 262 | @defun nth n list | 260 | @defun nth n list |
| @@ -695,6 +693,10 @@ This macro provides an alternative way to write | |||
| 695 | l | 693 | l |
| 696 | @result{} (c a b) | 694 | @result{} (c a b) |
| 697 | @end example | 695 | @end example |
| 696 | |||
| 697 | @noindent | ||
| 698 | For the @code{pop} macro, which removes the first element from a list, | ||
| 699 | @xref{List Elements}. | ||
| 698 | @end defmac | 700 | @end defmac |
| 699 | 701 | ||
| 700 | Two functions modify lists that are the values of variables. | 702 | Two functions modify lists that are the values of variables. |
| @@ -1800,90 +1802,3 @@ often modifies the original list structure of @var{alist}. | |||
| 1800 | compares the @sc{cdr} of each @var{alist} association instead of the | 1802 | compares the @sc{cdr} of each @var{alist} association instead of the |
| 1801 | @sc{car}. | 1803 | @sc{car}. |
| 1802 | @end defun | 1804 | @end defun |
| 1803 | |||
| 1804 | @node Rings | ||
| 1805 | @section Managing a Fixed-Size Ring of Objects | ||
| 1806 | |||
| 1807 | @cindex ring data structure | ||
| 1808 | This section describes functions for operating on rings. A | ||
| 1809 | @dfn{ring} is a fixed-size data structure that supports insertion, | ||
| 1810 | deletion, rotation, and modulo-indexed reference and traversal. | ||
| 1811 | |||
| 1812 | @defun make-ring size | ||
| 1813 | This returns a new ring capable of holding @var{size} objects. | ||
| 1814 | @var{size} should be an integer. | ||
| 1815 | @end defun | ||
| 1816 | |||
| 1817 | @defun ring-p object | ||
| 1818 | This returns @code{t} if @var{object} is a ring, @code{nil} otherwise. | ||
| 1819 | @end defun | ||
| 1820 | |||
| 1821 | @defun ring-size ring | ||
| 1822 | This returns the maximum capacity of the @var{ring}. | ||
| 1823 | @end defun | ||
| 1824 | |||
| 1825 | @defun ring-length ring | ||
| 1826 | This returns the number of objects that @var{ring} currently contains. | ||
| 1827 | The value will never exceed that returned by @code{ring-size}. | ||
| 1828 | @end defun | ||
| 1829 | |||
| 1830 | @defun ring-elements ring | ||
| 1831 | This returns a list of the objects in @var{ring}, in order, newest first. | ||
| 1832 | @end defun | ||
| 1833 | |||
| 1834 | @defun ring-copy ring | ||
| 1835 | This returns a new ring which is a copy of @var{ring}. | ||
| 1836 | The new ring contains the same (@code{eq}) objects as @var{ring}. | ||
| 1837 | @end defun | ||
| 1838 | |||
| 1839 | @defun ring-empty-p ring | ||
| 1840 | This returns @code{t} if @var{ring} is empty, @code{nil} otherwise. | ||
| 1841 | @end defun | ||
| 1842 | |||
| 1843 | The newest element in the ring always has index 0. Higher indices | ||
| 1844 | correspond to older elements. Indices are computed modulo the ring | ||
| 1845 | length. Index @minus{}1 corresponds to the oldest element, @minus{}2 | ||
| 1846 | to the next-oldest, and so forth. | ||
| 1847 | |||
| 1848 | @defun ring-ref ring index | ||
| 1849 | This returns the object in @var{ring} found at index @var{index}. | ||
| 1850 | @var{index} may be negative or greater than the ring length. If | ||
| 1851 | @var{ring} is empty, @code{ring-ref} signals an error. | ||
| 1852 | @end defun | ||
| 1853 | |||
| 1854 | @defun ring-insert ring object | ||
| 1855 | This inserts @var{object} into @var{ring}, making it the newest | ||
| 1856 | element, and returns @var{object}. | ||
| 1857 | |||
| 1858 | If the ring is full, insertion removes the oldest element to | ||
| 1859 | make room for the new element. | ||
| 1860 | @end defun | ||
| 1861 | |||
| 1862 | @defun ring-remove ring &optional index | ||
| 1863 | Remove an object from @var{ring}, and return that object. The | ||
| 1864 | argument @var{index} specifies which item to remove; if it is | ||
| 1865 | @code{nil}, that means to remove the oldest item. If @var{ring} is | ||
| 1866 | empty, @code{ring-remove} signals an error. | ||
| 1867 | @end defun | ||
| 1868 | |||
| 1869 | @defun ring-insert-at-beginning ring object | ||
| 1870 | This inserts @var{object} into @var{ring}, treating it as the oldest | ||
| 1871 | element. The return value is not significant. | ||
| 1872 | |||
| 1873 | If the ring is full, this function removes the newest element to make | ||
| 1874 | room for the inserted element. | ||
| 1875 | @end defun | ||
| 1876 | |||
| 1877 | @cindex fifo data structure | ||
| 1878 | If you are careful not to exceed the ring size, you can | ||
| 1879 | use the ring as a first-in-first-out queue. For example: | ||
| 1880 | |||
| 1881 | @lisp | ||
| 1882 | (let ((fifo (make-ring 5))) | ||
| 1883 | (mapc (lambda (obj) (ring-insert fifo obj)) | ||
| 1884 | '(0 one "two")) | ||
| 1885 | (list (ring-remove fifo) t | ||
| 1886 | (ring-remove fifo) t | ||
| 1887 | (ring-remove fifo))) | ||
| 1888 | @result{} (0 t one t "two") | ||
| 1889 | @end lisp | ||
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 5d09b79748e..b3aac231d5b 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi | |||
| @@ -588,6 +588,18 @@ Chosen, emacs, The GNU Emacs Manual}. If @code{enable-local-variables} | |||
| 588 | is @code{nil}, @code{set-auto-mode} does not check the @w{@samp{-*-}} | 588 | is @code{nil}, @code{set-auto-mode} does not check the @w{@samp{-*-}} |
| 589 | line, or near the end of the file, for any mode tag. | 589 | line, or near the end of the file, for any mode tag. |
| 590 | 590 | ||
| 591 | @vindex inhibit-local-variables-regexps | ||
| 592 | There are some file types where it is not appropriate to scan the file | ||
| 593 | contents for a mode specifier. For example, a tar archive may happen to | ||
| 594 | contain, near the end of the file, a member file that has a local | ||
| 595 | variables section specifying a mode for that particular file. This | ||
| 596 | should not be applied to the containing tar file. Similarly, a tiff | ||
| 597 | image file might just happen to contain a first line that seems to | ||
| 598 | match the @w{@samp{-*-}} pattern. For these reasons, both these file | ||
| 599 | extensions are members of the list @var{inhibit-local-variables-regexps}. | ||
| 600 | Add patterns to this list to prevent Emacs searching them for local | ||
| 601 | variables of any kind (not just mode specifiers). | ||
| 602 | |||
| 591 | If @var{keep-mode-if-same} is non-@code{nil}, this function does not | 603 | If @var{keep-mode-if-same} is non-@code{nil}, this function does not |
| 592 | call the mode command if the buffer is already in the proper major | 604 | call the mode command if the buffer is already in the proper major |
| 593 | mode. For instance, @code{set-visited-file-name} sets this to | 605 | mode. For instance, @code{set-visited-file-name} sets this to |
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi index 6768ecece9c..77db0f86c26 100644 --- a/doc/lispref/numbers.texi +++ b/doc/lispref/numbers.texi | |||
| @@ -168,34 +168,37 @@ character codepoint. | |||
| 168 | @node Float Basics | 168 | @node Float Basics |
| 169 | @section Floating Point Basics | 169 | @section Floating Point Basics |
| 170 | 170 | ||
| 171 | @cindex @acronym{IEEE} floating point | ||
| 171 | Floating point numbers are useful for representing numbers that are | 172 | Floating point numbers are useful for representing numbers that are |
| 172 | not integral. The precise range of floating point numbers is | 173 | not integral. The precise range of floating point numbers is |
| 173 | machine-specific; it is the same as the range of the C data type | 174 | machine-specific; it is the same as the range of the C data type |
| 174 | @code{double} on the machine you are using. | 175 | @code{double} on the machine you are using. Emacs uses the |
| 176 | @acronym{IEEE} floating point standard where possible (the standard is | ||
| 177 | supported by most modern computers). | ||
| 175 | 178 | ||
| 176 | The read-syntax for floating point numbers requires either a decimal | 179 | The read syntax for floating point numbers requires either a decimal |
| 177 | point (with at least one digit following), an exponent, or both. For | 180 | point (with at least one digit following), an exponent, or both. For |
| 178 | example, @samp{1500.0}, @samp{15e2}, @samp{15.0e2}, @samp{1.5e3}, and | 181 | example, @samp{1500.0}, @samp{15e2}, @samp{15.0e2}, @samp{1.5e3}, and |
| 179 | @samp{.15e4} are five ways of writing a floating point number whose | 182 | @samp{.15e4} are five ways of writing a floating point number whose |
| 180 | value is 1500. They are all equivalent. You can also use a minus sign | 183 | value is 1500. They are all equivalent. You can also use a minus |
| 181 | to write negative floating point numbers, as in @samp{-1.0}. | 184 | sign to write negative floating point numbers, as in @samp{-1.0}. |
| 185 | |||
| 186 | Emacs Lisp treats @code{-0.0} as equal to ordinary zero (with | ||
| 187 | respect to @code{equal} and @code{=}), even though the two are | ||
| 188 | distinguishable in the @acronym{IEEE} floating point standard. | ||
| 182 | 189 | ||
| 183 | @cindex @acronym{IEEE} floating point | ||
| 184 | @cindex positive infinity | 190 | @cindex positive infinity |
| 185 | @cindex negative infinity | 191 | @cindex negative infinity |
| 186 | @cindex infinity | 192 | @cindex infinity |
| 187 | @cindex NaN | 193 | @cindex NaN |
| 188 | Most modern computers support the @acronym{IEEE} floating point standard, | 194 | The @acronym{IEEE} floating point standard supports positive |
| 189 | which provides for positive infinity and negative infinity as floating point | 195 | infinity and negative infinity as floating point values. It also |
| 190 | values. It also provides for a class of values called NaN or | 196 | provides for a class of values called NaN or ``not-a-number''; |
| 191 | ``not-a-number''; numerical functions return such values in cases where | 197 | numerical functions return such values in cases where there is no |
| 192 | there is no correct answer. For example, @code{(/ 0.0 0.0)} returns a | 198 | correct answer. For example, @code{(/ 0.0 0.0)} returns a NaN. (NaN |
| 193 | NaN. For practical purposes, there's no significant difference between | 199 | values can also carry a sign, but for practical purposes there's no |
| 194 | different NaN values in Emacs Lisp, and there's no rule for precisely | 200 | significant difference between different NaN values in Emacs Lisp.) |
| 195 | which NaN value should be used in a particular case, so Emacs Lisp | 201 | Here are the read syntaxes for these special floating point values: |
| 196 | doesn't try to distinguish them (but it does report the sign, if you | ||
| 197 | print it). Here are the read syntaxes for these special floating | ||
| 198 | point values: | ||
| 199 | 202 | ||
| 200 | @table @asis | 203 | @table @asis |
| 201 | @item positive infinity | 204 | @item positive infinity |
| @@ -206,16 +209,37 @@ point values: | |||
| 206 | @samp{0.0e+NaN} or @samp{-0.0e+NaN}. | 209 | @samp{0.0e+NaN} or @samp{-0.0e+NaN}. |
| 207 | @end table | 210 | @end table |
| 208 | 211 | ||
| 209 | To test whether a floating point value is a NaN, compare it with | 212 | @defun isnan number |
| 210 | itself using @code{=}. That returns @code{nil} for a NaN, and | 213 | This predicate tests whether its argument is NaN, and returns @code{t} |
| 211 | @code{t} for any other floating point value. | 214 | if so, @code{nil} otherwise. The argument must be a number. |
| 215 | @end defun | ||
| 216 | |||
| 217 | The following functions are specialized for handling floating point | ||
| 218 | numbers: | ||
| 219 | |||
| 220 | @defun frexp x | ||
| 221 | This function returns a cons cell @code{(@var{sig} . @var{exp})}, | ||
| 222 | where @var{sig} and @var{exp} are respectively the significand and | ||
| 223 | exponent of the floating point number @var{x}: | ||
| 224 | |||
| 225 | @smallexample | ||
| 226 | @var{x} = @var{sig} * 2^@var{exp} | ||
| 227 | @end smallexample | ||
| 228 | |||
| 229 | @var{sig} is a floating point number between 0.5 (inclusive) and 1.0 | ||
| 230 | (exclusive). If @var{x} is zero, the return value is @code{(0 . 0)}. | ||
| 231 | @end defun | ||
| 212 | 232 | ||
| 213 | The value @code{-0.0} is distinguishable from ordinary zero in | 233 | @defun ldexp sig &optional exp |
| 214 | @acronym{IEEE} floating point, but Emacs Lisp @code{equal} and | 234 | This function returns a floating point number corresponding to the |
| 215 | @code{=} consider them equal values. | 235 | significand @var{sig} and exponent @var{exp}. |
| 236 | @end defun | ||
| 216 | 237 | ||
| 217 | You can use @code{logb} to extract the binary exponent of a floating | 238 | @defun copysign x1 x2 |
| 218 | point number (or estimate the logarithm of an integer): | 239 | This function copies the sign of @var{x2} to the value of @var{x1}, |
| 240 | and returns the result. @var{x1} and @var{x2} must be floating point | ||
| 241 | numbers. | ||
| 242 | @end defun | ||
| 219 | 243 | ||
| 220 | @defun logb number | 244 | @defun logb number |
| 221 | This function returns the binary exponent of @var{number}. More | 245 | This function returns the binary exponent of @var{number}. More |
| @@ -230,14 +254,6 @@ down to an integer. | |||
| 230 | @end example | 254 | @end example |
| 231 | @end defun | 255 | @end defun |
| 232 | 256 | ||
| 233 | @defvar float-e | ||
| 234 | The mathematical constant @math{e} (2.71828@dots{}). | ||
| 235 | @end defvar | ||
| 236 | |||
| 237 | @defvar float-pi | ||
| 238 | The mathematical constant @math{pi} (3.14159@dots{}). | ||
| 239 | @end defvar | ||
| 240 | |||
| 241 | @node Predicates on Numbers | 257 | @node Predicates on Numbers |
| 242 | @section Type Predicates for Numbers | 258 | @section Type Predicates for Numbers |
| 243 | @cindex predicates for numbers | 259 | @cindex predicates for numbers |
| @@ -1122,35 +1138,15 @@ angle in radians between the vector @code{[@var{x}, @var{y}]} and the | |||
| 1122 | @end defun | 1138 | @end defun |
| 1123 | 1139 | ||
| 1124 | @defun exp arg | 1140 | @defun exp arg |
| 1125 | This is the exponential function; it returns | 1141 | This is the exponential function; it returns @math{e} to the power |
| 1126 | @tex | 1142 | @var{arg}. |
| 1127 | @math{e} | ||
| 1128 | @end tex | ||
| 1129 | @ifnottex | ||
| 1130 | @i{e} | ||
| 1131 | @end ifnottex | ||
| 1132 | to the power @var{arg}. | ||
| 1133 | @tex | ||
| 1134 | @math{e} | ||
| 1135 | @end tex | ||
| 1136 | @ifnottex | ||
| 1137 | @i{e} | ||
| 1138 | @end ifnottex | ||
| 1139 | is a fundamental mathematical constant also called the base of natural | ||
| 1140 | logarithms. | ||
| 1141 | @end defun | 1143 | @end defun |
| 1142 | 1144 | ||
| 1143 | @defun log arg &optional base | 1145 | @defun log arg &optional base |
| 1144 | This function returns the logarithm of @var{arg}, with base @var{base}. | 1146 | This function returns the logarithm of @var{arg}, with base |
| 1145 | If you don't specify @var{base}, the base | 1147 | @var{base}. If you don't specify @var{base}, the natural base |
| 1146 | @tex | 1148 | @math{e} is used. If @var{arg} is negative, it signals a |
| 1147 | @math{e} | 1149 | @code{domain-error} error. |
| 1148 | @end tex | ||
| 1149 | @ifnottex | ||
| 1150 | @i{e} | ||
| 1151 | @end ifnottex | ||
| 1152 | is used. If @var{arg} is negative, it signals a @code{domain-error} | ||
| 1153 | error. | ||
| 1154 | @end defun | 1150 | @end defun |
| 1155 | 1151 | ||
| 1156 | @ignore | 1152 | @ignore |
| @@ -1185,6 +1181,17 @@ This returns the square root of @var{arg}. If @var{arg} is negative, | |||
| 1185 | it signals a @code{domain-error} error. | 1181 | it signals a @code{domain-error} error. |
| 1186 | @end defun | 1182 | @end defun |
| 1187 | 1183 | ||
| 1184 | In addition, Emacs defines the following common mathematical | ||
| 1185 | constants: | ||
| 1186 | |||
| 1187 | @defvar float-e | ||
| 1188 | The mathematical constant @math{e} (2.71828@dots{}). | ||
| 1189 | @end defvar | ||
| 1190 | |||
| 1191 | @defvar float-pi | ||
| 1192 | The mathematical constant @math{pi} (3.14159@dots{}). | ||
| 1193 | @end defvar | ||
| 1194 | |||
| 1188 | @node Random Numbers | 1195 | @node Random Numbers |
| 1189 | @section Random Numbers | 1196 | @section Random Numbers |
| 1190 | @cindex random numbers | 1197 | @cindex random numbers |
| @@ -1218,7 +1225,6 @@ nonnegative and less than @var{limit}. | |||
| 1218 | 1225 | ||
| 1219 | If @var{limit} is @code{t}, it means to choose a new seed based on the | 1226 | If @var{limit} is @code{t}, it means to choose a new seed based on the |
| 1220 | current time of day and on Emacs's process @acronym{ID} number. | 1227 | current time of day and on Emacs's process @acronym{ID} number. |
| 1221 | @c "Emacs'" is incorrect usage! | ||
| 1222 | 1228 | ||
| 1223 | On some machines, any integer representable in Lisp may be the result | 1229 | On some machines, any integer representable in Lisp may be the result |
| 1224 | of @code{random}. On other machines, the result can never be larger | 1230 | of @code{random}. On other machines, the result can never be larger |
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 3fb676edcd4..87bcc20daba 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi | |||
| @@ -427,10 +427,10 @@ codes for these non-@acronym{ASCII} control characters include the | |||
| 427 | @ifnottex | 427 | @ifnottex |
| 428 | 2**26 | 428 | 2**26 |
| 429 | @end ifnottex | 429 | @end ifnottex |
| 430 | bit as well as the code for the corresponding non-control | 430 | bit as well as the code for the corresponding non-control character. |
| 431 | character. Ordinary terminals have no way of generating non-@acronym{ASCII} | 431 | Ordinary text terminals have no way of generating non-@acronym{ASCII} |
| 432 | control characters, but you can generate them straightforwardly using X | 432 | control characters, but you can generate them straightforwardly using |
| 433 | and other window systems. | 433 | X and other window systems. |
| 434 | 434 | ||
| 435 | For historical reasons, Emacs treats the @key{DEL} character as | 435 | For historical reasons, Emacs treats the @key{DEL} character as |
| 436 | the control equivalent of @kbd{?}: | 436 | the control equivalent of @kbd{?}: |
| @@ -501,10 +501,10 @@ character is upper case or lower case. Emacs uses the | |||
| 501 | @end ifnottex | 501 | @end ifnottex |
| 502 | bit to indicate that the shift key was used in typing a control | 502 | bit to indicate that the shift key was used in typing a control |
| 503 | character. This distinction is possible only when you use X terminals | 503 | character. This distinction is possible only when you use X terminals |
| 504 | or other special terminals; ordinary terminals do not report the | 504 | or other special terminals; ordinary text terminals do not report the |
| 505 | distinction to the computer in any way. The Lisp syntax for | 505 | distinction. The Lisp syntax for the shift bit is @samp{\S-}; thus, |
| 506 | the shift bit is @samp{\S-}; thus, @samp{?\C-\S-o} or @samp{?\C-\S-O} | 506 | @samp{?\C-\S-o} or @samp{?\C-\S-O} represents the shifted-control-o |
| 507 | represents the shifted-control-o character. | 507 | character. |
| 508 | 508 | ||
| 509 | @cindex hyper characters | 509 | @cindex hyper characters |
| 510 | @cindex super characters | 510 | @cindex super characters |
| @@ -541,9 +541,9 @@ intended. But you can use one symbol in all of these ways, | |||
| 541 | independently. | 541 | independently. |
| 542 | 542 | ||
| 543 | A symbol whose name starts with a colon (@samp{:}) is called a | 543 | A symbol whose name starts with a colon (@samp{:}) is called a |
| 544 | @dfn{keyword symbol}. These symbols automatically act as constants, and | 544 | @dfn{keyword symbol}. These symbols automatically act as constants, |
| 545 | are normally used only by comparing an unknown symbol with a few | 545 | and are normally used only by comparing an unknown symbol with a few |
| 546 | specific alternatives. | 546 | specific alternatives. @xref{Constant Variables}. |
| 547 | 547 | ||
| 548 | @cindex @samp{\} in symbols | 548 | @cindex @samp{\} in symbols |
| 549 | @cindex backslash in symbols | 549 | @cindex backslash in symbols |
| @@ -617,26 +617,28 @@ all symbols; @pxref{Creating Symbols}.) | |||
| 617 | @subsection Sequence Types | 617 | @subsection Sequence Types |
| 618 | 618 | ||
| 619 | A @dfn{sequence} is a Lisp object that represents an ordered set of | 619 | A @dfn{sequence} is a Lisp object that represents an ordered set of |
| 620 | elements. There are two kinds of sequence in Emacs Lisp, lists and | 620 | elements. There are two kinds of sequence in Emacs Lisp: @dfn{lists} |
| 621 | arrays. Thus, an object of type list or of type array is also | 621 | and @dfn{arrays}. |
| 622 | considered a sequence. | 622 | |
| 623 | 623 | Lists are the most commonly-used sequences. A list can hold | |
| 624 | Arrays are further subdivided into strings, vectors, char-tables and | 624 | elements of any type, and its length can be easily changed by adding |
| 625 | bool-vectors. Vectors can hold elements of any type, but string | 625 | or removing elements. See the next subsection for more about lists. |
| 626 | elements must be characters, and bool-vector elements must be @code{t} | 626 | |
| 627 | or @code{nil}. Char-tables are like vectors except that they are | 627 | Arrays are fixed-length sequences. They are further subdivided into |
| 628 | indexed by any valid character code. The characters in a string can | 628 | strings, vectors, char-tables and bool-vectors. Vectors can hold |
| 629 | have text properties like characters in a buffer (@pxref{Text | 629 | elements of any type, whereas string elements must be characters, and |
| 630 | Properties}), but vectors do not support text properties, even when | 630 | bool-vector elements must be @code{t} or @code{nil}. Char-tables are |
| 631 | their elements happen to be characters. | 631 | like vectors except that they are indexed by any valid character code. |
| 632 | 632 | The characters in a string can have text properties like characters in | |
| 633 | Lists, strings and the other array types are different, but they have | 633 | a buffer (@pxref{Text Properties}), but vectors do not support text |
| 634 | important similarities. For example, all have a length @var{l}, and all | 634 | properties, even when their elements happen to be characters. |
| 635 | have elements which can be indexed from zero to @var{l} minus one. | 635 | |
| 636 | Several functions, called sequence functions, accept any kind of | 636 | Lists, strings and the other array types also share important |
| 637 | sequence. For example, the function @code{elt} can be used to extract | 637 | similarities. For example, all have a length @var{l}, and all have |
| 638 | an element of a sequence, given its index. @xref{Sequences Arrays | 638 | elements which can be indexed from zero to @var{l} minus one. Several |
| 639 | Vectors}. | 639 | functions, called sequence functions, accept any kind of sequence. |
| 640 | For example, the function @code{length} reports the length of any kind | ||
| 641 | of sequence. @xref{Sequences Arrays Vectors}. | ||
| 640 | 642 | ||
| 641 | It is generally impossible to read the same sequence twice, since | 643 | It is generally impossible to read the same sequence twice, since |
| 642 | sequences are always created anew upon reading. If you read the read | 644 | sequences are always created anew upon reading. If you read the read |
| @@ -650,24 +652,27 @@ same object, @code{nil}. | |||
| 650 | @cindex decrement field of register | 652 | @cindex decrement field of register |
| 651 | @cindex pointers | 653 | @cindex pointers |
| 652 | 654 | ||
| 653 | A @dfn{cons cell} is an object that consists of two slots, called the | 655 | A @dfn{cons cell} is an object that consists of two slots, called |
| 654 | @sc{car} slot and the @sc{cdr} slot. Each slot can @dfn{hold} or | 656 | the @sc{car} slot and the @sc{cdr} slot. Each slot can @dfn{hold} any |
| 655 | @dfn{refer to} any Lisp object. We also say that ``the @sc{car} of | 657 | Lisp object. We also say that ``the @sc{car} of this cons cell is'' |
| 656 | this cons cell is'' whatever object its @sc{car} slot currently holds, | 658 | whatever object its @sc{car} slot currently holds, and likewise for |
| 657 | and likewise for the @sc{cdr}. | 659 | the @sc{cdr}. |
| 658 | |||
| 659 | @quotation | ||
| 660 | A note to C programmers: in Lisp, we do not distinguish between | ||
| 661 | ``holding'' a value and ``pointing to'' the value, because pointers in | ||
| 662 | Lisp are implicit. | ||
| 663 | @end quotation | ||
| 664 | 660 | ||
| 661 | @cindex list structure | ||
| 665 | A @dfn{list} is a series of cons cells, linked together so that the | 662 | A @dfn{list} is a series of cons cells, linked together so that the |
| 666 | @sc{cdr} slot of each cons cell holds either the next cons cell or the | 663 | @sc{cdr} slot of each cons cell holds either the next cons cell or the |
| 667 | empty list. The empty list is actually the symbol @code{nil}. | 664 | empty list. The empty list is actually the symbol @code{nil}. |
| 668 | @xref{Lists}, for functions that work on lists. Because most cons | 665 | @xref{Lists}, for details. Because most cons cells are used as part |
| 669 | cells are used as part of lists, the phrase @dfn{list structure} has | 666 | of lists, we refer to any structure made out of cons cells as a |
| 670 | come to refer to any structure made out of cons cells. | 667 | @dfn{list structure}. |
| 668 | |||
| 669 | @cindex linked list | ||
| 670 | @quotation | ||
| 671 | A note to C programmers: a Lisp list thus works as a @dfn{linked list} | ||
| 672 | built up of cons cells. Because pointers in Lisp are implicit, we do | ||
| 673 | not distinguish between a cons cell slot ``holding'' a value versus | ||
| 674 | ``pointing to'' the value. | ||
| 675 | @end quotation | ||
| 671 | 676 | ||
| 672 | @cindex atoms | 677 | @cindex atoms |
| 673 | Because cons cells are so central to Lisp, we also have a word for | 678 | Because cons cells are so central to Lisp, we also have a word for |
| @@ -1025,40 +1030,40 @@ but the newline is ignored if escaped." | |||
| 1025 | @node Non-ASCII in Strings | 1030 | @node Non-ASCII in Strings |
| 1026 | @subsubsection Non-@acronym{ASCII} Characters in Strings | 1031 | @subsubsection Non-@acronym{ASCII} Characters in Strings |
| 1027 | 1032 | ||
| 1028 | You can include a non-@acronym{ASCII} international character in a string | 1033 | You can include a non-@acronym{ASCII} international character in a |
| 1029 | constant by writing it literally. There are two text representations | 1034 | string constant by writing it literally. There are two text |
| 1030 | for non-@acronym{ASCII} characters in Emacs strings (and in buffers): unibyte | 1035 | representations for non-@acronym{ASCII} characters in Emacs strings |
| 1031 | and multibyte. If the string constant is read from a multibyte source, | 1036 | (and in buffers): unibyte and multibyte (@pxref{Text |
| 1032 | such as a multibyte buffer or string, or a file that would be visited as | 1037 | Representations}). If the string constant is read from a multibyte |
| 1033 | multibyte, then the character is read as a multibyte character, and that | 1038 | source, such as a multibyte buffer or string, or a file that would be |
| 1034 | makes the string multibyte. If the string constant is read from a | 1039 | visited as multibyte, then Emacs reads the non-@acronym{ASCII} |
| 1035 | unibyte source, then the character is read as unibyte and that makes the | 1040 | character as a multibyte character and automatically makes the string |
| 1036 | string unibyte. | 1041 | a multibyte string. If the string constant is read from a unibyte |
| 1037 | 1042 | source, then Emacs reads the non-@acronym{ASCII} character as unibyte, | |
| 1038 | You can also represent a multibyte non-@acronym{ASCII} character with its | 1043 | and makes the string unibyte. |
| 1039 | character code: use a hex escape, @samp{\x@var{nnnnnnn}}, with as many | 1044 | |
| 1040 | digits as necessary. (Multibyte non-@acronym{ASCII} character codes are all | 1045 | Instead of writing a non-@acronym{ASCII} character literally into a |
| 1041 | greater than 256.) Any character which is not a valid hex digit | 1046 | multibyte string, you can write it as its character code using a hex |
| 1042 | terminates this construct. If the next character in the string could be | 1047 | escape, @samp{\x@var{nnnnnnn}}, with as many digits as necessary. |
| 1043 | interpreted as a hex digit, write @w{@samp{\ }} (backslash and space) to | 1048 | (Multibyte non-@acronym{ASCII} character codes are all greater than |
| 1044 | terminate the hex escape---for example, @w{@samp{\xe0\ }} represents | 1049 | 256.) You can also specify a character in a multibyte string using |
| 1045 | one character, @samp{a} with grave accent. @w{@samp{\ }} in a string | 1050 | the @samp{\u} or @samp{\U} Unicode escape syntax (@pxref{General |
| 1046 | constant is just like backslash-newline; it does not contribute any | 1051 | Escape Syntax}). In either case, any character which is not a valid |
| 1047 | character to the string, but it does terminate the preceding hex escape. | 1052 | hex digit terminates the construct. If the next character in the |
| 1053 | string could be interpreted as a hex digit, write @w{@samp{\ }} | ||
| 1054 | (backslash and space) to terminate the hex escape---for example, | ||
| 1055 | @w{@samp{\xe0\ }} represents one character, @samp{a} with grave | ||
| 1056 | accent. @w{@samp{\ }} in a string constant is just like | ||
| 1057 | backslash-newline; it does not contribute any character to the string, | ||
| 1058 | but it does terminate the preceding hex escape. Using any hex escape | ||
| 1059 | in a string (even for an @acronym{ASCII} character) automatically | ||
| 1060 | forces the string to be multibyte. | ||
| 1048 | 1061 | ||
| 1049 | You can represent a unibyte non-@acronym{ASCII} character with its | 1062 | You can represent a unibyte non-@acronym{ASCII} character with its |
| 1050 | character code, which must be in the range from 128 (0200 octal) to | 1063 | character code, which must be in the range from 128 (0200 octal) to |
| 1051 | 255 (0377 octal). If you write all such character codes in octal and | 1064 | 255 (0377 octal). If you write all such character codes in octal and |
| 1052 | the string contains no other characters forcing it to be multibyte, | 1065 | the string contains no other characters forcing it to be multibyte, |
| 1053 | this produces a unibyte string. However, using any hex escape in a | 1066 | this produces a unibyte string. |
| 1054 | string (even for an @acronym{ASCII} character) forces the string to be | ||
| 1055 | multibyte. | ||
| 1056 | |||
| 1057 | You can also specify characters in a string by their numeric values | ||
| 1058 | in Unicode, using @samp{\u} and @samp{\U} (@pxref{Character Type}). | ||
| 1059 | |||
| 1060 | @xref{Text Representations}, for more information about the two | ||
| 1061 | text representations. | ||
| 1062 | 1067 | ||
| 1063 | @node Nonprinting Characters | 1068 | @node Nonprinting Characters |
| 1064 | @subsubsection Nonprinting Characters in Strings | 1069 | @subsubsection Nonprinting Characters in Strings |
| @@ -1922,23 +1927,24 @@ This function returns a symbol naming the primitive type of | |||
| 1922 | @section Equality Predicates | 1927 | @section Equality Predicates |
| 1923 | @cindex equality | 1928 | @cindex equality |
| 1924 | 1929 | ||
| 1925 | Here we describe functions that test for equality between any two | 1930 | Here we describe functions that test for equality between two |
| 1926 | objects. Other functions test equality of contents between objects of specific | 1931 | objects. Other functions test equality of contents between objects of |
| 1927 | types, e.g., strings. For these predicates, see the appropriate chapter | 1932 | specific types, e.g.@: strings. For these predicates, see the |
| 1928 | describing the data type. | 1933 | appropriate chapter describing the data type. |
| 1929 | 1934 | ||
| 1930 | @defun eq object1 object2 | 1935 | @defun eq object1 object2 |
| 1931 | This function returns @code{t} if @var{object1} and @var{object2} are | 1936 | This function returns @code{t} if @var{object1} and @var{object2} are |
| 1932 | the same object, @code{nil} otherwise. | 1937 | the same object, and @code{nil} otherwise. |
| 1933 | 1938 | ||
| 1934 | @code{eq} returns @code{t} if @var{object1} and @var{object2} are | 1939 | If @var{object1} and @var{object2} are integers with the same value, |
| 1935 | integers with the same value. Also, since symbol names are normally | 1940 | they are considered to be the same object (i.e.@: @code{eq} returns |
| 1936 | unique, if the arguments are symbols with the same name, they are | 1941 | @code{t}). If @var{object1} and @var{object2} are symbols with the |
| 1937 | @code{eq}. For other types (e.g., lists, vectors, strings), two | 1942 | same name, they are normally the same object---but see @ref{Creating |
| 1938 | arguments with the same contents or elements are not necessarily | 1943 | Symbols} for exceptions. For other types (e.g.@: lists, vectors, |
| 1939 | @code{eq} to each other: they are @code{eq} only if they are the same | 1944 | strings), two arguments with the same contents or elements are not |
| 1940 | object, meaning that a change in the contents of one will be reflected | 1945 | necessarily @code{eq} to each other: they are @code{eq} only if they |
| 1941 | by the same change in the contents of the other. | 1946 | are the same object, meaning that a change in the contents of one will |
| 1947 | be reflected by the same change in the contents of the other. | ||
| 1942 | 1948 | ||
| 1943 | @example | 1949 | @example |
| 1944 | @group | 1950 | @group |
| @@ -1988,6 +1994,7 @@ by the same change in the contents of the other. | |||
| 1988 | @end group | 1994 | @end group |
| 1989 | @end example | 1995 | @end example |
| 1990 | 1996 | ||
| 1997 | @noindent | ||
| 1991 | The @code{make-symbol} function returns an uninterned symbol, distinct | 1998 | The @code{make-symbol} function returns an uninterned symbol, distinct |
| 1992 | from the symbol that is used if you write the name in a Lisp expression. | 1999 | from the symbol that is used if you write the name in a Lisp expression. |
| 1993 | Distinct symbols with the same name are not @code{eq}. @xref{Creating | 2000 | Distinct symbols with the same name are not @code{eq}. @xref{Creating |
| @@ -2003,11 +2010,11 @@ Symbols}. | |||
| 2003 | 2010 | ||
| 2004 | @defun equal object1 object2 | 2011 | @defun equal object1 object2 |
| 2005 | This function returns @code{t} if @var{object1} and @var{object2} have | 2012 | This function returns @code{t} if @var{object1} and @var{object2} have |
| 2006 | equal components, @code{nil} otherwise. Whereas @code{eq} tests if its | 2013 | equal components, and @code{nil} otherwise. Whereas @code{eq} tests |
| 2007 | arguments are the same object, @code{equal} looks inside nonidentical | 2014 | if its arguments are the same object, @code{equal} looks inside |
| 2008 | arguments to see if their elements or contents are the same. So, if two | 2015 | nonidentical arguments to see if their elements or contents are the |
| 2009 | objects are @code{eq}, they are @code{equal}, but the converse is not | 2016 | same. So, if two objects are @code{eq}, they are @code{equal}, but |
| 2010 | always true. | 2017 | the converse is not always true. |
| 2011 | 2018 | ||
| 2012 | @example | 2019 | @example |
| 2013 | @group | 2020 | @group |
| @@ -2059,13 +2066,13 @@ always true. | |||
| 2059 | @end example | 2066 | @end example |
| 2060 | 2067 | ||
| 2061 | Comparison of strings is case-sensitive, but does not take account of | 2068 | Comparison of strings is case-sensitive, but does not take account of |
| 2062 | text properties---it compares only the characters in the strings. Use | 2069 | text properties---it compares only the characters in the strings. |
| 2063 | @code{equal-including-properties} to also compare text properties. For | 2070 | @xref{Text Properties}. Use @code{equal-including-properties} to also |
| 2064 | technical reasons, a unibyte string and a multibyte string are | 2071 | compare text properties. For technical reasons, a unibyte string and |
| 2065 | @code{equal} if and only if they contain the same sequence of | 2072 | a multibyte string are @code{equal} if and only if they contain the |
| 2066 | character codes and all these codes are either in the range 0 through | 2073 | same sequence of character codes and all these codes are either in the |
| 2067 | 127 (@acronym{ASCII}) or 160 through 255 (@code{eight-bit-graphic}). | 2074 | range 0 through 127 (@acronym{ASCII}) or 160 through 255 |
| 2068 | (@pxref{Text Representations}). | 2075 | (@code{eight-bit-graphic}). (@pxref{Text Representations}). |
| 2069 | 2076 | ||
| 2070 | @example | 2077 | @example |
| 2071 | @group | 2078 | @group |
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index 0ea32f99e12..94f1bf666d2 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi | |||
| @@ -8,10 +8,10 @@ | |||
| 8 | @chapter Sequences, Arrays, and Vectors | 8 | @chapter Sequences, Arrays, and Vectors |
| 9 | @cindex sequence | 9 | @cindex sequence |
| 10 | 10 | ||
| 11 | Recall that the @dfn{sequence} type is the union of two other Lisp | 11 | The @dfn{sequence} type is the union of two other Lisp types: lists |
| 12 | types: lists and arrays. In other words, any list is a sequence, and | 12 | and arrays. In other words, any list is a sequence, and any array is |
| 13 | any array is a sequence. The common property that all sequences have is | 13 | a sequence. The common property that all sequences have is that each |
| 14 | that each is an ordered collection of elements. | 14 | is an ordered collection of elements. |
| 15 | 15 | ||
| 16 | An @dfn{array} is a fixed-length object with a slot for each of its | 16 | An @dfn{array} is a fixed-length object with a slot for each of its |
| 17 | elements. All the elements are accessible in constant time. The four | 17 | elements. All the elements are accessible in constant time. The four |
| @@ -54,19 +54,17 @@ But it is possible to add elements to the list, or remove elements. | |||
| 54 | * Vector Functions:: Functions specifically for vectors. | 54 | * Vector Functions:: Functions specifically for vectors. |
| 55 | * Char-Tables:: How to work with char-tables. | 55 | * Char-Tables:: How to work with char-tables. |
| 56 | * Bool-Vectors:: How to work with bool-vectors. | 56 | * Bool-Vectors:: How to work with bool-vectors. |
| 57 | * Rings:: Managing a fixed-size ring of objects. | ||
| 57 | @end menu | 58 | @end menu |
| 58 | 59 | ||
| 59 | @node Sequence Functions | 60 | @node Sequence Functions |
| 60 | @section Sequences | 61 | @section Sequences |
| 61 | 62 | ||
| 62 | In Emacs Lisp, a @dfn{sequence} is either a list or an array. The | 63 | This section describes functions that accept any kind of sequence. |
| 63 | common property of all sequences is that they are ordered collections of | ||
| 64 | elements. This section describes functions that accept any kind of | ||
| 65 | sequence. | ||
| 66 | 64 | ||
| 67 | @defun sequencep object | 65 | @defun sequencep object |
| 68 | Returns @code{t} if @var{object} is a list, vector, string, | 66 | This function returns @code{t} if @var{object} is a list, vector, |
| 69 | bool-vector, or char-table, @code{nil} otherwise. | 67 | string, bool-vector, or char-table, @code{nil} otherwise. |
| 70 | @end defun | 68 | @end defun |
| 71 | 69 | ||
| 72 | @defun length sequence | 70 | @defun length sequence |
| @@ -149,8 +147,9 @@ This function generalizes @code{aref} (@pxref{Array Functions}) and | |||
| 149 | 147 | ||
| 150 | @defun copy-sequence sequence | 148 | @defun copy-sequence sequence |
| 151 | @cindex copying sequences | 149 | @cindex copying sequences |
| 152 | Returns a copy of @var{sequence}. The copy is the same type of object | 150 | This function returns a copy of @var{sequence}. The copy is the same |
| 153 | as the original sequence, and it has the same elements in the same order. | 151 | type of object as the original sequence, and it has the same elements |
| 152 | in the same order. | ||
| 154 | 153 | ||
| 155 | Storing a new element into the copy does not affect the original | 154 | Storing a new element into the copy does not affect the original |
| 156 | @var{sequence}, and vice versa. However, the elements of the new | 155 | @var{sequence}, and vice versa. However, the elements of the new |
| @@ -394,8 +393,8 @@ symbol-lookup tables (@pxref{Creating Symbols}), as part of the | |||
| 394 | representation of a byte-compiled function (@pxref{Byte Compilation}), | 393 | representation of a byte-compiled function (@pxref{Byte Compilation}), |
| 395 | and more. | 394 | and more. |
| 396 | 395 | ||
| 397 | In Emacs Lisp, the indices of the elements of a vector start from zero | 396 | Like other arrays, vectors use zero-origin indexing: the first |
| 398 | and count up from there. | 397 | element has index 0. |
| 399 | 398 | ||
| 400 | Vectors are printed with square brackets surrounding the elements. | 399 | Vectors are printed with square brackets surrounding the elements. |
| 401 | Thus, a vector whose elements are the symbols @code{a}, @code{b} and | 400 | Thus, a vector whose elements are the symbols @code{a}, @code{b} and |
| @@ -728,3 +727,96 @@ bv | |||
| 728 | @noindent | 727 | @noindent |
| 729 | These results make sense because the binary codes for control-_ and | 728 | These results make sense because the binary codes for control-_ and |
| 730 | control-W are 11111 and 10111, respectively. | 729 | control-W are 11111 and 10111, respectively. |
| 730 | |||
| 731 | @node Rings | ||
| 732 | @section Managing a Fixed-Size Ring of Objects | ||
| 733 | |||
| 734 | @cindex ring data structure | ||
| 735 | A @dfn{ring} is a fixed-size data structure that supports insertion, | ||
| 736 | deletion, rotation, and modulo-indexed reference and traversal. An | ||
| 737 | efficient ring data structure is implemented by the @code{ring} | ||
| 738 | package. It provides the functions listed in this section. | ||
| 739 | |||
| 740 | Note that several ``rings'' in Emacs, like the kill ring and the | ||
| 741 | mark ring, are actually implemented as simple lists, @emph{not} using | ||
| 742 | the @code{ring} package; thus the following functions won't work on | ||
| 743 | them. | ||
| 744 | |||
| 745 | @defun make-ring size | ||
| 746 | This returns a new ring capable of holding @var{size} objects. | ||
| 747 | @var{size} should be an integer. | ||
| 748 | @end defun | ||
| 749 | |||
| 750 | @defun ring-p object | ||
| 751 | This returns @code{t} if @var{object} is a ring, @code{nil} otherwise. | ||
| 752 | @end defun | ||
| 753 | |||
| 754 | @defun ring-size ring | ||
| 755 | This returns the maximum capacity of the @var{ring}. | ||
| 756 | @end defun | ||
| 757 | |||
| 758 | @defun ring-length ring | ||
| 759 | This returns the number of objects that @var{ring} currently contains. | ||
| 760 | The value will never exceed that returned by @code{ring-size}. | ||
| 761 | @end defun | ||
| 762 | |||
| 763 | @defun ring-elements ring | ||
| 764 | This returns a list of the objects in @var{ring}, in order, newest first. | ||
| 765 | @end defun | ||
| 766 | |||
| 767 | @defun ring-copy ring | ||
| 768 | This returns a new ring which is a copy of @var{ring}. | ||
| 769 | The new ring contains the same (@code{eq}) objects as @var{ring}. | ||
| 770 | @end defun | ||
| 771 | |||
| 772 | @defun ring-empty-p ring | ||
| 773 | This returns @code{t} if @var{ring} is empty, @code{nil} otherwise. | ||
| 774 | @end defun | ||
| 775 | |||
| 776 | The newest element in the ring always has index 0. Higher indices | ||
| 777 | correspond to older elements. Indices are computed modulo the ring | ||
| 778 | length. Index @minus{}1 corresponds to the oldest element, @minus{}2 | ||
| 779 | to the next-oldest, and so forth. | ||
| 780 | |||
| 781 | @defun ring-ref ring index | ||
| 782 | This returns the object in @var{ring} found at index @var{index}. | ||
| 783 | @var{index} may be negative or greater than the ring length. If | ||
| 784 | @var{ring} is empty, @code{ring-ref} signals an error. | ||
| 785 | @end defun | ||
| 786 | |||
| 787 | @defun ring-insert ring object | ||
| 788 | This inserts @var{object} into @var{ring}, making it the newest | ||
| 789 | element, and returns @var{object}. | ||
| 790 | |||
| 791 | If the ring is full, insertion removes the oldest element to | ||
| 792 | make room for the new element. | ||
| 793 | @end defun | ||
| 794 | |||
| 795 | @defun ring-remove ring &optional index | ||
| 796 | Remove an object from @var{ring}, and return that object. The | ||
| 797 | argument @var{index} specifies which item to remove; if it is | ||
| 798 | @code{nil}, that means to remove the oldest item. If @var{ring} is | ||
| 799 | empty, @code{ring-remove} signals an error. | ||
| 800 | @end defun | ||
| 801 | |||
| 802 | @defun ring-insert-at-beginning ring object | ||
| 803 | This inserts @var{object} into @var{ring}, treating it as the oldest | ||
| 804 | element. The return value is not significant. | ||
| 805 | |||
| 806 | If the ring is full, this function removes the newest element to make | ||
| 807 | room for the inserted element. | ||
| 808 | @end defun | ||
| 809 | |||
| 810 | @cindex fifo data structure | ||
| 811 | If you are careful not to exceed the ring size, you can | ||
| 812 | use the ring as a first-in-first-out queue. For example: | ||
| 813 | |||
| 814 | @lisp | ||
| 815 | (let ((fifo (make-ring 5))) | ||
| 816 | (mapc (lambda (obj) (ring-insert fifo obj)) | ||
| 817 | '(0 one "two")) | ||
| 818 | (list (ring-remove fifo) t | ||
| 819 | (ring-remove fifo) t | ||
| 820 | (ring-remove fifo))) | ||
| 821 | @result{} (0 t one t "two") | ||
| 822 | @end lisp | ||
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index 49199d3e32f..bbb75f1474d 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi | |||
| @@ -410,8 +410,13 @@ in case if @code{case-fold-search} is non-@code{nil}. | |||
| 410 | @defun string= string1 string2 | 410 | @defun string= string1 string2 |
| 411 | This function returns @code{t} if the characters of the two strings | 411 | This function returns @code{t} if the characters of the two strings |
| 412 | match exactly. Symbols are also allowed as arguments, in which case | 412 | match exactly. Symbols are also allowed as arguments, in which case |
| 413 | their print names are used. | 413 | the symbol names are used. Case is always significant, regardless of |
| 414 | Case is always significant, regardless of @code{case-fold-search}. | 414 | @code{case-fold-search}. |
| 415 | |||
| 416 | This function is equivalent to @code{equal} for comparing two strings | ||
| 417 | (@pxref{Equality Predicates}). In particular, the text properties of | ||
| 418 | the two strings are ignored. But if either argument is not a string | ||
| 419 | or symbol, an error is signaled. | ||
| 415 | 420 | ||
| 416 | @example | 421 | @example |
| 417 | (string= "abc" "abc") | 422 | (string= "abc" "abc") |
| @@ -422,10 +427,6 @@ Case is always significant, regardless of @code{case-fold-search}. | |||
| 422 | @result{} nil | 427 | @result{} nil |
| 423 | @end example | 428 | @end example |
| 424 | 429 | ||
| 425 | The function @code{string=} ignores the text properties of the two | ||
| 426 | strings. When @code{equal} (@pxref{Equality Predicates}) compares two | ||
| 427 | strings, it uses @code{string=}. | ||
| 428 | |||
| 429 | For technical reasons, a unibyte and a multibyte string are | 430 | For technical reasons, a unibyte and a multibyte string are |
| 430 | @code{equal} if and only if they contain the same sequence of | 431 | @code{equal} if and only if they contain the same sequence of |
| 431 | character codes and all these codes are either in the range 0 through | 432 | character codes and all these codes are either in the range 0 through |
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index 866a63c4cd9..0ee22b905b6 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi | |||
| @@ -41,62 +41,58 @@ references another object: | |||
| 41 | @table @asis | 41 | @table @asis |
| 42 | @item Print name | 42 | @item Print name |
| 43 | @cindex print name cell | 43 | @cindex print name cell |
| 44 | The @dfn{print name cell} holds a string that names the symbol for | 44 | The symbol's name. |
| 45 | reading and printing. See @code{symbol-name} in @ref{Creating Symbols}. | ||
| 46 | 45 | ||
| 47 | @item Value | 46 | @item Value |
| 48 | @cindex value cell | 47 | @cindex value cell |
| 49 | The @dfn{value cell} holds the current value of the symbol as a | 48 | The symbol's current value as a variable. |
| 50 | variable. When a symbol is used as a form, the value of the form is the | ||
| 51 | contents of the symbol's value cell. See @code{symbol-value} in | ||
| 52 | @ref{Accessing Variables}. | ||
| 53 | 49 | ||
| 54 | @item Function | 50 | @item Function |
| 55 | @cindex function cell | 51 | @cindex function cell |
| 56 | The @dfn{function cell} holds the function definition of the symbol. | 52 | The symbol's function definition. It can also hold a symbol, a |
| 57 | When a symbol is used as a function, its function definition is used in | 53 | keymap, or a keyboard macro. |
| 58 | its place. This cell is also used to make a symbol stand for a keymap | ||
| 59 | or a keyboard macro, for editor command execution. Because each symbol | ||
| 60 | has separate value and function cells, variables names and function names do | ||
| 61 | not conflict. See @code{symbol-function} in @ref{Function Cells}. | ||
| 62 | 54 | ||
| 63 | @item Property list | 55 | @item Property list |
| 64 | @cindex property list cell | 56 | @cindex property list cell |
| 65 | The @dfn{property list cell} holds the property list of the symbol. See | 57 | The symbol's property list. |
| 66 | @code{symbol-plist} in @ref{Property Lists}. | ||
| 67 | @end table | 58 | @end table |
| 68 | 59 | ||
| 69 | The print name cell always holds a string, and cannot be changed. The | 60 | @noindent |
| 70 | other three cells can be set individually to any specified Lisp object. | 61 | The print name cell always holds a string, and cannot be changed. |
| 71 | 62 | Each of the other three cells can be set to any Lisp object. | |
| 72 | The print name cell holds the string that is the name of the symbol. | 63 | |
| 73 | Since symbols are represented textually by their names, it is important | 64 | The print name cell holds the string that is the name of a symbol. |
| 74 | not to have two symbols with the same name. The Lisp reader ensures | 65 | Since symbols are represented textually by their names, it is |
| 75 | this: every time it reads a symbol, it looks for an existing symbol with | 66 | important not to have two symbols with the same name. The Lisp reader |
| 76 | the specified name before it creates a new one. (In GNU Emacs Lisp, | 67 | ensures this: every time it reads a symbol, it looks for an existing |
| 77 | this lookup uses a hashing algorithm and an obarray; see @ref{Creating | 68 | symbol with the specified name before it creates a new one. To get a |
| 78 | Symbols}.) | 69 | symbol's name, use the function @code{symbol-name} (@pxref{Creating |
| 79 | 70 | Symbols}). | |
| 80 | The value cell holds the symbol's value as a variable | 71 | |
| 81 | (@pxref{Variables}). That is what you get if you evaluate the symbol as | 72 | The value cell holds a symbol's value as a variable, which is what |
| 82 | a Lisp expression (@pxref{Evaluation}). Any Lisp object is a legitimate | 73 | you get if the symbol itself is evaluated as a Lisp expression. |
| 83 | value. Certain symbols have values that cannot be changed; these | 74 | @xref{Variables}, for details about how values are set and retrieved, |
| 84 | include @code{nil} and @code{t}, and any symbol whose name starts with | 75 | including complications such as @dfn{local bindings} and @dfn{scoping |
| 85 | @samp{:} (those are called @dfn{keywords}). @xref{Constant Variables}. | 76 | rules}. Most symbols can have any Lisp object as a value, but certain |
| 86 | 77 | special symbols have values that cannot be changed; these include | |
| 87 | We often refer to ``the function @code{foo}'' when we really mean | 78 | @code{nil} and @code{t}, and any symbol whose name starts with |
| 88 | the function stored in the function cell of the symbol @code{foo}. We | 79 | @samp{:} (those are called @dfn{keywords}). @xref{Constant |
| 89 | make the distinction explicit only when necessary. In normal | 80 | Variables}. |
| 90 | usage, the function cell usually contains a function | 81 | |
| 91 | (@pxref{Functions}) or a macro (@pxref{Macros}), as that is what the | 82 | The function cell holds a symbol's function definition. Often, we |
| 92 | Lisp interpreter expects to see there (@pxref{Evaluation}). Keyboard | 83 | refer to ``the function @code{foo}'' when we really mean the function |
| 93 | macros (@pxref{Keyboard Macros}), keymaps (@pxref{Keymaps}) and | 84 | stored in the function cell of @code{foo}; we make the distinction |
| 94 | autoload objects (@pxref{Autoloading}) are also sometimes stored in | 85 | explicit only when necessary. Typically, the function cell is used to |
| 95 | the function cells of symbols. | 86 | hold a function (@pxref{Functions}) or a macro (@pxref{Macros}). |
| 87 | However, it can also be used to hold a symbol (@pxref{Function | ||
| 88 | Indirection}), keyboard macro (@pxref{Keyboard Macros}), keymap | ||
| 89 | (@pxref{Keymaps}), or autoload object (@pxref{Autoloading}). To get | ||
| 90 | the contents of a symbol's function cell, use the function | ||
| 91 | @code{symbol-function} (@pxref{Function Cells}). | ||
| 96 | 92 | ||
| 97 | The property list cell normally should hold a correctly formatted | 93 | The property list cell normally should hold a correctly formatted |
| 98 | property list (@pxref{Property Lists}), as a number of functions expect | 94 | property list. To get a symbol's function cell, use the function |
| 99 | to see a property list there. | 95 | @code{symbol-plist}. @xref{Property Lists}. |
| 100 | 96 | ||
| 101 | The function cell or the value cell may be @dfn{void}, which means | 97 | The function cell or the value cell may be @dfn{void}, which means |
| 102 | that the cell does not reference any object. (This is not the same | 98 | that the cell does not reference any object. (This is not the same |
| @@ -104,57 +100,43 @@ thing as holding the symbol @code{void}, nor the same as holding the | |||
| 104 | symbol @code{nil}.) Examining a function or value cell that is void | 100 | symbol @code{nil}.) Examining a function or value cell that is void |
| 105 | results in an error, such as @samp{Symbol's value as variable is void}. | 101 | results in an error, such as @samp{Symbol's value as variable is void}. |
| 106 | 102 | ||
| 107 | The four functions @code{symbol-name}, @code{symbol-value}, | 103 | Because each symbol has separate value and function cells, variables |
| 108 | @code{symbol-plist}, and @code{symbol-function} return the contents of | 104 | names and function names do not conflict. For example, the symbol |
| 109 | the four cells of a symbol. Here as an example we show the contents of | 105 | @code{buffer-file-name} has a value (the name of the file being |
| 110 | the four cells of the symbol @code{buffer-file-name}: | 106 | visited in the current buffer) as well as a function definition (a |
| 107 | primitive function that returns the name of the file): | ||
| 111 | 108 | ||
| 112 | @example | 109 | @example |
| 113 | (symbol-name 'buffer-file-name) | 110 | buffer-file-name |
| 114 | @result{} "buffer-file-name" | ||
| 115 | (symbol-value 'buffer-file-name) | ||
| 116 | @result{} "/gnu/elisp/symbols.texi" | 111 | @result{} "/gnu/elisp/symbols.texi" |
| 117 | (symbol-function 'buffer-file-name) | 112 | (symbol-function 'buffer-file-name) |
| 118 | @result{} #<subr buffer-file-name> | 113 | @result{} #<subr buffer-file-name> |
| 119 | (symbol-plist 'buffer-file-name) | ||
| 120 | @result{} (variable-documentation 29529) | ||
| 121 | @end example | 114 | @end example |
| 122 | 115 | ||
| 123 | @noindent | ||
| 124 | Because this symbol is the variable which holds the name of the file | ||
| 125 | being visited in the current buffer, the value cell contents we see are | ||
| 126 | the name of the source file of this chapter of the Emacs Lisp Manual. | ||
| 127 | The property list cell contains the list @code{(variable-documentation | ||
| 128 | 29529)} which tells the documentation functions where to find the | ||
| 129 | documentation string for the variable @code{buffer-file-name} in the | ||
| 130 | @file{DOC-@var{version}} file. (29529 is the offset from the beginning | ||
| 131 | of the @file{DOC-@var{version}} file to where that documentation string | ||
| 132 | begins---see @ref{Documentation Basics}.) The function cell contains | ||
| 133 | the function for returning the name of the file. | ||
| 134 | @code{buffer-file-name} names a primitive function, which has no read | ||
| 135 | syntax and prints in hash notation (@pxref{Primitive Function Type}). A | ||
| 136 | symbol naming a function written in Lisp would have a lambda expression | ||
| 137 | (or a byte-code object) in this cell. | ||
| 138 | |||
| 139 | @node Definitions, Creating Symbols, Symbol Components, Symbols | 116 | @node Definitions, Creating Symbols, Symbol Components, Symbols |
| 140 | @section Defining Symbols | 117 | @section Defining Symbols |
| 141 | @cindex definitions of symbols | 118 | @cindex definitions of symbols |
| 142 | 119 | ||
| 143 | A @dfn{definition} in Lisp is a special form that announces your | 120 | A @dfn{definition} is a special kind of Lisp expression that |
| 144 | intention to use a certain symbol in a particular way. In Emacs Lisp, | 121 | announces your intention to use a symbol in a particular way. It |
| 145 | you can define a symbol as a variable, or define it as a function (or | 122 | typically specifies a value or meaning for the symbol for one kind of |
| 146 | macro), or both independently. | 123 | use, plus documentation for its meaning when used in this way. Thus, |
| 147 | 124 | when you define a symbol as a variable, you can supply an initial | |
| 148 | A definition construct typically specifies a value or meaning for the | 125 | value for the variable, plus documentation for the variable. |
| 149 | symbol for one kind of use, plus documentation for its meaning when used | ||
| 150 | in this way. Thus, when you define a symbol as a variable, you can | ||
| 151 | supply an initial value for the variable, plus documentation for the | ||
| 152 | variable. | ||
| 153 | 126 | ||
| 154 | @code{defvar} and @code{defconst} are special forms that define a | 127 | @code{defvar} and @code{defconst} are special forms that define a |
| 155 | symbol as a global variable. They are documented in detail in | 128 | symbol as a @dfn{global variable}---a variable that can be accessed at |
| 156 | @ref{Defining Variables}. For defining user option variables that can | 129 | any point in a Lisp program. @xref{Variables}, for details about |
| 157 | be customized, use @code{defcustom} (@pxref{Customization}). | 130 | variables. To define a customizable variable, use the |
| 131 | @code{defcustom} macro, which also calls @code{defvar} as a subroutine | ||
| 132 | (@pxref{Customization}). | ||
| 133 | |||
| 134 | In principle, you can assign a variable value to any symbol with | ||
| 135 | @code{setq}, whether not it has first been defined as a variable. | ||
| 136 | However, you ought to write a variable definition for each global | ||
| 137 | variable that you want to use; otherwise, your Lisp program may not | ||
| 138 | act correctly if it is evaluated with lexical scoping enabled | ||
| 139 | (@pxref{Variable Scoping}). | ||
| 158 | 140 | ||
| 159 | @code{defun} defines a symbol as a function, creating a lambda | 141 | @code{defun} defines a symbol as a function, creating a lambda |
| 160 | expression and storing it in the function cell of the symbol. This | 142 | expression and storing it in the function cell of the symbol. This |
| @@ -171,15 +153,14 @@ both macro and function definitions are kept in the function cell, and | |||
| 171 | that cell can hold only one Lisp object at any given time. | 153 | that cell can hold only one Lisp object at any given time. |
| 172 | @xref{Macros}. | 154 | @xref{Macros}. |
| 173 | 155 | ||
| 174 | In Emacs Lisp, a definition is not required in order to use a symbol | 156 | As previously noted, Emacs Lisp allows the same symbol to be defined |
| 175 | as a variable or function. Thus, you can make a symbol a global | 157 | both as a variable (e.g.@: with @code{defvar}) and as a function or |
| 176 | variable with @code{setq}, whether you define it first or not. The real | 158 | macro (e.g.@: with @code{defun}). Such definitions do not conflict. |
| 177 | purpose of definitions is to guide programmers and programming tools. | 159 | |
| 178 | They inform programmers who read the code that certain symbols are | 160 | These definition also act as guides for programming tools. For |
| 179 | @emph{intended} to be used as variables, or as functions. In addition, | 161 | example, the @kbd{C-h f} and @kbd{C-h v} commands create help buffers |
| 180 | utilities such as @file{etags} and @file{make-docfile} recognize | 162 | containing links to the relevant variable, function, or macro |
| 181 | definitions, and add appropriate information to tag tables and the | 163 | definitions. @xref{Name Help,,, emacs, The GNU Emacs Manual}. |
| 182 | @file{DOC-@var{version}} file. @xref{Accessing Documentation}. | ||
| 183 | 164 | ||
| 184 | @node Creating Symbols, Property Lists, Definitions, Symbols | 165 | @node Creating Symbols, Property Lists, Definitions, Symbols |
| 185 | @section Creating and Interning Symbols | 166 | @section Creating and Interning Symbols |
| @@ -254,8 +235,8 @@ not work---only @code{intern} can enter a symbol in an obarray properly. | |||
| 254 | 235 | ||
| 255 | @cindex CL note---symbol in obarrays | 236 | @cindex CL note---symbol in obarrays |
| 256 | @quotation | 237 | @quotation |
| 257 | @b{Common Lisp note:} In Common Lisp, a single symbol may be interned in | 238 | @b{Common Lisp note:} Unlike Common Lisp, Emacs Lisp does not provide |
| 258 | several obarrays. | 239 | for interning a single symbol in several obarrays. |
| 259 | @end quotation | 240 | @end quotation |
| 260 | 241 | ||
| 261 | Most of the functions below take a name and sometimes an obarray as | 242 | Most of the functions below take a name and sometimes an obarray as |
| @@ -448,12 +429,13 @@ must be distinct. | |||
| 448 | 429 | ||
| 449 | Property lists are better than association lists for attaching | 430 | Property lists are better than association lists for attaching |
| 450 | information to various Lisp function names or variables. If your | 431 | information to various Lisp function names or variables. If your |
| 451 | program keeps all of its associations in one association list, it will | 432 | program keeps all such information in one association list, it will |
| 452 | typically need to search that entire list each time it checks for an | 433 | typically need to search that entire list each time it checks for an |
| 453 | association. This could be slow. By contrast, if you keep the same | 434 | association for a particular Lisp function name or variable, which |
| 454 | information in the property lists of the function names or variables | 435 | could be slow. By contrast, if you keep the same information in the |
| 455 | themselves, each search will scan only the length of one property list, | 436 | property lists of the function names or variables themselves, each |
| 456 | which is usually short. This is why the documentation for a variable is | 437 | search will scan only the length of one property list, which is |
| 438 | usually short. This is why the documentation for a variable is | ||
| 457 | recorded in a property named @code{variable-documentation}. The byte | 439 | recorded in a property named @code{variable-documentation}. The byte |
| 458 | compiler likewise uses properties to record those functions needing | 440 | compiler likewise uses properties to record those functions needing |
| 459 | special treatment. | 441 | special treatment. |
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index b0a6795021b..a8f75f5a160 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -1660,6 +1660,13 @@ Query (once) about all the variables. | |||
| 1660 | @end table | 1660 | @end table |
| 1661 | @end defopt | 1661 | @end defopt |
| 1662 | 1662 | ||
| 1663 | @defvar inhibit-local-variables-regexps | ||
| 1664 | This is a list of regular expressions. If a file has a name | ||
| 1665 | matching an element of this list, then it is not scanned for | ||
| 1666 | any form of file-local variable. For examples of why you might want | ||
| 1667 | to use this, @pxref{Auto Major Mode}. | ||
| 1668 | @end defvar | ||
| 1669 | |||
| 1663 | @defun hack-local-variables &optional mode-only | 1670 | @defun hack-local-variables &optional mode-only |
| 1664 | This function parses, and binds or evaluates as appropriate, any local | 1671 | This function parses, and binds or evaluates as appropriate, any local |
| 1665 | variables specified by the contents of the current buffer. The variable | 1672 | variables specified by the contents of the current buffer. The variable |
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 1bff30e45e1..a0f8b61ddfe 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi | |||
| @@ -3104,9 +3104,9 @@ window configuration; see @ref{Frame Configurations}. | |||
| 3104 | @defun current-window-configuration &optional frame | 3104 | @defun current-window-configuration &optional frame |
| 3105 | This function returns a new object representing @var{frame}'s current | 3105 | This function returns a new object representing @var{frame}'s current |
| 3106 | window configuration. The default for @var{frame} is the selected | 3106 | window configuration. The default for @var{frame} is the selected |
| 3107 | frame. This function saves copies of window parameters listed by the | 3107 | frame. The variable @code{window-persistent-parameters} specifies |
| 3108 | variable @code{window-persistent-parameters}, see @ref{Window | 3108 | whether and which window parameters are saved by this function, see |
| 3109 | Parameters} for details. | 3109 | @ref{Window Parameters} for details. |
| 3110 | @end defun | 3110 | @end defun |
| 3111 | 3111 | ||
| 3112 | @defun set-window-configuration configuration | 3112 | @defun set-window-configuration configuration |
| @@ -3214,27 +3214,25 @@ to clone the state of a frame into an arbitrary live window | |||
| 3214 | (@code{set-window-configuration} effectively clones the windows of a | 3214 | (@code{set-window-configuration} effectively clones the windows of a |
| 3215 | frame into the root window of that very frame only). | 3215 | frame into the root window of that very frame only). |
| 3216 | 3216 | ||
| 3217 | @defun window-state-get &optional window ignore | 3217 | @defun window-state-get &optional window writable |
| 3218 | This function returns the state of @var{window} as a Lisp object. The | 3218 | This function returns the state of @var{window} as a Lisp object. The |
| 3219 | argument @var{window} can be any window and defaults to the root window | 3219 | argument @var{window} can be any window and defaults to the root window |
| 3220 | of the selected frame. | 3220 | of the selected frame. |
| 3221 | 3221 | ||
| 3222 | If the optional argument @var{ignore} is non-@code{nil}, this means to | 3222 | If the optional argument @var{writable} is non-@code{nil}, this means to |
| 3223 | not use markers for sampling positions like @code{window-point} or | 3223 | not use markers for sampling positions like @code{window-point} or |
| 3224 | @code{window-start}. This argument should be non-@code{nil} when the | 3224 | @code{window-start}. This argument should be non-@code{nil} when the |
| 3225 | state shall be written on disk and read back in another session. | 3225 | state shall be written to disk and read back in another session. |
| 3226 | 3226 | ||
| 3227 | The variable @code{window-persistent-parameters} specifies whether and | 3227 | Together, the argument @var{writable} and the variable |
| 3228 | which window parameters are saved by this function, see @ref{Window | 3228 | @code{window-persistent-parameters} specify which window parameters are |
| 3229 | Parameters} for details. | 3229 | saved by this function, see @ref{Window Parameters} for details. |
| 3230 | @end defun | 3230 | @end defun |
| 3231 | 3231 | ||
| 3232 | The value returned by @code{window-state-get} can be converted, using | 3232 | The value returned by @code{window-state-get} can be used in the same |
| 3233 | one of the functions defined by Desktop Save Mode (@pxref{Desktop Save | 3233 | session to make a clone of a window in another window. It can be also |
| 3234 | Mode}), to an object that can be written to a file. Such objects can be | 3234 | written to disk and read back in another session. In either case, use |
| 3235 | read back and converted to a Lisp object representing the state of the | 3235 | the function described next to restore the state of the window. |
| 3236 | window. That Lisp object can be used as argument for the following | ||
| 3237 | function in order to restore the state window in another window. | ||
| 3238 | 3236 | ||
| 3239 | @defun window-state-put state &optional window ignore | 3237 | @defun window-state-put state &optional window ignore |
| 3240 | This function puts the window state @var{state} into @var{window}. The | 3238 | This function puts the window state @var{state} into @var{window}. The |
| @@ -3281,10 +3279,10 @@ states of windows (@pxref{Window Configurations}) do not care about | |||
| 3281 | window parameters. This means, that when you change the value of a | 3279 | window parameters. This means, that when you change the value of a |
| 3282 | parameter within the body of a @code{save-window-excursion}, the | 3280 | parameter within the body of a @code{save-window-excursion}, the |
| 3283 | previous value is not restored upon exit of that macro. It also means | 3281 | previous value is not restored upon exit of that macro. It also means |
| 3284 | that when you clone via @code{window-state-put} a window state saved | 3282 | that when you restore via @code{window-state-put} a window state saved |
| 3285 | earlier by @code{window-state-get}, the cloned windows come up with no | 3283 | earlier by @code{window-state-get}, all cloned windows have their |
| 3286 | parameters at all. The following variable allows to override the | 3284 | parameters reset to @code{nil}. The following variable allows to |
| 3287 | standard behavior. | 3285 | override the standard behavior. |
| 3288 | 3286 | ||
| 3289 | @defvar window-persistent-parameters | 3287 | @defvar window-persistent-parameters |
| 3290 | This variable is an alist specifying which parameters get saved by | 3288 | This variable is an alist specifying which parameters get saved by |
| @@ -3293,32 +3291,25 @@ subsequently restored by @code{set-window-configuration} and | |||
| 3293 | @code{window-state-put}, see @ref{Window Configurations}. | 3291 | @code{window-state-put}, see @ref{Window Configurations}. |
| 3294 | 3292 | ||
| 3295 | The @sc{car} of each entry of this alist is the symbol specifying the | 3293 | The @sc{car} of each entry of this alist is the symbol specifying the |
| 3296 | parameter. The @sc{cdr} must be one of the following: | 3294 | parameter. The @sc{cdr} should be one of the following: |
| 3297 | 3295 | ||
| 3298 | @table @asis | 3296 | @table @asis |
| 3299 | @item @code{state} | ||
| 3300 | This value means the parameter is saved by @code{window-state-get} | ||
| 3301 | provided its @var{ignore} argument is @code{nil}. The function | ||
| 3302 | @code{current-window-configuration} does not save this parameter. | ||
| 3303 | |||
| 3304 | @item @code{nil} | 3297 | @item @code{nil} |
| 3298 | This value means the parameter is neither saved by | ||
| 3299 | @code{window-state-get} nor by @code{current-window-configuration}. | ||
| 3300 | |||
| 3301 | @item @code{t} | ||
| 3305 | This value specifies that the parameter is saved by | 3302 | This value specifies that the parameter is saved by |
| 3306 | @code{current-window-configuration} and, provided its @var{ignore} | 3303 | @code{current-window-configuration} and, provided its @var{writable} |
| 3307 | argument is @code{nil}, by @code{window-state-get}. | 3304 | argument is @code{nil}, by @code{window-state-get}. |
| 3308 | 3305 | ||
| 3309 | @item @code{t} | 3306 | @item @code{writable} |
| 3310 | This means that the parameter is saved unconditionally by both | 3307 | This means that the parameter is saved unconditionally by both |
| 3311 | @code{current-window-configuration} and @code{window-state-get}. This | 3308 | @code{current-window-configuration} and @code{window-state-get}. This |
| 3312 | value should not be used for parameters whose values do not have a read | 3309 | value should not be used for parameters whose values do not have a read |
| 3313 | syntax. Otherwise, invoking @code{window-state-put} in another session | 3310 | syntax. Otherwise, invoking @code{window-state-put} in another session |
| 3314 | may fail with an @code{invalid-read-syntax} error. | 3311 | may fail with an @code{invalid-read-syntax} error. |
| 3315 | @end table | 3312 | @end table |
| 3316 | |||
| 3317 | Parameters that have been saved are restored to their previous values by | ||
| 3318 | @code{set-window-configuration} respectively are installed by | ||
| 3319 | @code{window-state-put}. Parameters that have not been saved are left | ||
| 3320 | alone by @code{set-window-configuration} respectively are not installed | ||
| 3321 | by @code{window-state-put}. | ||
| 3322 | @end defvar | 3313 | @end defvar |
| 3323 | 3314 | ||
| 3324 | Some functions, notably @code{delete-window}, | 3315 | Some functions, notably @code{delete-window}, |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index adb5bbbd669..72ac8b85fc3 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2012-01-23 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * pcl-cvs.texi (About PCL-CVS): Refer to vc-dir rather than vc-dired. | ||
| 4 | |||
| 5 | 2012-01-19 Eric Hanchrow <eric.hanchrow@gmail.com> | ||
| 6 | |||
| 7 | * tramp.texi (File): Tweak wording for the `scpc' option. | ||
| 8 | |||
| 1 | 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> | 9 | 2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org> |
| 2 | 10 | ||
| 3 | * gnus.texi (Group Parameters): Really note precedence. | 11 | * gnus.texi (Group Parameters): Really note precedence. |
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi index 32d2114f5a0..92c309f5e98 100644 --- a/doc/misc/pcl-cvs.texi +++ b/doc/misc/pcl-cvs.texi | |||
| @@ -6,8 +6,7 @@ | |||
| 6 | @c %**end of header | 6 | @c %**end of header |
| 7 | 7 | ||
| 8 | @copying | 8 | @copying |
| 9 | Copyright @copyright{} 1991-2012 | 9 | Copyright @copyright{} 1991-2012 Free Software Foundation, Inc. |
| 10 | Free Software Foundation, Inc. | ||
| 11 | 10 | ||
| 12 | @quotation | 11 | @quotation |
| 13 | Permission is granted to copy, distribute and/or modify this document | 12 | Permission is granted to copy, distribute and/or modify this document |
| @@ -136,10 +135,9 @@ Customization | |||
| 136 | PCL-CVS is a front-end to CVS versions 1.9 and later. | 135 | PCL-CVS is a front-end to CVS versions 1.9 and later. |
| 137 | It concisely shows the present status of a checked out module in an | 136 | It concisely shows the present status of a checked out module in an |
| 138 | Emacs buffer and provides single-key access to the most frequently used CVS | 137 | Emacs buffer and provides single-key access to the most frequently used CVS |
| 139 | commands. | 138 | commands. Note that the @code{vc-dir} command (@pxref{VC Directory |
| 140 | For Emacs users accustomed to VC, PCL-CVS can be thought of as a replacement | 139 | Mode, , , emacs, The GNU Emacs Manual}) provides similar |
| 141 | for VC-dired (@pxref{VC Directory Mode, , , emacs, The GNU | 140 | functionality, but for several version control systems, including CVS. |
| 142 | Emacs Manual}) specifically designed for CVS. | ||
| 143 | 141 | ||
| 144 | PCL-CVS was originally written many years ago by Per Cederqvist who | 142 | PCL-CVS was originally written many years ago by Per Cederqvist who |
| 145 | proudly maintained it until January 1996, at which point he released the | 143 | proudly maintained it until January 1996, at which point he released the |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 41ba6689f13..7fbd11decd7 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -866,13 +866,22 @@ Newer versions of @option{ssh} (for example OpenSSH 4) offer an option | |||
| 866 | @option{ControlMaster}. This allows @option{scp} to reuse an existing | 866 | @option{ControlMaster}. This allows @option{scp} to reuse an existing |
| 867 | @option{ssh} channel, which increases performance. | 867 | @option{ssh} channel, which increases performance. |
| 868 | 868 | ||
| 869 | Before you use this method, you shall check whether your @option{ssh} | 869 | Before you use this method, you should check whether your @option{ssh} |
| 870 | implementation does support this option. Try from the command line | 870 | implementation supports this option. Try from the command line |
| 871 | 871 | ||
| 872 | @example | 872 | @example |
| 873 | ssh localhost -o ControlMaster=yes | 873 | ssh localhost -o ControlMaster=yes /bin/true |
| 874 | @end example | 874 | @end example |
| 875 | 875 | ||
| 876 | If that command succeeds silently, then you can use @option{scpc}; but | ||
| 877 | if it fails like | ||
| 878 | |||
| 879 | @example | ||
| 880 | command-line: line 0: Bad configuration option: ControlMaster | ||
| 881 | @end example | ||
| 882 | |||
| 883 | then you cannot use it. | ||
| 884 | |||
| 876 | This method supports the @samp{-p} argument. | 885 | This method supports the @samp{-p} argument. |
| 877 | 886 | ||
| 878 | 887 | ||
diff --git a/etc/ChangeLog b/etc/ChangeLog index b4e22c506a3..60ccded8ad6 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,16 @@ | |||
| 1 | 2012-01-21 Ognyan Kulev <ogi@tower.3.bg> | ||
| 2 | |||
| 3 | * tutorials/TUTORIAL.bg: Updated; synchronize with TUTORIAL. | ||
| 4 | |||
| 5 | 2012-01-19 Werner Lemberg <wl@gnu.org> | ||
| 6 | |||
| 7 | * tutorial/TUTORIAL.de: Updated; synchronize with TUTORIAL. | ||
| 8 | Minor typographical improvements. | ||
| 9 | |||
| 10 | 2012-01-17 Primoz PETERLIN <primoz.peterlin@mf.uni-lj.si> | ||
| 11 | |||
| 12 | * tutorials/TUTORIAL.sl: Update. | ||
| 13 | |||
| 1 | 2012-01-14 Eli Zaretskii <eliz@gnu.org> | 14 | 2012-01-14 Eli Zaretskii <eliz@gnu.org> |
| 2 | 15 | ||
| 3 | * tutorials/TUTORIAL.he: Update to follow changes to TUTORIAL in | 16 | * tutorials/TUTORIAL.he: Update to follow changes to TUTORIAL in |
| @@ -84,10 +84,6 @@ longer have any effect. (They were declared obsolete in Emacs 23.) | |||
| 84 | ** New command line option `--no-site-lisp' removes site-lisp directories | 84 | ** New command line option `--no-site-lisp' removes site-lisp directories |
| 85 | from load-path. -Q now implies this. | 85 | from load-path. -Q now implies this. |
| 86 | 86 | ||
| 87 | --- | ||
| 88 | ** On Windows, Emacs now warns when the obsolete _emacs init file is used, | ||
| 89 | and also when HOME is set to C:\ by default. | ||
| 90 | |||
| 91 | 87 | ||
| 92 | * Changes in Emacs 24.1 | 88 | * Changes in Emacs 24.1 |
| 93 | 89 | ||
| @@ -374,6 +370,13 @@ turn on `whitespace-mode' for *vc-diff* buffers. Modes should call | |||
| 374 | Instead, use "eval: (minor-mode 1)". | 370 | Instead, use "eval: (minor-mode 1)". |
| 375 | 371 | ||
| 376 | +++ | 372 | +++ |
| 373 | *** The variable `inhibit-first-line-modes-regexps' has been renamed | ||
| 374 | to `inhibit-local-variables-regexps'. As the name suggests, it now | ||
| 375 | applies to ALL file local variables, not just -*- mode ones. | ||
| 376 | The associated `inhibit-first-line-modes-suffixes' has been renamed | ||
| 377 | in the corresponding way. | ||
| 378 | |||
| 379 | +++ | ||
| 377 | ** The variable `focus-follows-mouse' now always defaults to nil. | 380 | ** The variable `focus-follows-mouse' now always defaults to nil. |
| 378 | 381 | ||
| 379 | ** New primitive `secure-hash' that supports many secure hash algorithms | 382 | ** New primitive `secure-hash' that supports many secure hash algorithms |
| @@ -427,11 +430,6 @@ These maximize and minimize the size of a window within its frame. | |||
| 427 | These functions allow to navigate through the live buffers that have | 430 | These functions allow to navigate through the live buffers that have |
| 428 | been shown in a specific window. | 431 | been shown in a specific window. |
| 429 | 432 | ||
| 430 | +++ | ||
| 431 | *** New functions `window-state-get' and `window-state-put'. | ||
| 432 | These functions allow to save and restore the state of an arbitrary | ||
| 433 | frame or window as an Elisp object. | ||
| 434 | |||
| 435 | ** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. | 433 | ** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. |
| 436 | This is handy for minibuffer-only frames, and is also used for the "mouse-1 | 434 | This is handy for minibuffer-only frames, and is also used for the "mouse-1 |
| 437 | pops up *Messages*" feature, which can now easily be changed. | 435 | pops up *Messages*" feature, which can now easily be changed. |
| @@ -1158,6 +1156,11 @@ state before the last buffer display operation in that window. | |||
| 1158 | iconifying or deleting a frame when burying a buffer shown in a dedicated | 1156 | iconifying or deleting a frame when burying a buffer shown in a dedicated |
| 1159 | frame or quitting a window showing a buffer in a frame of its own. | 1157 | frame or quitting a window showing a buffer in a frame of its own. |
| 1160 | 1158 | ||
| 1159 | +++ | ||
| 1160 | *** New functions `window-state-get' and `window-state-put'. | ||
| 1161 | These functions allow to save and restore the state of an arbitrary | ||
| 1162 | frame or window as an Elisp object. | ||
| 1163 | |||
| 1161 | ** Completion | 1164 | ** Completion |
| 1162 | 1165 | ||
| 1163 | *** New variable completion-extra-properties used to specify extra properties | 1166 | *** New variable completion-extra-properties used to specify extra properties |
| @@ -1364,6 +1367,9 @@ This means that the empty symbol can now be read back. Also, #: by itself | |||
| 1364 | (when not immediately followed by a possible symbol character) stands for | 1367 | (when not immediately followed by a possible symbol character) stands for |
| 1365 | an empty uninterned symbol. | 1368 | an empty uninterned symbol. |
| 1366 | 1369 | ||
| 1370 | +++ | ||
| 1371 | ** New math functions `isnan', `copysign', `frexp', `ldexp'. | ||
| 1372 | |||
| 1367 | ** Obsolete functions and variables | 1373 | ** Obsolete functions and variables |
| 1368 | 1374 | ||
| 1369 | *** buffer-substring-filters is obsolete. | 1375 | *** buffer-substring-filters is obsolete. |
| @@ -1378,17 +1384,20 @@ Use `filter-buffer-substring-functions' instead. | |||
| 1378 | 1384 | ||
| 1379 | * Changes in Emacs 24.1 on non-free operating systems | 1385 | * Changes in Emacs 24.1 on non-free operating systems |
| 1380 | 1386 | ||
| 1381 | ** New configure.bat option --enable-checking builds Emacs with extra | 1387 | --- |
| 1382 | runtime checks. | 1388 | ** On MS Windows, Emacs warns when using the obsolete init file _emacs, |
| 1389 | and also when HOME is set to C:\ by default. | ||
| 1390 | |||
| 1391 | ** New configure.bat options | ||
| 1392 | |||
| 1393 | *** --enable-checking builds Emacs with extra runtime checks. | ||
| 1383 | 1394 | ||
| 1384 | ** New configure.bat option --distfiles to specify files to be | 1395 | *** --distfiles specifies files to be included in binary distribution. |
| 1385 | included in binary distribution. | ||
| 1386 | 1396 | ||
| 1387 | ** New configure.bat option --without-gnutls to disable automatic | 1397 | *** --without-gnutls disables automatic GnuTLS detection. |
| 1388 | GnuTLS detection. | ||
| 1389 | 1398 | ||
| 1390 | ** New configure.bat option --lib for general library linkage, works | 1399 | *** --lib for general library linkage, works with the USER_LIBS build |
| 1391 | with the USER_LIBS build variable. | 1400 | variable. |
| 1392 | 1401 | ||
| 1393 | ** New make target `dist' to create binary distribution for MS Windows. | 1402 | ** New make target `dist' to create binary distribution for MS Windows. |
| 1394 | 1403 | ||
diff --git a/etc/NEWS.23 b/etc/NEWS.23 index f9dbfa8adef..77ba82c15ad 100644 --- a/etc/NEWS.23 +++ b/etc/NEWS.23 | |||
| @@ -24,12 +24,22 @@ require version 1.14 or later. See README.W32 and nt/INSTALL for | |||
| 24 | details and pointers to URLs where the latest libpng can be | 24 | details and pointers to URLs where the latest libpng can be |
| 25 | downloaded. | 25 | downloaded. |
| 26 | 26 | ||
| 27 | 27 | * Changes in Specialized Modes and Packages in Emacs 23.4 | |
| 28 | |||
| 29 | ** EDE | ||
| 30 | |||
| 31 | *** New variable `ede-project-directories'. | ||
| 32 | EDE now refuses to automatically load a project file (Project.ede) | ||
| 33 | unless the file is in one of the directories specified by this | ||
| 34 | variable. This reduces the risk of inadvertently loading malicious | ||
| 35 | project files. The commands `M-x ede-new' and `M-x ede' now offer to | ||
| 36 | save directories to `ede-project-directories'. | ||
| 37 | |||
| 28 | * Changes in Emacs 23.4 on non-free operating systems | 38 | * Changes in Emacs 23.4 on non-free operating systems |
| 29 | 39 | ||
| 30 | ** The MS-Windows port can now use more than 500MB of heap. | 40 | ** The MS-Windows port can now use more than 500MB of heap. |
| 31 | Depending on the available virtual memory, Emacs on Windows can now | 41 | Depending on the available virtual memory, Emacs on Windows can now |
| 32 | have up to 2GB of heap space. This allows, e.g., to visit several | 42 | have up to 2GB of heap space. This allows, e.g., visiting several |
| 33 | large (> 256MB) files in the same session. | 43 | large (> 256MB) files in the same session. |
| 34 | 44 | ||
| 35 | 45 | ||
| @@ -71,6 +71,12 @@ things in their .emacs. | |||
| 71 | 71 | ||
| 72 | ** See if other files can use generated-autoload-file (see eg ps-print). | 72 | ** See if other files can use generated-autoload-file (see eg ps-print). |
| 73 | 73 | ||
| 74 | ** Write more tests. Pick a fixed bug from the database, write a test | ||
| 75 | case to make sure it stays fixed. Or pick your favorite programming | ||
| 76 | major-mode, and write a test for its indentation. Or a version | ||
| 77 | control backend, and write a test for its status parser. Etc. | ||
| 78 | See test/automated for examples. | ||
| 79 | |||
| 74 | * Small but important fixes needed in existing features: | 80 | * Small but important fixes needed in existing features: |
| 75 | 81 | ||
| 76 | ** Flymake's customization mechanism needs to be both simpler (fewer | 82 | ** Flymake's customization mechanism needs to be both simpler (fewer |
diff --git a/etc/tutorials/TUTORIAL.bg b/etc/tutorials/TUTORIAL.bg index 22f96f169b9..91198961bff 100644 --- a/etc/tutorials/TUTORIAL.bg +++ b/etc/tutorials/TUTORIAL.bg | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | Âúâåäåíèåòî íà Åìàêñ. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. | 1 | Âúâåäåíèå â Åìàêñ. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà. |
| 2 | 2 | ||
| 3 | Êîìàíäèòå íà Åìàêñ íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà | 3 | Êîìàíäèòå íà Åìàêñ íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà |
| 4 | îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè | 4 | îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè |
| @@ -14,14 +14,14 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | |||
| 14 | êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå | 14 | êëàâèøà ESC è ñëåä òîâà âúâåäåòå <çíàê>. Íèå |
| 15 | çàïèñâàìå <ESC>, çà äà îòáåëåæèì êëàâèøà ESC. | 15 | çàïèñâàìå <ESC>, çà äà îòáåëåæèì êëàâèøà ESC. |
| 16 | 16 | ||
| 17 | Âàæíà áåëåæêà: â êðàÿ íà Åìàêñ ñåñèÿòà âúâåäåòå äâàòà çíàêà C-x C-c. | 17 | Âàæíà áåëåæêà: â êðàÿ íà Åìàêñ ñåñèÿòà âúâåäåòå C-x C-c. (Äâà çíàêà.) |
| 18 | Çíàöèòå ">>" îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð: | 18 | Çà äà ïðåêúñíåòå ÷àñòè÷íî âúâåäåíà êîìàíäà, èçïîëçâàéòå C-g. |
| 19 | Çíàöèòå „>>“ îòëÿâî âè äàâàò óêàçàíèå äà èçïúëíèòå êîìàíäà. Íàïðèìåð: | ||
| 19 | <<Blank lines inserted here by startup of help-with-tutorial>> | 20 | <<Blank lines inserted here by startup of help-with-tutorial>> |
| 20 | >> Ñåãà âúâåäåòå C-v (Ïîêàæè ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå êúì | 21 | >> Ñåãà âúâåäåòå C-v (Ïîêàçâàíå íà ñëåäâàùèÿ åêðàí), çà äà ñå ïðèäâèæèòå |
| 21 | ñëåäâàùèÿ åêðàí. | 22 | êúì ñëåäâàùèÿ åêðàí. (Íàïðàâåòå ãî ñåãà, çàäðúæòå CONTROL, |
| 22 | (Íàïðàâåòå ãî ñåãà, çàäðúæòå CONTROL, äîêàòî íàòèñêàòå v). | 23 | äîêàòî íàòèñêàòå „v“). Îòñåãà íàòàòúê âèå ùå ïðàâèòå òîâà âèíàãè, |
| 23 | Îòñåãà íàòàòúê âèå ùå ïðàâèòå òîâà âèíàãè, êîãàòî ïðî÷åòåòå | 24 | êîãàòî ïðî÷åòåòå åêðàíà. |
| 24 | åêðàíà. | ||
| 25 | 25 | ||
| 26 | Çàáåëåæåòå, ÷å èìà ïðèïîêðèâàíå íà äâà ðåäà, êîãàòî ñå ïðèäâèæâàòå îò | 26 | Çàáåëåæåòå, ÷å èìà ïðèïîêðèâàíå íà äâà ðåäà, êîãàòî ñå ïðèäâèæâàòå îò |
| 27 | åêðàí â åêðàí; òîâà îñèãóðÿâà íÿêàêâà ïðèåìñòâåíîñò, òàêà ÷å äà ìîæåòå | 27 | åêðàí â åêðàí; òîâà îñèãóðÿâà íÿêàêâà ïðèåìñòâåíîñò, òàêà ÷å äà ìîæåòå |
| @@ -30,8 +30,8 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | |||
| 30 | Ïúðâîòî íåùî, êîåòî òðÿáâà äà çíàåòå, å êàê äà ñå ïðèäâèæâàòå îò åäíî | 30 | Ïúðâîòî íåùî, êîåòî òðÿáâà äà çíàåòå, å êàê äà ñå ïðèäâèæâàòå îò åäíî |
| 31 | ìÿñòî íà òåêñòà êúì äðóãî. Âèå âå÷å çíàåòå êàê äà ñå ïðèäâèæâàòå | 31 | ìÿñòî íà òåêñòà êúì äðóãî. Âèå âå÷å çíàåòå êàê äà ñå ïðèäâèæâàòå |
| 32 | åêðàí íàïðåä, ñ C-v. Çà äà ñå ïðèäâèæèòå åêðàí íàçàä, âúâåäåòå M-v | 32 | åêðàí íàïðåä, ñ C-v. Çà äà ñå ïðèäâèæèòå åêðàí íàçàä, âúâåäåòå M-v |
| 33 | (çàäðúæòå êëàâèøà META è íàòèñíåòå v, èëè âúâåäåòå <ESC>v, àêî íÿìàòå | 33 | (çàäðúæòå êëàâèøà META è íàòèñíåòå „v“, èëè âúâåäåòå <ESC> è ïîñëå „v“, |
| 34 | êëàâèø META, EDIT èëè ALT). | 34 | àêî íÿìàòå êëàâèø META, EDIT èëè ALT). |
| 35 | 35 | ||
| 36 | >> Îïèòàéòå ñå äà âúâåäåòå M-v è ñëåä òîâà C-v íÿêîëêî ïúòè. | 36 | >> Îïèòàéòå ñå äà âúâåäåòå M-v è ñëåä òîâà C-v íÿêîëêî ïúòè. |
| 37 | 37 | ||
| @@ -49,7 +49,11 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | |||
| 49 | 49 | ||
| 50 | >> Íàìåðåòå êóðñîðà è ñè çàïîìíåòå êàêúâ å òåêñòúò îêîëî íåãî. | 50 | >> Íàìåðåòå êóðñîðà è ñè çàïîìíåòå êàêúâ å òåêñòúò îêîëî íåãî. |
| 51 | Ñëåä òîâà âúâåäåòå C-l. | 51 | Ñëåä òîâà âúâåäåòå C-l. |
| 52 | Íàìåðåòå ïàê êóðñîðà è âèæòå, ÷å ñúùèÿò òåêñò å ïàê îêîëî êóðñîðà. | 52 | Íàìåðåòå ïàê êóðñîðà è âèæòå, ÷å ñúùèÿò òåêñò å ïàê îêîëî êóðñîðà, |
| 53 | íî ñåãà âå÷å â ñðåäàòà íà åêðàíà. | ||
| 54 | Àêî ïàê íàòèñíåòå C-l, òàçè ÷àñò îò òåêñòà ùå ñå ïðèäâèæè â ãîðíèÿ | ||
| 55 | êðàé íà åêðàíà. Íàòèñíåòå îòíîâî C-l è òîçè òåêñò ùå îòèäå â äîëíèÿ | ||
| 56 | êðàé íà åêðàíà. | ||
| 53 | 57 | ||
| 54 | Ìîæå ñúùî äà èçïîëçâàòå êëàâèøèòå PageUp è PageDown çà ïðèäâèæâàíå ïî | 58 | Ìîæå ñúùî äà èçïîëçâàòå êëàâèøèòå PageUp è PageDown çà ïðèäâèæâàíå ïî |
| 55 | åêðàíè, àêî âàøèÿò òåðìèíàë ãè ïðèòåæàâà, íî âèå ìîæåòå äà ðåäàêòèðàòå | 59 | åêðàíè, àêî âàøèÿò òåðìèíàë ãè ïðèòåæàâà, íî âèå ìîæåòå äà ðåäàêòèðàòå |
| @@ -65,7 +69,7 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | |||
| 65 | Èìà íÿêîëêî íà÷èíà äà ãî íàïðàâèòå. Ìîæå äà èçïîëçâàòå êëàâèøèòå | 69 | Èìà íÿêîëêî íà÷èíà äà ãî íàïðàâèòå. Ìîæå äà èçïîëçâàòå êëàâèøèòå |
| 66 | ñòðåëêè, íî å ïî-åôåêòèâíî äà äúðæèòå ðúöåòå ñè â ñòàíäàðòíî ïîëîæåíèå | 70 | ñòðåëêè, íî å ïî-åôåêòèâíî äà äúðæèòå ðúöåòå ñè â ñòàíäàðòíî ïîëîæåíèå |
| 67 | è äà èçïîëçâàòå êîìàíäèòå C-p, C-b, C-f è C-n. Òåçè çíàöè ñà | 71 | è äà èçïîëçâàòå êîìàíäèòå C-p, C-b, C-f è C-n. Òåçè çíàöè ñà |
| 68 | åêâèâàëåíòíè íà ÷åòèðèòå êëàâèøè ñòðåëêè, åòî òàêà: | 72 | åêâèâàëåíòíè íà ÷åòèðèòå êëàâèøè ñòðåëêè ïî ñëåäíèÿ íà÷èí: |
| 69 | 73 | ||
| 70 | Ïðåäèøåí ðåä (Previous), C-p | 74 | Ïðåäèøåí ðåä (Previous), C-p |
| 71 | : | 75 | : |
| @@ -76,38 +80,37 @@ ALT). Âìåñòî äà ñå èçïèñâàò ñ ïúëíî èìå âñåêè ïúò, íèå ùå èçïîëçâàìå | |||
| 76 | Ñëåäâàù ðåä (Next), C-n | 80 | Ñëåäâàù ðåä (Next), C-n |
| 77 | 81 | ||
| 78 | >> Ïðèäâèæåòå êóðñîðà äî ðåäà â ñðåäàòà íà òàçè äèàãðàìà, èçïîëçâàéêè | 82 | >> Ïðèäâèæåòå êóðñîðà äî ðåäà â ñðåäàòà íà òàçè äèàãðàìà, èçïîëçâàéêè |
| 79 | C-n è C-p. Ñëåä òîâà íàòèñíåòå C-l, çà äà âèäèòå öÿëàòà äèàãðàìà, | 83 | C-n è C-p. Ñëåä òîâà íàòèñíåòå C-l è ùå âèäèòå öÿëàòà äèàãðàìà, |
| 80 | öåíòðèðàíà íà åêðàíà. | 84 | öåíòðèðàíà íà åêðàíà. |
| 81 | 85 | ||
| 82 | Ùå íàìåðèòå, ÷å çàïîìíÿíåòî íà òåçè áóêâè ïî äóìèòå íà àíãëèéñêè íà | 86 | Ùå íàìåðèòå, ÷å çàïîìíÿíåòî íà òåçè áóêâè ïî äóìèòå íà àíãëèéñêè íà |
| 83 | äåéñòâèÿòà, êîèòî èçâúðøâàò, å ëåñíî: P çà Previous (ïðåäèøåí), N çà | 87 | äåéñòâèÿòà, êîèòî èçâúðøâàò, å ëåñíî: „P“ çà Previous (ïðåäèøåí), „N“ |
| 84 | Next (ñëåäâàù), B çà Backward (íàçàä) è F çà Forward (íàïðåä). Âèå ùå | 88 | çà Next (ñëåäâàù), „B“ çà Backward (íàçàä) è „F“ çà Forward (íàïðåä). |
| 85 | èçïîëçâàòå òåçè îñíîâíè êîìàíäè çà ïðèäâèæâàíå íà êóðñîðà ïðåç öÿëîòî | 89 | Âèå ùå èçïîëçâàòå òåçè îñíîâíè êîìàíäè çà ïðèäâèæâàíå íà êóðñîðà ïðåç |
| 86 | âðåìå. | 90 | öÿëîòî âðåìå. |
| 87 | 91 | ||
| 88 | >> Âúâåäåòå íÿêîëêî C-n, çà äà äîâåäåòå êóðñîðà äî òîçè ðåä. | 92 | >> Âúâåäåòå íÿêîëêî ïúòè C-n, çà äà äîâåäåòå êóðñîðà äî òîçè ðåä. |
| 89 | 93 | ||
| 90 | >> Ïðèäâèæåòå ñå â ðåäà ñ íÿêîëêî C-f è ñëåä òîâà ñ íÿêîëêî C-p. | 94 | >> Ïðèäâèæåòå ñå âúòðå â ðåäà ñ íÿêîëêî C-f è ñëåä òîâà ñ íÿêîëêî C-p. |
| 91 | Âèæòå êàêâî ïðàâè C-p, êîãàòî êóðñîðúò å â ñðåäàòà íà ðåäà. | 95 | Âèæòå êàêâî ïðàâè C-p, êîãàòî êóðñîðúò å â ñðåäàòà íà ðåäà. |
| 92 | 96 | ||
| 93 | Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà | 97 | Âñåêè ðåä îò òåêñò çàâúðøâà ñúñ çíàê çà íîâ ðåä, êîéòî ñëóæè çà |
| 94 | îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë | 98 | îòäåëÿíåòî íà ðåäà îò ñëåäâàùèÿ ðåä. (Ïîñëåäíèÿò ðåä âúâ âàøèÿ ôàéë |
| 95 | òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ (íî Åìàêñ íå èçèñêâà òàêúâ, | 99 | òðÿáâà äà èìà çíàê çà íîâ ðåä â êðàÿ, íî Åìàêñ íå èçèñêâà òàêúâ.) |
| 96 | êîãàòî ïðî÷èòà ôàéëà). | ||
| 97 | 100 | ||
| 98 | >> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ | 101 | >> Îïèòàéòå C-b â íà÷àëîòî íà ðåä. Òîâà òðÿáâà äà âè ïðèäâèæè â êðàÿ |
| 99 | íà ïðåäèøíèÿ ðåä. Òîâà å òàêà, çàùîòî êóðñîðúò ñå ïðèäâèæâà êúì | 102 | íà ïðåäèøíèÿ ðåä. Òîâà å òàêà, çàùîòî êóðñîðúò ñå ïðèäâèæâà êúì |
| 100 | çíàêà çà íîâ ðåä íà ïðåäèøíèÿ ðåä. | 103 | çíàêà çà íîâ ðåä íà ïðåäèøíèÿ ðåä. |
| 101 | 104 | ||
| 102 | C-f ìîæå äà ïðèäâèæâà ïðåç çíàê çà íîâ ðåä òî÷íî êàêòî C-b. | 105 | C-f ìîæå äà ïðèäâèæâà ïðåç çíàê çà íîâ ðåä, òî÷íî êàêòî C-b. |
| 103 | 106 | ||
| 104 | >> Íàïðàâåòå íÿêîëêî C-b ïðèäâèæâàíèÿ, òàêà ÷å äà äîáèåòå óñåùàíå êúäå | 107 | >> Íàïðàâåòå íÿêîëêî ïðèäâèæâàíèÿ ñ C-b, òàêà ÷å äà äîáèåòå óñåùàíå |
| 105 | ñå íàìèðà êóðñîðúò. Ñëåä òîâà íÿêîëêî C-f, çà äà ñå âúðíåòå â êðàÿ | 108 | êúäå ñå íàìèðà êóðñîðúò. Ñëåä òîâà íÿêîëêî C-f, äîêàòî ñå âúðíåòå |
| 106 | íà ðåäà. Ñëåä òîâà îùå íÿêîëêî C-f, çà äà ñå ïðèäâèæèòå äî | 109 | â êðàÿ íà ðåäà. Ñëåä òîâà îùå íÿêîëêî C-f, çà äà ñå ïðèäâèæèòå äî |
| 107 | ñëåäâàùèÿ ðåä. | 110 | ñëåäâàùèÿ ðåä. |
| 108 | 111 | ||
| 109 | Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò | 112 | Êîãàòî ñå ïðèäâèæâàòå ñëåä ãîðíèÿ èëè äîëíèÿ êðàé íà åêðàíà, òåêñòúò |
| 110 | îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à "ñêðîëèðàíå". Òî | 113 | îòâúä êðàÿ ñå èçìåñòâà êúì åêðàíà. Òîâà ñå íàðè÷à „ñêðîëèðàíå“. Òî |
| 111 | ïîçâîëÿâà íà Åìàêñ äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà, | 114 | ïîçâîëÿâà íà Åìàêñ äà ïðèäâèæâà êóðñîðà êúì çàäàäåíîòî ìÿñòî â òåêñòà, |
| 112 | áåç äà ãî èçêàðâà èçâúí åêðàíà. | 115 | áåç äà ãî èçêàðâà èçâúí åêðàíà. |
| 113 | 116 | ||
| @@ -146,9 +149,8 @@ Control-çíàöèòå äåéñòâàò âúðõó îñíîâíè åäèíèöè, êîèòî ñà íåçàâèñèìè îò | |||
| 146 | êëàâèøíè êîìáèíàöèè íå ñà òî÷íî àíàëîãè÷íè, âñÿêà åäíà îò òÿõ èçãëåæäà | 149 | êëàâèøíè êîìáèíàöèè íå ñà òî÷íî àíàëîãè÷íè, âñÿêà åäíà îò òÿõ èçãëåæäà |
| 147 | åñòåñòâåíà. | 150 | åñòåñòâåíà. |
| 148 | 151 | ||
| 149 | Ïîëîæåíèåòî íà êóðñîðà â òåêñòà ñå íàðè÷à ñúùî "òî÷êà". | 152 | Ïîëîæåíèåòî íà êóðñîðà â òåêñòà ñå íàðè÷à „òî÷êà“. Ïåðåôðàçèðàíî, |
| 150 | Ïåðåôðàçèðàíî, êóðñîðúò ïîêàçâà íà åêðàíà êúäå å ðàçïîëîæåíà òî÷êàòà â | 153 | êóðñîðúò ïîêàçâà íà åêðàíà êúäå å ðàçïîëîæåíà òî÷êàòà â òåêñòà. |
| 151 | òåêñòà. | ||
| 152 | 154 | ||
| 153 | Åòî îáîáùåíèå íà ïðîñòèòå äåéñòâèÿ, äâèæåùè êóðñîðà, âêëþ÷èòåëíî | 155 | Åòî îáîáùåíèå íà ïðîñòèòå äåéñòâèÿ, äâèæåùè êóðñîðà, âêëþ÷èòåëíî |
| 154 | ïðèäâèæâàùèòå ïî äóìà è èçðå÷åíèå: | 156 | ïðèäâèæâàùèòå ïî äóìà è èçðå÷åíèå: |
| @@ -175,7 +177,7 @@ Control-çíàöèòå äåéñòâàò âúðõó îñíîâíè åäèíèöè, êîèòî ñà íåçàâèñèìè îò | |||
| 175 | êîÿòî ïðèäâèæâà äî íà÷àëîòî íà öåëèÿ òåêñò, è M-> (Meta ïî-ãîëÿìî), | 177 | êîÿòî ïðèäâèæâà äî íà÷àëîòî íà öåëèÿ òåêñò, è M-> (Meta ïî-ãîëÿìî), |
| 176 | êîÿòî ïðåìåñòâà äî êðàÿ íà öåëèÿ òåêñò. | 178 | êîÿòî ïðåìåñòâà äî êðàÿ íà öåëèÿ òåêñò. |
| 177 | 179 | ||
| 178 | Ïðè ïîâå÷åòî òåðìèíàëè çíàêúò "<" å îòáåëÿçàí íàä çàïåòàÿòà, òàêà ÷å | 180 | Ïðè ïîâå÷åòî òåðìèíàëè çíàêúò „<“ å îòáåëÿçàí íàä çàïåòàÿòà, òàêà ÷å |
| 179 | òðÿáâà äà èçïîëçâàòå êëàâèøà Shift, çà äà ãî íàïèøåòå. Íà òåçè | 181 | òðÿáâà äà èçïîëçâàòå êëàâèøà Shift, çà äà ãî íàïèøåòå. Íà òåçè |
| 180 | òåðìèíàëè òðÿáâà äà èçïîëçâàòå Shift, çà äà âúâåäåòå è M-<; áåç êëàâèøà | 182 | òåðìèíàëè òðÿáâà äà èçïîëçâàòå Shift, çà äà âúâåäåòå è M-<; áåç êëàâèøà |
| 181 | Shift áèõòå âúâåëè M-çàïåòàÿ. | 183 | Shift áèõòå âúâåëè M-çàïåòàÿ. |
| @@ -206,17 +208,17 @@ Shift áèõòå âúâåëè M-çàïåòàÿ. | |||
| 206 | (èëè EDIT èëè ALT), èìà äðóã, àëòåðíàòèâåí íà÷èí äà âúâåäåòå ÷èñëîâ | 208 | (èëè EDIT èëè ALT), èìà äðóã, àëòåðíàòèâåí íà÷èí äà âúâåäåòå ÷èñëîâ |
| 207 | àðãóìåíò: âúâåäåòå öèôðèòå, äîêàòî çàäúðæàòå êëàâèøà META. Íèå | 209 | àðãóìåíò: âúâåäåòå öèôðèòå, äîêàòî çàäúðæàòå êëàâèøà META. Íèå |
| 208 | ïðåïîðú÷âàìå äà íàó÷èòå íà÷èíà ñ C-u, çàùîòî òîé ðàáîòè íà êîéòî è äà | 210 | ïðåïîðú÷âàìå äà íàó÷èòå íà÷èíà ñ C-u, çàùîòî òîé ðàáîòè íà êîéòî è äà |
| 209 | å òåðìèíàë. ×èñëîâèÿò àðãóìåíò ñå íàðè÷à ñúùî "ïðåôèêñåí àðãóìåíò", | 211 | å òåðìèíàë. ×èñëîâèÿò àðãóìåíò ñå íàðè÷à ñúùî „ïðåôèêñåí àðãóìåíò“, |
| 210 | çàùîòî ãî âúâåæäàòå ïðåäè êîìàíäàòà, çà êîÿòî å ïðåäíàçíà÷åí. | 212 | çàùîòî ãî âúâåæäàòå ïðåäè êîìàíäàòà, çà êîÿòî å ïðåäíàçíà÷åí. |
| 211 | 213 | ||
| 212 | Íàïðèìåð, C-u 8 C-f ïðèäâèæâà îñåì çíàêà íàïðåä. | 214 | Íàïðèìåð C-u 8 C-f ïðèäâèæâà îñåì çíàêà íàïðåä. |
| 213 | 215 | ||
| 214 | >> Îïèòàéòå èçïîëçâàíåòî íà C-n èëè C-p ñ ÷èñëîâ àðãóìåíò, çà äà | 216 | >> Îïèòàéòå èçïîëçâàíåòî íà C-n èëè C-p ñ ÷èñëîâ àðãóìåíò, çà äà |
| 215 | ïðèäâèæèòå êóðñîðà äî ðåä, áëèçúê äî òîçè, ñàìî ñ åäíà êîìàíäà. | 217 | ïðèäâèæèòå êóðñîðà äî ðåä, áëèçúê äî òîçè, ñàìî ñ åäíà êîìàíäà. |
| 216 | 218 | ||
| 217 | Ïîâå÷åòî êîìàíäè èçïîëçâàò ÷èñëîâèÿ àðãóìåíò êàòî áðîÿ÷ íà | 219 | Ïîâå÷åòî êîìàíäè èçïîëçâàò ÷èñëîâèÿ àðãóìåíò êàòî áðîÿ÷ íà |
| 218 | ïîâòîðåíèÿòà, íî íÿêîè ãî èçïîëçâàò çà äðóãè öåëè. Íÿêîëêî êîìàíäè | 220 | ïîâòîðåíèÿòà, íî íÿêîè ãî èçïîëçâàò çà äðóãè öåëè. Íÿêîëêî êîìàíäè |
| 219 | (íî íèêîÿ îò òåçè, êîèòî ñòå íàó÷èëè äîñåãà) ãî èçïîëçâàò êàòî ôëàã -- | 221 | (íî íèêîÿ îò òåçè, êîèòî ñòå íàó÷èëè äîñåãà) ãî èçïîëçâàò êàòî ôëàã – |
| 220 | ïðèñúñòâèåòî íà ÷èñëîâ àðãóìåíò, íåçàâèñèìî îò ñòîéíîñòà ìó, êàðà | 222 | ïðèñúñòâèåòî íà ÷èñëîâ àðãóìåíò, íåçàâèñèìî îò ñòîéíîñòà ìó, êàðà |
| 221 | êîìàíäàòà äà âúðøè íåùî ðàçëè÷íî. | 223 | êîìàíäàòà äà âúðøè íåùî ðàçëè÷íî. |
| 222 | 224 | ||
| @@ -234,13 +236,8 @@ C-v è M-v ñà äðóã âèä èçêëþ÷åíèå. Êîãàòî èì å äàäåí àðãóìåíò, òå | |||
| 234 | bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå | 236 | bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå |
| 235 | òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à. | 237 | òåêñòà, ùðàêàéêè ñ ìèøêàòà â ïëúçãà÷à. |
| 236 | 238 | ||
| 237 | >> Îïèòàéòå äà íàòèñíåòå ñðåäíèÿ áóòîí íà âúðõà íà îñâåòåíàòà îáëàñò | 239 | Àêî âàøàòà ìèøêà èìà òúðêàëöå, ìîæåòå è íåãî äà èçïîëçâàòå çà |
| 238 | âúòðå â ïëúçãà÷à. Òîâà áè òðÿáâàëî äà ñêðîëèðà òåêñòà êúì | 240 | ñêðîëèðàíå. |
| 239 | ïîëîæåíèå, îïðåäåëåíî îò òîâà êîëêî âèñîêî èëè íèñêî ñòå ùðàêíàëè. | ||
| 240 | |||
| 241 | >> Îïèòàéòå ñå äà äâèæèòå ìèøêàòà íàãîðå è íàäîëó, äîêàòî ñòå | ||
| 242 | çàäúðæàëè äåñíèÿ áóòîí íàòèñíàò. Ùå âèäèòå, ÷å òåêñòúò ñå ñêðîëèðà | ||
| 243 | íàãîðå è íàäîëó, êàòî äâèæèòå ìèøêàòà. | ||
| 244 | 241 | ||
| 245 | 242 | ||
| 246 | * ÊÎÃÀÒÎ ÅÌÀÊÑ Å ÁËÎÊÈÐÀË | 243 | * ÊÎÃÀÒÎ ÅÌÀÊÑ Å ÁËÎÊÈÐÀË |
| @@ -263,7 +260,7 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 263 | * ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ | 260 | * ÇÀÁÐÀÍÅÍÈ ÊÎÌÀÍÄÈ |
| 264 | ------------------- | 261 | ------------------- |
| 265 | 262 | ||
| 266 | Íÿêîè êîìàíäè íà Åìàêñ ñà "çàáðàíåíè", òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè | 263 | Íÿêîè êîìàíäè íà Åìàêñ ñà „çàáðàíåíè“, òàêà ÷å íà÷èíàåùèòå ïîòðåáèòåëè |
| 267 | äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà. | 264 | äà íå ìîãàò äà ãè óïîòðåáÿò ïî ïîãðåøêà. |
| 268 | 265 | ||
| 269 | Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Åìàêñ èçâåæäà ñúîáùåíèå, | 266 | Àêî âúâåäåòå íÿêîÿ îò çàáðàíåíèòå êîìàíäè, Åìàêñ èçâåæäà ñúîáùåíèå, |
| @@ -272,16 +269,16 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 272 | 269 | ||
| 273 | Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå êëàâèøà èíòåðâàë | 270 | Àêî íàèñòèíà èñêàòå äà èçïðîáâàòå êîìàíäàòà, âúâåäåòå êëàâèøà èíòåðâàë |
| 274 | â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå | 271 | â îòãîâîð íà âúïðîñà. Îáèêíîâåíî àêî íå èñêàòå äà èçïúëíèòå |
| 275 | çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ "n". | 272 | çàáðàíåíàòà êîìàíäà, îòãîâàðÿòå íà âúïðîñà ñ „n“. |
| 276 | 273 | ||
| 277 | >> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå | 274 | >> Âúâåäåòå C-x C-l (êîÿòî å çàáðàíåíà êîìàíäà), è ñëåä òîâà âúâåäåòå |
| 278 | "n" â îòãîâîð íà âúïðîñà. | 275 | „n“ â îòãîâîð íà âúïðîñà. |
| 279 | 276 | ||
| 280 | 277 | ||
| 281 | * ÏÐÎÇÎÐÖÈ | 278 | * ÏÐÎÇÎÐÖÈ |
| 282 | ---------- | 279 | ---------- |
| 283 | 280 | ||
| 284 | Åìàêñ ìîæå äà óïðàâëÿâà íÿêîëêî ïðîçîðåöà, âñåêè èçâåæäàéêè ñâîé | 281 | Åìàêñ ìîæå äà óïðàâëÿâà íÿêîëêî „ïðîçîðåöà“, âñåêè èçâåæäàéêè ñâîé |
| 285 | ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî | 282 | ñîáñòâåí òåêñò. Íèå ùå îáÿñíèì ïî-êúñíî êàê äà èçïîëçâàòå íÿêîëêî |
| 286 | ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò | 283 | ïðîçîðåöà. Òî÷íî ñåãà íèå èñêàìå äà îáÿñíèì êàê äà ñå îòúðâåòå îò |
| 287 | äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí | 284 | äîïúëíèòåëíè ïðîçîðöè è äà ñå âúðíåòå êúì îñíîâíîòî ðåäàêòèðàíå ñ åäèí |
| @@ -301,57 +298,52 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 301 | >> Âúâåäåòå C-x 1 è âèæòå êàê ïðîçîðåöúò ñ äîêóìåíòàöèÿòà èç÷åçâà. | 298 | >> Âúâåäåòå C-x 1 è âèæòå êàê ïðîçîðåöúò ñ äîêóìåíòàöèÿòà èç÷åçâà. |
| 302 | 299 | ||
| 303 | Òàçè êîìàíäà íå å êàòî äðóãèòå êîìàíäè, êîèòî ñòå íàó÷èëè, â òîâà | 300 | Òàçè êîìàíäà íå å êàòî äðóãèòå êîìàíäè, êîèòî ñòå íàó÷èëè, â òîâà |
| 304 | îòíîøåíèå, ÷å ñå ñúñòîè îò äâà çíàêà. Çàïî÷âà ñúñ çíàêà C-x. Èìà | 301 | îòíîøåíèå, ÷å ñå ñúñòîè îò äâà çíàêà. Çàïî÷âà ñúñ çíàêà CONTROL-x. |
| 305 | öÿëà ðåäèöà îò êîìàíäè, êîèòî çàïî÷âàò ñ C-x; ìíîãî îò òÿõ èìàò íåùî | 302 | Èìà öÿëà ðåäèöà îò êîìàíäè, êîèòî çàïî÷âàò ñ CONTROL-x; ìíîãî îò òÿõ |
| 306 | îáùî ñ ïðîçîðöè, ôàéëîâå, áóôåðè è ñâúðçàíèòå ñ òÿõ íåùà. Òåçè | 303 | èìàò íåùî îáùî ñ ïðîçîðöè, ôàéëîâå, áóôåðè è ñâúðçàíèòå ñ òÿõ íåùà. |
| 307 | êîìàíäè ñà îò äâà, òðè èëè ÷åòèðè çíàêà. | 304 | Òåçè êîìàíäè ñà îò äâà, òðè èëè ÷åòèðè çíàêà. |
| 308 | 305 | ||
| 309 | 306 | ||
| 310 | * ÂÌÚÊÂÀÍÅ È ÈÇÒÐÈÂÀÍÅ | 307 | * ÂÌÚÊÂÀÍÅ È ÈÇÒÐÈÂÀÍÅ |
| 311 | ---------------------- | 308 | ---------------------- |
| 312 | 309 | ||
| 313 | Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî | 310 | Àêî èñêàòå äà âìúêíåòå òåêñò, ïðîñòî ãî âúâåäåòå. Çíàöèòå, êîèòî |
| 314 | ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âúçïðèåìàò îò Åìàêñ êàòî | 311 | ìîãàò äà ñå âèæäàò, êàòî À, 7, * è ò.í., ñå âìúêâàò âåäíàãà. Çà äà |
| 315 | òåêñò è ñå âìúêâàò âåäíàãà. Âúâåäåòå <Return> (êëàâèøúò çà âðúùàíå â | 312 | âìúêíåòå çíàê çà íîâ ðåä, íàòèñíåòå <Return> (òîâà å êëàâèøúò, êîéòî |
| 316 | íà÷àëîòî íà ðåäà), çà äà âìúêíåòå çíàê çà íîâ ðåä. | 313 | ïîíÿêîãà å îòáåëÿçâàí êàòî „Enter“). |
| 317 | |||
| 318 | Ìîæå äà èçòðèåòå ïîñëåäíèÿ çíàê, êîéòî ñòå âúâåëè, ñ âúâåæäàíå íà | ||
| 319 | <Delback>. <Delback> å êëàâèø îò êëàâèàòóðàòà -- ñúùèÿò, êîéòî | ||
| 320 | îáèêíîâåíî èçïîëçâàòå èçâúí Åìàêñ, çà äà èçòðèåòå ïîñëåäíèÿ âúâåäåí îò | ||
| 321 | âàñ çíàê. Îáèêíîâåíî å ãîëÿì êëàâèø, íà íÿêîëêî ðåäà ðàçñòîÿíèå îò | ||
| 322 | êëàâèøà <Return>, è îáèêíîâåíî å îòáåëÿçàí ñ "Delete", "Del" èëè | ||
| 323 | "Backspace". | ||
| 324 | 314 | ||
| 325 | Àêî ãîëåìèÿò êëàâèø òàì å ñ åòèêåò "Backspace", òîãàâà òîé å òîçè, | 315 | Çà äà èçòðèåòå çíàêà íåïîñðåäñòâåíî ïðåäè òåêóùîòî ïîëîæåíèå íà |
| 326 | êîéòî ùå èçïîëçâàòå çà <Delback>. Ìîæå äà èìà îùå åäèí êëàâèø ñ | 316 | êóðñîðà, âúâåäåòå <DEL>. Îáèêíîâåíî òîâà å êëàâèøúò, îòáåëÿçâàí êàòî |
| 327 | åòèêåò "Delete" íÿêúäå äðóãàäå, íî òîé íå å <Delback>. | 317 | „Backspace“ – íîðìàëíèÿò çà òîâà äåéñòâèå è èçâúí Åìàêñ. |
| 328 | 318 | ||
| 329 | Ïî-îáùî êàçàíî, <Delback> èçòðèâà çíàêà òî÷íî ïðåäè òåêóùîòî ìÿñòî íà | 319 | Ìîæå äà èìà îùå åäèí êëàâèø ñ åòèêåò <Delete> íÿêúäå äðóãàäå, íî òîé |
| 330 | êóðñîðà. | 320 | íå å <DEL>, çà êîéòî ñòàâà âúïðîñ òóê. |
| 331 | 321 | ||
| 332 | >> Íàïðàâåòå òîâà ñåãà -- íàïèøåòå íÿêîëêî çíàêà, ïîñëå ãè èçòðèéòå ñ | 322 | >> Íàïðàâåòå òîâà ñåãà – íàïèøåòå íÿêîëêî çíàêà, ïîñëå ãè èçòðèéòå ñ |
| 333 | âúâåæäàíå íà <Delback> íÿêîëêî ïúòè. Íå ñå áåçïîêîéòå, ÷å òîçè | 323 | âúâåæäàíå íà <DEL> íÿêîëêî ïúòè. Íå ñå áåçïîêîéòå, ÷å òîçè ôàéë ùå |
| 334 | ôàéë ùå áúäå ïðîìåíåí; âèå íÿìà äà ïðîìåíèòå ïúðâîíà÷àëíîòî | 324 | áúäå ïðîìåíåí; âèå íÿìà äà ïðîìåíèòå ïúðâîíà÷àëíîòî âúâåäåíèå. |
| 335 | âúâåäåíèå. Òîâà å âàøå ëè÷íî êîïèå. | 325 | Òîâà å âàøå ëè÷íî êîïèå. |
| 336 | 326 | ||
| 337 | Êîãàòî ðåä îò òåêñòà ñòàíå òâúðäå äúëúã, çà äà ñå ñúáåðå â ðåä îò | 327 | Êîãàòî ðåä îò òåêñòà ñòàíå òâúðäå äúëúã, çà äà ñå ñúáåðå â ðåä îò |
| 338 | åêðàíà, ðåäúò îò òåêñòà ñå "ïðîäúëæàâà" íà ñëåäâàùèÿ ðåä. Îáðàòíà | 328 | åêðàíà, ðåäúò îò òåêñòà ñå „ïðîäúëæàâà“ íà ñëåäâàùèÿ ðåä. Àêî |
| 339 | íàêëîíåíà ÷åðòà ("\") (èëè, àêî èçïîëçâàòå ãðàôè÷åí èíòåðôåéñ, ìàëêà | 329 | èçïîëçâàòå ãðàôè÷åí äèñïëåé, â ìàëêîòî ïðîñòðàíñòâî îòñòðàíè íà òåêñòà |
| 340 | èçêðèâåíà ñòðåëêà) â äÿñíàòà ãðàíèöà îòáåëÿçâà ðåä, êîéòî å áèë | 330 | (ëåâèÿò è äåñíèÿò „ðúá“) ùå ñå ïîÿâÿò ìàëêè èçâèòè ñòðåëêè çà |
| 341 | ïðîäúëæåí. | 331 | îòáåëÿçâàíå êúäå ðåäúò ïðîäúëæàâà. Àêî èçïîëçâàòå òåêñòîâ òåðìèíàë, |
| 332 | ïðîäúëæåíèòå ðåäîâå ñå îòáåëÿçâàò ñ îáðàòíà íàêëîíåíà ÷åðòà („\“) â | ||
| 333 | íàé-äÿñíàòà êîëîíà íà ïðîçîðåöà. | ||
| 342 | 334 | ||
| 343 | >> Âúâåäåòå òåêñò, äîêàòî ñòèãíåòå äÿñíàòà ãðàíèöà, è ïðîäúëæåòå ñ | 335 | >> Âúâåäåòå òåêñò, äîêàòî ñòèãíåòå äÿñíàòà ãðàíèöà, è ïðîäúëæåòå ñ |
| 344 | âìúêâàíåòî. Ùå âèäèòå ïðîäúëæåíèåòî íà ðåäà äà ñå ïîêàçâà. | 336 | âìúêâàíåòî. Ùå âèäèòå ïðîäúëæåíèåòî íà ðåäà äà ñå ïîêàçâà. |
| 345 | 337 | ||
| 346 | >> Èçïîëçâàéòå íÿêîëêî <Delback>, çà äà èçòðèåòå òåêñòà, äîêàòî ðåäúò | 338 | >> Èçïîëçâàéòå íÿêîëêî <DEL>, çà äà èçòðèåòå òåêñòà, äîêàòî ðåäúò ñå |
| 347 | ñå âìåñòè â åäèí åêðàíåí ðåä. Ïðîäúëæåíèåòî íà ðåäà èç÷åçâà. | 339 | âìåñòè â åäèí åêðàíåí ðåä. Ïðîäúëæåíèåòî íà ðåäà èç÷åçâà. |
| 348 | 340 | ||
| 349 | Ìîæå äà èçòðèåòå çíàêà çà íîâ ðåä òî÷íî êàêòî âñåêè äðóã çíàê. | 341 | Ìîæå äà èçòðèåòå çíàêà çà íîâ ðåä òî÷íî êàêòî âñåêè äðóã çíàê. |
| 350 | Èçòðèâàíåòî íà çíàêà çà íîâ ðåä ìåæäó äâà ðåäà ãè ñëèâà â åäèí ðåä. | 342 | Èçòðèâàíåòî íà çíàêà çà íîâ ðåä ìåæäó äâà ðåäà ãè ñëèâà â åäèí ðåä. |
| 351 | Àêî ïîëó÷åíèÿò êîìáèíèðàí ðåä å òâúðäå äúëúã, çà äà ñå âìåñòè â | 343 | Àêî ïîëó÷åíèÿò êîìáèíèðàí ðåä å òâúðäå äúëúã, çà äà ñå âìåñòè â |
| 352 | øèðèíàòà íà åêðàíà, òîé ùå áúäå ïîêàçàí êàòî ïðîäúëæåí ðåä. | 344 | øèðèíàòà íà åêðàíà, òîé ùå áúäå ïîêàçàí êàòî ïðîäúëæåí ðåä. |
| 353 | 345 | ||
| 354 | >> Ïðèäâèæåòå êóðñîðà â íà÷àëîòî íà ðåä è âúâåäåòå <Delback>. Òîâà ùå | 346 | >> Ïðèäâèæåòå êóðñîðà â íà÷àëîòî íà ðåä è âúâåäåòå <DEL>. Òîâà ùå |
| 355 | ñëåå òîçè ðåä ñ ïðåäèøíèÿ. | 347 | ñëåå òîçè ðåä ñ ïðåäèøíèÿ. |
| 356 | 348 | ||
| 357 | >> Âúâåäåòå <Return>, çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî | 349 | >> Âúâåäåòå <Return>, çà äà âìúêíåòå íàíîâî çíàêà çà íîâ ðåä, êîéòî |
| @@ -361,48 +353,52 @@ bar), â ëÿâàòà ñòðàíà íà ïðîçîðåöà íà Åìàêñ. Âèå ìîæåòå äà ñêðîëèðàòå | |||
| 361 | íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè. | 353 | íà ïîâòîðåíèÿòà; òîâà âêëþ÷âà âìúêâàíåòî íà òåêñòîâè çíàöè. |
| 362 | Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè. | 354 | Ïîâòàðÿíåòî íà òåêñòîâ çíàê ãî âìúêâà íÿêîëêî ïúòè. |
| 363 | 355 | ||
| 364 | >> Îïèòàéòå òîâà ñåãà -- âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********. | 356 | >> Îïèòàéòå òîâà ñåãà – âúâåäåòå C-u 8 *, çà äà âìúêíåòå ********. |
| 365 | 357 | ||
| 366 | Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Åìàêñ | 358 | Ñåãà âèå ñòå íàó÷èëè íàé-îñíîâíèòå íà÷èíè çà âúâåæäàíå íà íåùî â Åìàêñ |
| 367 | è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå. | 359 | è ïîïðàâÿíå íà ãðåøêè. Ìîæåòå ñúùî òàêà äà èçòðèâàòå äóìè èëè ðåäîâå. |
| 368 | Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ: | 360 | Åòî îáîáùåíèå íà èçòðèâàùèòå äåéñòâèÿ: |
| 369 | 361 | ||
| 370 | <Delback> èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà | 362 | <DEL> Èçòðèâàíå íà çíàêà òî÷íî ïðåäè êóðñîðà |
| 371 | C-d èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà | 363 | C-d Èçòðèâàíå íà çíàêà òî÷íî ñëåä êóðñîðà |
| 372 | 364 | ||
| 373 | M-<Delback> èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà | 365 | M-<DEL> Èçòðèâàíå íà äóìàòà íåïîñðåäñòâåíî ïðåäè êóðñîðà |
| 374 | M-d èçòðèâàíå íà äóìàòà ñëåä êóðñîðà | 366 | M-d Èçòðèâàíå íà äóìàòà ñëåä êóðñîðà |
| 375 | 367 | ||
| 376 | C-k èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà | 368 | C-k Èçòðèâàíå îò ìÿñòîòî íà êóðñîðà äî êðàÿ íà ðåäà |
| 377 | M-k èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå | 369 | M-k Èçòðèâàíå äî êðàÿ íà òåêóùîòî èçðå÷åíèå |
| 378 | 370 | ||
| 379 | Çàáåëåæåòå, ÷å <Delback> è C-d, ñðàâíåíè ñ M-<Delback> è M-d, | 371 | Çàáåëåæåòå, ÷å <DEL> è C-d, ñðàâíåíè ñ M-<DEL> è M-d, ðàçøèðÿâàò |
| 380 | ðàçøèðÿâàò ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, <Delback> íå å | 372 | ïîäîáèåòî, çàïî÷íàòî îò C-f è M-f (äîáðå, <DEL> íå å íàèñòèíà |
| 381 | íàèñòèíà êîíòðîëèðàù çíàê, íî íåêà íå ñå áåçïîêîèì çà òîâà). C-k è | 373 | êîíòðîëèðàù çíàê, íî íåêà íå ñå áåçïîêîèì çà òîâà). C-k è M-k ñà |
| 382 | M-k ñà ïîäîáíè íà C-e è M-e â ñìèñúë, ÷å åäíèòå ñà çà ðåäîâå, à | 374 | ïîäîáíè íà C-e è M-e â ñìèñúë, ÷å åäíèòå ñà çà ðåäîâå, à äðóãèòå – çà |
| 383 | äðóãèòå -- çà èçðå÷åíèÿ. | 375 | èçðå÷åíèÿ. |
| 384 | 376 | ||
| 385 | Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò áóôåðà ñ åäèí óíèâåðñàëåí | 377 | Ìîæåòå ñúùî äà ïðåìàõíåòå âñÿêà ÷àñò îò òåêñòà ïî åäèí óíèâåðñàëåí |
| 386 | íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé íà ÷àñòòà è âúâåäåòå C-@ èëè | 378 | íà÷èí. Ïðèäâèæåòå ñå äî åäèíèÿ êðàé è âúâåäåòå C-<SPC> (<SPC> å |
| 387 | C-èíòåðâàë (êîåòî è äà å îò äâåòå). Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà | 379 | èíòåðâàëúò).. Ïðèäâèæåòå ñå äî äðóãèÿ êðàé íà òåêñòà, êîéòî èñêàòå äà |
| 388 | ÷àñòòà è âúâåäåòå C-w. Òîâà ùå èçðåæå öåëèÿ òåêñò ìåæäó òåçè äâà | 380 | èçòðèåòå. Äîêàòî ãî ïðàâèòå, Åìàêñ îñâåòÿâà òåêñòúò ìåæäó êóðñîðà è |
| 389 | êðàÿ. | 381 | ìÿñòîòî, êúäåòî ñå âúâåëè C-<SPC>. Íàêðàÿ âúâåäåòå C-w. Òîâà ùå |
| 382 | èçðåæå öåëèÿ òåêñò ìåæäó òåçè äâà êðàÿ. | ||
| 390 | 383 | ||
| 391 | >> Ïðèäâèæåòå êóðñîðà äî çíàêà "Ì" â íà÷àëîòî íà ïðåäèøíèÿ àáçàö. | 384 | >> Ïðèäâèæåòå êóðñîðà äî çíàêà „Ì“ â íà÷àëîòî íà ïðåäèøíèÿ àáçàö. |
| 392 | >> Âúâåäåòå C-èíòåðâàë. Åìàêñ òðÿáâà äà èçâåäå ñúîáùåíèå "Mark set" â | 385 | >> Âúâåäåòå C-<SPC>. Åìàêñ òðÿáâà äà èçâåäå ñúîáùåíèå „Mark set“ â |
| 393 | äîëíèÿ êðàé íà åêðàíà. | 386 | äîëíèÿ êðàé íà åêðàíà. |
| 394 | >> Ïðèäâèæåòå êóðñîðà äî áóêâàòà "ð" â "êðàé" íà âòîðèÿ ðåä îò àáçàöà. | 387 | >> Ïðèäâèæåòå êóðñîðà äî áóêâàòà „ð“ â „êðàé“ íà âòîðèÿ ðåä îò àáçàöà. |
| 395 | >> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò "Ì" è çàâúðøâàù | 388 | >> Âúâåäåòå C-w. Òîâà ùå èçðåæå òåêñòà, çàïî÷âàù îò „Ì“ è çàâúðøâàù |
| 396 | òî÷íî ïðåäè "ð". | 389 | òî÷íî ïðåäè „ð“. |
| 397 | 390 | ||
| 398 | Ðàçëèêàòà ìåæäó "èçðÿçâàíå" (kill, cut) è "èçòðèâàíå" (delete) å, ÷å | 391 | Ðàçëèêàòà ìåæäó „èçðÿçâàíå“ (kill, cut) è „èçòðèâàíå“ (delete) å, ÷å |
| 399 | "èçðÿçàíèÿò" òåêñò ìîæå äà áúäå âìúêíàò íàíîâî, äîêàòî "èçòðèòèòå" | 392 | „èçðÿçàíèÿò“ òåêñò ìîæå äà áúäå âìúêíàò íàíîâî, äîêàòî „èçòðèòèòå“ |
| 400 | íåùà íå ìîãàò äà ñå âìúêíàò íàíîâî. Ïîñòàâÿíåòî íàíîâî íà èçðÿçàí | 393 | íåùà íå ìîãàò äà ñå âìúêíàò íàíîâî (îáà÷å ìîæåòå äà îòìåíèòå |
| 401 | òåêñò ñå íàðè÷à "âìúêâàíå" (yank, paste). Îáùî êàçàíî, êîìàíäèòå, | 394 | èçòðèâàíåòî – âæ. ïî-äîëó). Ïîñòàâÿíåòî íàíîâî íà èçðÿçàí òåêñò ñå |
| 402 | êîèòî îòñòðàíÿâàò ìíîãî òåêñò, ãî èçðÿçâàò (òàêà ÷å òîé äà ìîæå äà | 395 | íàðè÷à „âìúêâàíå“ (yank, paste). Îáùî êàçàíî, êîìàíäèòå, êîèòî |
| 403 | áúäå âìúêíàò), äîêàòî êîìàíäèòå, êîèòî îòñòðàíÿâàò ñàìî åäèí çíàê èëè | 396 | îòñòðàíÿâàò ìíîãî òåêñò, ãî èçðÿçâàò (òàêà ÷å òîé äà ìîæå äà áúäå |
| 397 | âìúêíàò), äîêàòî êîìàíäèòå, êîèòî îòñòðàíÿâàò ñàìî åäèí çíàê èëè | ||
| 404 | èçòðèâàò ñàìî ïðàçíè ðåäîâå è çíàöè, èçâúðøâàò èçòðèâàíå (òàêà ÷å íå | 398 | èçòðèâàò ñàìî ïðàçíè ðåäîâå è çíàöè, èçâúðøâàò èçòðèâàíå (òàêà ÷å íå |
| 405 | ìîæåòå äà âìúêíåòå íàíîâî òîçè òåêñò). | 399 | ìîæåòå äà âìúêíåòå íàíîâî òîçè òåêñò). <DEL> è C-d èçòðèâàò â |
| 400 | îáèêíîâåíèÿ ñëó÷àé, êîãàòî íÿìà ïðåôèêñåí àðãóìåíò. Ïðè íàëè÷èå íà | ||
| 401 | àðãóìåíò òå îòðÿçâàò. | ||
| 406 | 402 | ||
| 407 | >> Ïðèäâèæåòå êóðñîðà äî íà÷àëîòî íà ðåä, êîéòî íå å ïðàçåí. Òîãàâà | 403 | >> Ïðèäâèæåòå êóðñîðà äî íà÷àëîòî íà ðåä, êîéòî íå å ïðàçåí. Òîãàâà |
| 408 | âúâåäåòå C-k, çà äà èçðåæåòå òåêñòà íà òîçè ðåä. | 404 | âúâåäåòå C-k, çà äà èçðåæåòå òåêñòà íà òîçè ðåä. |
| @@ -414,14 +410,16 @@ C-k èçðÿçâà öåëèÿ ðåä è ïðàâè äðóãèòå ðåäîâå äà ñå ïðèäâèæàò íàãîðå. | |||
| 414 | C-k îáðàáîòâà ÷èñëîâèòå àðãóìåíòè ïî ñïåöèàëåí íà÷èí: ïðåìàõâàò ñå | 410 | C-k îáðàáîòâà ÷èñëîâèòå àðãóìåíòè ïî ñïåöèàëåí íà÷èí: ïðåìàõâàò ñå |
| 415 | òîëêîâà íà áðîé ðåäîâå È òÿõíîòî ñúäúðæàíèå. Òîâà íå å ïðîñòî | 411 | òîëêîâà íà áðîé ðåäîâå È òÿõíîòî ñúäúðæàíèå. Òîâà íå å ïðîñòî |
| 416 | ïîâòîðåíèå. C-u 2 C-k èçðÿçâà äâà ðåäà è òåõíèòå çíàöè çà íîâ ðåä; | 412 | ïîâòîðåíèå. C-u 2 C-k èçðÿçâà äâà ðåäà è òåõíèòå çíàöè çà íîâ ðåä; |
| 417 | âúâåæäàíåòî íà C-k äâà ïúòè íå ïðàâè òîâà. | 413 | âúâåæäàíåòî äâà ïúòè íà C-k íå ïðàâè òîâà. |
| 418 | 414 | ||
| 419 | Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à "âìúêâàíå". (Ìèñëåòå çà íåãî | 415 | Âðúùàíåòî îáðàòíî íà òåêñò ñå íàðè÷à „âìúêâàíå“. (Ìèñëåòå çà íåãî |
| 420 | êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë | 416 | êàòî çà èçâàæäàíå îáðàòíî, èëè äðúïâàíå îáðàòíî, íà òåêñò, êîéòî å áèë |
| 421 | èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî, | 417 | èçðÿçàí.) Ìîæåòå äà âìúêâàòå èçðÿçàíèÿ òåêñò èëè íà ñúùîòî ìÿñòî, |
| 422 | îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â áóôåðà, äàæå è â | 418 | îòêúäåòî å áèë ïðåìàõíàò, èëè íà äðóãî ìÿñòî â áóôåðà, èëè äàæå â |
| 423 | ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî ïúòè; òîâà | 419 | ðàçëè÷åí ôàéë. Ìîæåòå äà âìúêâàòå åäèí è ñúù òåêñò íÿêîëêî ïúòè; òîâà |
| 424 | ïðàâè íÿêîëêî êîïèÿ îò íåãî. | 420 | ïðàâè íÿêîëêî êîïèÿ îò íåãî. Íÿêîè äðóãè ðåäàêòîðè íàðè÷àò |
| 421 | èçðÿçâàíåòî (kill) è âìúêâàíåòî (yank) ñúîòâåòíî èçðÿçâàíå (cut) è | ||
| 422 | ïîñòàâÿíå (paste) (âæ. Ðå÷íèêà íà Ðúêîâîäñòâîòî íà Åìàêñ). | ||
| 425 | 423 | ||
| 426 | Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò | 424 | Êîìàíäàòà çà âìúêâàíå å C-y. Òÿ âìúêâà íàíîâî ïîñëåäíèÿ èçðÿçàí òåêñò |
| 427 | â òåêóùîòî ìÿñòî íà êóðñîðà. | 425 | â òåêóùîòî ìÿñòî íà êóðñîðà. |
| @@ -466,31 +464,30 @@ C-k îáðàáîòâà ÷èñëîâèòå àðãóìåíòè ïî ñïåöèàëåí íà÷èí: ïðåìàõâàò ñå | |||
| 466 | -------- | 464 | -------- |
| 467 | 465 | ||
| 468 | Àêî íàïðàâèòå ïðîìÿíà â òåêñòà è ñëåä òîâà ðåøèòå, ÷å òîâà å áèëî | 466 | Àêî íàïðàâèòå ïðîìÿíà â òåêñòà è ñëåä òîâà ðåøèòå, ÷å òîâà å áèëî |
| 469 | ãðåøêà, âèå ìîæåòå äà îòìåíèòå ïðîìÿíàòà ñ êîìàíäàòà çà îòìåíÿíå, C-x | 467 | ãðåøêà, âèå ìîæåòå äà îòìåíèòå ïðîìÿíàòà ñ êîìàíäàòà çà îòìåíÿíå, C-/. |
| 470 | u. | ||
| 471 | 468 | ||
| 472 | Îáèêíîâåíî C-x u îòìåíÿ ïðîìåíèòå, íàïðàâåíè îò åäíà êîìàíäà; àêî | 469 | Îáèêíîâåíî C-/ îòìåíÿ ïðîìåíèòå, íàïðàâåíè îò åäíà êîìàíäà; àêî |
| 473 | ïîâòàðÿòå C-x u íÿêîëêî ïúòè ïîñëåäîâàòåëíî, âñÿêî ïîâòîðåíèå îòìåíÿ | 470 | ïîâòàðÿòå C-/ íÿêîëêî ïúòè ïîñëåäîâàòåëíî, âñÿêî ïîâòîðåíèå îòìåíÿ îùå |
| 474 | îùå åäíà êîìàíäà. | 471 | åäíà êîìàíäà. |
| 475 | 472 | ||
| 476 | Íî èìà äâå èçêëþ÷åíèÿ: êîìàíäèòå, êîèòî íå ïðîìåíÿò òåêñòà, íå ñå | 473 | Íî èìà äâå èçêëþ÷åíèÿ: êîìàíäèòå, êîèòî íå ïðîìåíÿò òåêñòà, íå ñå |
| 477 | áðîÿò (òîâà âêëþ÷âà ïðèäâèæâàíåòî íà êóðñîðà è ñêðîëèðàùèòå êîìàíäè), | 474 | áðîÿò (òîâà âêëþ÷âà ïðèäâèæâàíåòî íà êóðñîðà è ñêðîëèðàùèòå êîìàíäè), |
| 478 | è ñàìîâìúêâàùèòå ñå çíàöè îáèêíîâåíî ñå îáðàáîòâàò íà ãðóïè, âñÿêà äî | 475 | è ñàìîâìúêâàùèòå ñå çíàöè îáèêíîâåíî ñå îáðàáîòâàò íà ãðóïè, âñÿêà äî |
| 479 | 20 çíàêà. (Òîâà íàìàëÿâà áðîÿ íà C-x u, êîèòî òðÿáâà äà âúâåäåòå, çà | 476 | 20 çíàêà. (Òîâà íàìàëÿâà áðîÿ íà C-/, êîèòî òðÿáâà äà âúâåäåòå, çà äà |
| 480 | äà îòìåíèòå âúâåäåí òåêñò.) | 477 | îòìåíèòå âúâåäåí òåêñò.) |
| 481 | 478 | ||
| 482 | >> Èçðåæåòå òîçè ðåä ñ C-k, ñëåä òîâà âúâåäåòå C-x u è òîé òðÿáâà äà | 479 | >> Èçðåæåòå òîçè ðåä ñ C-k, ñëåä òîâà âúâåäåòå C-/ è òîé òðÿáâà äà ñå |
| 483 | ñå ïîÿâè îòíîâî. | 480 | ïîÿâè îòíîâî. |
| 484 | 481 | ||
| 485 | C-_ å àëòåðíàòèâíà îòìåíÿùà êîìàíäà; òÿ ðàáîòè òî÷íî êàòî C-x u, íî å | 482 | C-_ å àëòåðíàòèâíà îòìåíÿùà êîìàíäà; òÿ ðàáîòè òî÷íî êàòî C-/. Íà |
| 486 | ïî-ëåñíà çà âúâåæäàíå íÿêîëêî ïúòè ïîñëåäîâàòåëíî. Íåäîñòàòúêúò íà | 483 | íÿêîè òåðìèíàëè âúâåæäàíåòî íà C-/ âñúùíîñò èçïðàùà C-_ íà Åìàêñ. |
| 487 | C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå. | 484 | Êàòî àëòåðíàòèâà, C-x u ðàáîòè òî÷íî êàòî C-/, íî å ïî-íåóäîáíà çà |
| 488 | Çàòîâà îñèãóðÿâàìå è C-x u. Íà íÿêîè òåðìèíàëè ìîæå äà âúâåäåòå C-_ ñ | 485 | âúâåæäàíå. |
| 489 | âúâåæäàíå íà /, äîêàòî çàäúðæàòå CONTROL. | ||
| 490 | 486 | ||
| 491 | ×èñëîâ àðãóìåíò êúì C-_ èëè C-x u äåéñòâà êàòî áðîÿ÷ íà ïîâòîðåíèÿòà. | 487 | ×èñëîâ àðãóìåíò êúì C-/, C-_ èëè C-x u äåéñòâà êàòî áðîÿ÷ íà |
| 488 | ïîâòîðåíèÿ. | ||
| 492 | 489 | ||
| 493 | Ìîæå äà îòìåíÿòà èçòðèâàíå íà òåêñò òî÷íî êàêòî îòìåíÿòå èçðÿçâàíå íà | 490 | Ìîæå äà îòìåíÿòå èçòðèâàíå íà òåêñò òî÷íî êàêòî îòìåíÿòå èçðÿçâàíå íà |
| 494 | òåêñò. Ðàçëè÷èåòî ìåæäó èçðÿçâàíåòî íà íåùî è èçòðèâàíåòî ìó | 491 | òåêñò. Ðàçëè÷èåòî ìåæäó èçðÿçâàíåòî íà íåùî è èçòðèâàíåòî ìó |
| 495 | âúçäåéñòâà äàëè ùå ìîæå äà ãî èçâàäèòå ñ C-y; çà îòìåíÿíåòî íÿìà | 492 | âúçäåéñòâà äàëè ùå ìîæå äà ãî èçâàäèòå ñ C-y; çà îòìåíÿíåòî íÿìà |
| 496 | ðàçëèêà ìåæäó äâàòà âèäà. | 493 | ðàçëèêà ìåæäó äâàòà âèäà. |
| @@ -501,35 +498,35 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå. | |||
| 501 | 498 | ||
| 502 | Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî | 499 | Çà äà íàïðàâèòå òåêñòà, êîéòî ðåäàêòèðàòå, ïîñòîÿíåí, òðÿáâà äà ãî |
| 503 | ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Åìàêñ | 500 | ñëîæèòå âúâ ôàéë.  ïðîòèâåí ñëó÷àé òîé ùå èç÷åçíå, êîãàòî Åìàêñ |
| 504 | ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà "íàìåðèòå" | 501 | ïðèêëþ÷è. Çà äà ñëîæèòå âàøèÿ òåêñò âúâ ôàéë, òðÿáâà äà „íàìåðèòå“ |
| 505 | ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à "ïîñåùàâàíå" íà | 502 | (find) ôàéëà ïðåäè äà âúâåæäàòå òåêñò. (Òîâà ñúùî ñå íàðè÷à |
| 506 | ôàéëà.) | 503 | „ïîñåùàâàíå“ (visit) íà ôàéë.) |
| 507 | 504 | ||
| 508 | Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Åìàêñ.  | 505 | Íàìèðàíå íà ôàéë îçíà÷àâà, ÷å âèæäàòå ñúäúðæàíèåòî ìó â Åìàêñ.  |
| 509 | ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå, | 506 | ìíîãî ñëó÷àè òîâà å êàòî äà ðåäàêòèðàòå ñàìèÿ ôàéë. Îáà÷å ïðîìåíèòå, |
| 510 | êîèòî ïðàâèòå, èçïîëçâàéêè Åìàêñ, íå îñòàâàò ïîñòîÿííè, äîêàòî íå | 507 | êîèòî ïðàâèòå, èçïîëçâàéêè Åìàêñ, íå îñòàâàò ïîñòîÿííè, äîêàòî íå |
| 511 | "çàïèøåòå" ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî íà | 508 | „çàïèøåòå“ (save) ôàéëà. Òîâà å òàêà, çà äà ñå ïðåäîòâðàòè îñòàâÿíåòî |
| 512 | ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî | 509 | íà ïîëóïðîìåíåí ôàéë â ñèñòåìàòà, êîãàòî íå èñêàòå òîâà. Äîðè êîãàòî |
| 513 | çàïèñâàòå, Åìàêñ îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å | 510 | çàïèñâàòå, Åìàêñ îñòàâÿ íà÷àëíèÿ ôàéë ïîä ïðîìåíåíî èìå, â ñëó÷àé, ÷å |
| 514 | ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà. | 511 | ïî-êúñíî ðåøèòå, ÷å âàøèòå ïðîìåíè ñà áèëè ãðåøêà. |
| 515 | 512 | ||
| 516 | Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà è | 513 | Àêî ïîãëåäíåòå â äúíîòî íà åêðàíà, ùå âèäèòå ðåä, êîéòî çàïî÷âà ñ |
| 517 | çàâúðøâà ñ òèðåòà è çàïî÷âà ñ "-b:-- TUTORIAL.bg" èëè íåùî ïîäîáíî. | 514 | òèðåòà – „ b:--- TUTORIAL.bg“ èëè íåùî ïîäîáíî. Òàçè ÷àñò îò åêðàíà |
| 518 | Òàçè ÷àñò îò åêðàíà ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî | 515 | ïîêàçâà èìåòî íà ôàéëà, êîéòî ñòå ïîñåòèëè. Òî÷íî ñåãà âèå ñòå |
| 519 | ñåãà âèå ñòå ïîñåòèëè ôàéë, íàðå÷åí "TUTORIAL.bg", êîéòî å âàøåòî | 516 | ïîñåòèëè ôàéë, íàðå÷åí „TUTORIAL.bg“, êîéòî å âàøåòî ëè÷íî |
| 520 | ëè÷íî êîïèå-÷åðíîâà íà Åìàêñ âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â | 517 | êîïèå-÷åðíîâà íà Åìàêñ âúâåäåíèåòî. Êîãàòî íàìåðèòå ôàéë â Åìàêñ, |
| 521 | Åìàêñ, èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà ñúùîòî ìÿñòî. | 518 | èìåòî íà òîçè ôàéë ùå ñå ïîÿâè íà òîâà ìÿñòî. |
| 522 | 519 | ||
| 523 | Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå | 520 | Îñîáåíîñò íà êîìàíäàòà çà íàìèðàíå íà ôàéë å, ÷å òðÿáâà äà êàæåòå |
| 524 | èìåòî íà ôàéëà, êîéòî èñêàòå. Íèå ãî íàðè÷àìå "÷åòåíå íà àðãóìåíò îò | 521 | èìåòî íà ôàéëà, êîéòî èñêàòå. Êàçâàìå, ÷å êîìàíäàòà „÷åòå íà |
| 525 | òåðìèíàëà" (â òîçè ñëó÷àé àðãóìåíòúò å èìåòî íà ôàéëà). Ñëåä êàòî | 522 | àðãóìåíò“ (â òîçè ñëó÷àé àðãóìåíòúò å èìåòî íà ôàéëà). Ñëåä êàòî |
| 526 | âúâåäåòå êîìàíäàòà | 523 | âúâåäåòå êîìàíäàòà |
| 527 | 524 | ||
| 528 | C-x C-f Íàìèðàíå íà ôàéë | 525 | C-x C-f Íàìèðàíå íà ôàéë |
| 529 | 526 | ||
| 530 | Åìàêñ âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî | 527 | Åìàêñ âè ïîäêàíÿ äà âúâåäåòå èìåòî íà ôàéëà. Èìåòî íà ôàéëà, êîåòî |
| 531 | íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå | 528 | íàïèøåòå, ñå ïîÿâÿâà â äúíîòî íà åêðàíà. Ðåäúò â äúíîòî íà åêðàíà ñå |
| 532 | íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âõîä. Ìîæåòå äà | 529 | íàðè÷à ìèíèáóôåð, êîãàòî ñå èçïîëçâà çà òîçè âèä âúâåæäàíå. Ìîæåòå äà |
| 533 | èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Åìàêñ, çà äà | 530 | èçïîëçâàòå îáèêíîâåíèòå êîìàíäè çà ðåäàêòèðàíå íà Åìàêñ, çà äà |
| 534 | ðåäàêòèðàòå èìåòî íà ôàéëà. | 531 | ðåäàêòèðàòå èìåòî íà ôàéëà. |
| 535 | 532 | ||
| @@ -541,35 +538,36 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå. | |||
| 541 | Òàêà ÷å íå íàìèðàòå ôàéë. | 538 | Òàêà ÷å íå íàìèðàòå ôàéë. |
| 542 | 539 | ||
| 543 | Êîãàòî ïðèêëþ÷èòå ñ âúâåæäàíåòî íà èìåòî íà ôàéëà, âúâåäåòå <Return>, | 540 | Êîãàòî ïðèêëþ÷èòå ñ âúâåæäàíåòî íà èìåòî íà ôàéëà, âúâåäåòå <Return>, |
| 544 | çà äà ïîêàæåòå òîâà. Òîãàâà C-x C-f òðúãâà äà ðàáîòè è íàìèðà ôàéëà, | 541 | çà äà çàâúðøèòå. Ìèíèáóôåðúò èç÷åçâà è êîìàíäàòà C-x C-f òðúãâà äà |
| 545 | êîéòî ñòå èçáðàëè. Ìèíèáóôåðúò èç÷åçâà, êîãàòî êîìàíäàòà C-x C-f | 542 | ðàáîòè è íàìèðà ôàéëà, êîéòî ñòå èçáðàëè. |
| 546 | ñâúðøè. | ||
| 547 | 543 | ||
| 548 | Ñëåä ìàëêî ñúäúðæàíèåòî íà ôàéëà ñå ïîÿâÿâà íà åêðàíà è âèå ìîæåòå äà | 544 | Ñëåä ìàëêî ñúäúðæàíèåòî íà ôàéëà ñå ïîÿâÿâà íà åêðàíà è âèå ìîæåòå äà |
| 549 | ðåäàêòèðàòå ñúäúðæàíèåòî ìó. Êîãàòî ïîæåëàåòå äà çàïàçèòå âàøèòå | 545 | ðåäàêòèðàòå ñúäúðæàíèåòî ìó. Êîãàòî ïîæåëàåòå äà çàïàçèòå âàøèòå |
| 550 | ïðîìåíè çà ïîñòîÿííî, âúâåäåòå êîìàíäàòà | 546 | ïðîìåíè çà ïîñòîÿííî, âúâåäåòå êîìàíäàòà |
| 551 | 547 | ||
| 552 | C-x C-s Çàïàçâàíå íà ôàéëà | 548 | C-x C-s Çàïèñ (save) íà ôàéëà |
| 553 | 549 | ||
| 554 | Òîâà êîïèðà òåêñòà îò Åìàêñ âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå | 550 | Òîâà êîïèðà òåêñòà îò Åìàêñ âúâ ôàéëà. Ïúðâèÿ ïúò, êîãàòî òîâà ñå |
| 555 | íàïðàâè, Åìàêñ ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå | 551 | íàïðàâè, Åìàêñ ïðåèìåíóâà íà÷àëíèÿ ôàéë ñ íîâî èìå, òàêà ÷å òîé äà íå |
| 556 | ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà "~" â êðàÿ íà èìåòî | 552 | ñå èçãóáè. Íîâîòî èìå ñå ïîñòðîÿâà ñ äîáàâÿíå íà „~“ â êðàÿ íà èìåòî |
| 557 | íà íà÷àëíèÿ ôàéë. | 553 | íà íà÷àëíèÿ ôàéë. |
| 558 | 554 | ||
| 559 | Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Åìàêñ èçâåæäà èìåòî íà ôàéëà, êîéòî å | 555 | Êîãàòî çàïàçâàíåòî å ñâúðøèëî, Åìàêñ èçâåæäà èìåòî íà ôàéëà, êîéòî å |
| 560 | áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå | 556 | áèë çàïèñàí. Òðÿáâà äà çàïèñâàòå äîñòàòú÷íî ÷åñòî, òàêà ÷å äà íå |
| 561 | èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà. | 557 | èçãóáèòå ìíîãî ðàáîòà, àêî ñèñòåìàòà ñå ñðèíå ïî íÿêàêâà ïðè÷èíà |
| 558 | (âæ. ðàçäåëà „Àâòîìàòè÷åí çàïèñ“ ïî-äîëó). | ||
| 562 | 559 | ||
| 563 | >> Âúâåäåòå C-x C-s, çàïàçâàéêè âàøåòî êîïèå îò âúâåäåíèåòî. | 560 | >> Âúâåäåòå C-x C-s TUTORIAL.bg <Return>. |
| 564 | Òîâà òðÿáâà äà èçâåäå "Wrote ...TUTORIAL.bg" â äúíîòî íà åêðàíà. | 561 | Òîâà ùå çàïèøå âúâåäåíèåòî âúâ ôàéë ñ èìå TUTORIAL.bg è ùå ïîêàæå |
| 562 | „Wrote ...TUTORIAL.bg“ â äúíîòî íà åêðàíà. | ||
| 565 | 563 | ||
| 566 | Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî | 564 | Ìîæå äà íàìåðèòå ñúùåñòâóâàù ôàéë, äà ãî ðàçãëåäàòå è äà ãî |
| 567 | ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà | 565 | ðåäàêòèðàòå. Ìîæåòå ñúùî äà íàìåðèòå ôàéë, êîéòî íå ñúùåñòâóâà. Òîâà |
| 568 | å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Åìàêñ: íàìèðàòå ôàéëà, êîéòî | 566 | å íà÷èíúò çà ñúçäàâàíå íà íîâè ôàéëîâå â Åìàêñ: íàìèðàòå ôàéëà, êîéòî |
| 569 | ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà | 567 | ùå áúäå â íà÷àëîòî ïðàçåí, è òîãàâà çàïî÷âàòå âìúêâàíåòî íà òåêñòà çà |
| 570 | ôàéëà. Êîãàòî ãîâîðèòå çà "çàïèñâàíå" íà ôàéë, Åìàêñ âñúùíîñò ùå | 568 | ôàéëà. Êîãàòî èñêàòå „çàïèñ“ íà ôàéë, Åìàêñ âñúùíîñò ùå ñúçäàäå ôàéëà |
| 571 | ñúçäàäå ôàéëà ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà | 569 | ñ òåêñòà, êîéòî ñòå âúâåëè. Îòòàì íàòàòúê ìîæå äà ñ÷èòàòå, ÷å |
| 572 | ñ÷èòàòå, ÷å ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë. | 570 | ðåäàêòèðàòå âå÷å ñúùåñòâóâàù ôàéë. |
| 573 | 571 | ||
| 574 | 572 | ||
| 575 | * ÁÓÔÅÐÈ | 573 | * ÁÓÔÅÐÈ |
| @@ -579,53 +577,50 @@ C_- å, ÷å íà íÿêîè êëàâèàòóðè íå å î÷åâèäíî êàê òðÿáâà äà ñå âúâåäå. | |||
| 579 | Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x | 577 | Ìîæåòå äà ïðåâêëþ÷èòå îáðàòíî êúì íåãî, êàòî ãî íàìåðèòå ïàê ñ C-x |
| 580 | C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ. | 578 | C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ. |
| 581 | 579 | ||
| 582 | >> Ñúçäàéòå ôàéë ñ èìå "foo", âúâåæäàéêè C-x C-f foo <Return>. | 580 | Åìàêñ ñúõðàíÿâà òåêñòà íà âñåêè ôàéëà â îáåêò, íàðè÷àí „áóôåð“. |
| 583 | Âìúêíåòå ìàëêî òåêñò, ðåäàêòèðàéòå ãî è çàïàçåòå "foo" ñ âúâåæäàíå | 581 | Íàìèðàíåòî íà ôàéë ñúçäàâà íîâ áóôåð âúòðå â Åìàêñ. Çà äà âèäèòå |
| 584 | íà C-x C-s. | 582 | ñïèñúê ñ âñè÷êè ñúùåñòâóâàùè áóôåðè, âúâåäåòå |
| 585 | Íàêðàÿ âúâåäåòå C-x C-f TUTORIAL.bg <Return>, çà äà ñå âúðíåòå | ||
| 586 | îáðàòíî âúâ âúâåäåíèåòî. | ||
| 587 | 583 | ||
| 588 | Åìàêñ çàïàçâà òåêñòà íà âñåêè ôàéë â îáåêò, íàðè÷àí "áóôåð". | 584 | C-x C-b Ñïèñúê íà áóôåðèòå |
| 589 | Íàìèðàíåòî íà ôàéë ïðàâè íîâ áóôåð â Åìàêñ. Çà äà âèäèòå ñïèñúê íà | ||
| 590 | áóôåðèòå, êîèòî â ìîìåíòà ñúùåñòâóâàò âúâ âàøèÿ Åìàêñ, âúâåäåòå | ||
| 591 | 585 | ||
| 592 | C-x C-b Ïîêàçâàíå íà áóôåðèòå | 586 | >> Îïèòàéòå C-x C-b îùå ñåãà. |
| 593 | 587 | ||
| 594 | >> Îïèòàéòå C-x C-b ñåãà. | 588 | Çàáåëåæåòå, ÷å âñåêè áóôåð èìà èìå, à ñúùî ìîæå äà èìà è èìå íà ôàéë, |
| 589 | ÷èåòî ñúäúðæàíèå ñå ïàçè â áóôåðà. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â | ||
| 590 | ïðîçîðåö íà Åìàêñ, âèíàãè å ÷àñò îò íÿêîé áóôåð. | ||
| 595 | 591 | ||
| 596 | Âèæòå êàê âñåêè áóôåð èìà èìå, à ïîíÿêîãà è èìå íà ôàéë çà ôàéëà, | 592 | >> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà íà áóôåðè. |
| 597 | ÷èåòî ñúäúðæàíèå äúðæè. ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, | ||
| 598 | å âèíàãè ÷àñò îò íÿêàêúâ áóôåð. | ||
| 599 | 593 | ||
| 600 | >> Âúâåäåòå C-x 1, çà äà ìàõíåòå ñïèñúêà ñ áóôåðèòå. | 594 | Êîãàòî èìàòå íÿêîëêî áóôåðà, ñàìî åäèí îò òÿõ å „òåêóù“ â äàäåí ìîìåíò |
| 601 | |||
| 602 | Êîãàòî èìàòå íÿêîëêî áóôåðà, ñàìî åäèí îò òÿõ å "òåêóù" â äàäåí ìîìåíò | ||
| 603 | îò âðåìå. Òîâà å áóôåðúò, êîéòî ðåäàêòèðàòå. Àêî èñêàòå äà | 595 | îò âðåìå. Òîâà å áóôåðúò, êîéòî ðåäàêòèðàòå. Àêî èñêàòå äà |
| 604 | ðåäàêòèðàòå äðóã áóôåð, ñå íóæäàåòå îò "ïðåâêëþ÷âàíå" êúì íåãî. Àêî | 596 | ðåäàêòèðàòå äðóã áóôåð, ñå íóæäàåòå îò „ïðåâêëþ÷âàíå“ êúì íåãî. Àêî |
| 605 | èñêàòå äà ñå ïðåâêëþ÷èòå êúì áóôåð, êîéòî ñúîòâåòñòâà íà ôàéë, ìîæåòå | 597 | èñêàòå äà ñå ïðåâêëþ÷èòå êúì áóôåð, êîéòî ñúîòâåòñòâà íà ôàéë, ìîæåòå |
| 606 | äà ãî íàïðàâèòå, êàòî ïðîñòî ïîñåòèòå ôàéëà îòíîâî ñ C-x C-f. Íî èìà | 598 | äà ãî íàïðàâèòå, êàòî ïðîñòî ïîñåòèòå ôàéëà îòíîâî ñ C-x C-f. Íî èìà |
| 607 | è ïî-ëåñåí íà÷èí: èçïîëçâàíåòî íà êîìàíäàòà C-x b.  òàçè êîìàíäà | 599 | è ïî-ëåñåí íà÷èí: èçïîëçâàíåòî íà êîìàíäàòà C-x b.  òàçè êîìàíäà |
| 608 | òðÿáâà äà âúâåäåòå èìåòî íà áóôåðà. | 600 | òðÿáâà äà âúâåäåòå èìåòî íà áóôåðà. |
| 609 | 601 | ||
| 610 | >> Âúâåäåòå C-x b foo <Return>, çà äà ñå âúðíåòå êúì áóôåðà "foo", | 602 | >> Ñóçäàéòå ôàéë ñ èìå „foo“ ÷ðåç âúâåæäàíå íà C-x C-f foo <Return>. |
| 611 | êîéòî äúðæè òåêñòà íà ôàéëà "foo". Òîãàâà âúâåäåòå C-x b TUTORIAL | 603 | Òîãàâà âúâåäåòå C-x b TUTORIAL.bg <Return>, çà äà ñå âúðíåòå â òîâà |
| 612 | <Return>, çà äà ñå âúðíåòå â òîâà âúâåäåíèå. | 604 | âúâåäåíèå. |
| 613 | 605 | ||
| 614 |  ïîâå÷åòî ñëó÷àè èìåòî íà áóôåðà å ñúùîòî êàòî èìåòî íà ôàéëà (áåç | 606 |  ïîâå÷åòî ñëó÷àè èìåòî íà áóôåðà å ñúùîòî êàòî èìåòî íà ôàéëà (áåç |
| 615 | ÷àñòòà â êîÿ äèðåêòîðèÿ ñå íàìèðà). Îáà÷å òîâà íå âèíàãè å âÿðíî. | 607 | ÷àñòòà â êîÿ äèðåêòîðèÿ ñå íàìèðà). Îáà÷å òîâà íå âèíàãè å âÿðíî. |
| 616 | Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà èìåòî | 608 | Ñïèñúêúò ñ áóôåðèòå, êîéòî ïðàâèòå ñ C-x C-b, âèíàãè âè ïîêàçâà è |
| 617 | íà âñåêè áóôåð. | 609 | èìåòî íà áóôåðà, è èìåòî íà ôàéëà. |
| 618 | 610 | ||
| 619 | ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ | 611 | ÂÑÅÊÈ òåêñò, êîéòî âèæäàòå â Åìàêñ ïðîçîðåö, å âèíàãè ÷àñò îò íÿêàêúâ |
| 620 | áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Íàïðèìåð áóôåðúò, | 612 | áóôåð. Íÿêîè áóôåðè íå ñúîòâåòñòâàò íà ôàéëîâå. Áóôåðúò, èìåíóâàí |
| 621 | èìåíóâàí "*Buffer List*", íå ñúîòâåòñòâà íà ôàéë. Òîâà å áóôåðúò, | 613 | „*Buffer List*“, êîèòî ñòå íàïðàâèëè ñ C-x C-b, íå ñúîòâåòñòâà íà |
| 622 | êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå, êîèòî ñòå íàïðàâèëè ñ C-x C-b. | 614 | ôàéë. Òîâà å áóôåðúò, êîéòî ñúäúðæà ñïèñúêà ñ áóôåðèòå. Òîçè áóôåð |
| 623 | Áóôåðúò, èìåíóâàí "*Messages*", ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé | 615 | TUTORIAL.bg îòíà÷àëî íå å áèë êúì ôàéë, íî âå÷å å, çàùîòî â ïðåäèøíèÿ |
| 616 | ðàçäåë âúâåäîõòå C-x C-s è ãî çàïèñàõòå âúâ ôàéë. | ||
| 617 | |||
| 618 | Áóôåðúò, èìåíóâàí „*Messages*“, ñúùî íå ñúîòâåòñòâà íà ôàéë; òîé | ||
| 624 | ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà | 619 | ñúäúðæà ñúîáùåíèÿòà, êîèòî ñå ïîÿâÿâàò â äúíîòî íà åêðàíà ïî âðåìå íà |
| 625 | Åìàêñ ñåñèÿòà. | 620 | Åìàêñ ñåñèÿòà. |
| 626 | 621 | ||
| 627 | >> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ | 622 | >> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ |
| 628 | ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x b TUTORIAL <Return>, çà äà | 623 | ñúîáùåíèÿòà. Ñëåä òîâà âúâåäåòå C-x b TUTORIAL.bg <Return>, çà äà |
| 629 | ñå âúðíåòå êúì òîâà âúâåäåíèå. | 624 | ñå âúðíåòå êúì òîâà âúâåäåíèå. |
| 630 | 625 | ||
| 631 | Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã | 626 | Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã |
| @@ -636,14 +631,15 @@ C-f. Ïî òîçè íà÷èí ìîæå äà ïîëó÷èòå äîñòà íà áðîé ôàéëîâå â Åìàêñ. | |||
| 636 | áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x | 631 | áóôåðà íà ïúðâèÿ ôàéë. Ùå å íåóäîáíî äà ïðåâêëþ÷èòå îáðàòíî ñ C-x |
| 637 | C-f, çà äà ãî çàïàçèòå ñ C-x C-s. Òàêà ÷å èìàìå | 632 | C-f, çà äà ãî çàïàçèòå ñ C-x C-s. Òàêà ÷å èìàìå |
| 638 | 633 | ||
| 639 | C-x s Çàïàçâà íÿêîè áóôåðè | 634 | C-x s Çàïèñ íà íÿêîè (some) áóôåðè |
| 640 | 635 | ||
| 641 | C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå | 636 | C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå |
| 642 | çàïàçèëè. Âúïðîñúò çà âñåêè òàêúâ áóôåð å äàëè äà áúäå çàïàçåí. | 637 | çàïàçèëè. Êîìàíäàòà çàäàâà âúïðîñ çà âñåêè òàêúâ áóôåð äàëè äà áúäå |
| 638 | çàïàçåí. | ||
| 643 | 639 | ||
| 644 | >> Âìúêíåòå ðåä â òåêñòà, ñëåä òîâà âúâåäåòå C-x s. | 640 | >> Âìúêíåòå ðåä ñ òåêñò, ñëåä òîâà âúâåäåòå C-x s. |
| 645 | Òðÿáâà äà áúäåòå ïîïèòàí äàëè äà çàïàçèòå áóôåðà, èìåíóâàí "TUTORIAL". | 641 | Òðÿáâà äà áúäåòå ïîïèòàí äàëè äà çàïàçèòå áóôåðà, èìåíóâàí „TUTORIAL.bg“. |
| 646 | Îòãîâîðåòå ñ "äà" íà âúïðîñà, êàòî âúâåäåòå "y". | 642 | Îòãîâîðåòå ñ „äà“ íà âúïðîñà, êàòî âúâåäåòå „y“ (yes). |
| 647 | 643 | ||
| 648 | 644 | ||
| 649 | * ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ | 645 | * ÐÀÇØÈÐßÂÀÍÅ ÍÀ ÍÀÁÎÐÀ ÊÎÌÀÍÄÈ |
| @@ -659,53 +655,47 @@ C-x s ïèòà çà âñåêè áóôåð, êîéòî ñúäúðæà ïðîìåíè, êîèòî íå ñòå | |||
| 659 | 655 | ||
| 660 | Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå, | 656 | Òåçè êîìàíäè ñà îáùî âçåòî ïîëåçíè, íî ïî-ìàëêî, îòêîëêîòî êîìàíäèòå, |
| 661 | êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå äâå îò òÿõ: êîìàíäèòå âúðõó | 657 | êîèòî äîñåãà ñòå íàó÷èëè. Âå÷å âèäÿõòå äâå îò òÿõ: êîìàíäèòå âúðõó |
| 662 | ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà çàïàçâàíå (Save). | 658 | ôàéëîâå C-x C-f çà íàìèðàíå (Find) è C-x C-s çà çàïèñ (Save). Äðóã |
| 663 | Äðóã ïðèìåð å êîìàíäàòà çà êðàé íà Åìàêñ ñåñèÿòà -- òîâà å êîìàíäàòà | 659 | ïðèìåð å êîìàíäàòà çà êðàé íà Åìàêñ ñåñèÿòà -- òîâà å êîìàíäàòà C-x |
| 664 | C-x C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå âñè÷êè ïðîìåíè, êîèòî | 660 | C-c. (Íå ñå áåçïîêîéòå, ÷å ìîæå äà èçãóáèòå âñè÷êè ïðîìåíè, êîèòî ñòå |
| 665 | ñòå íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè ïðîìåíåí ôàéë, ïðåäè | 661 | íàïðàâèëè; C-x C-c ïðåäëàãà äà çàïàçè âñåêè ïðîìåíåí ôàéë, ïðåäè äà |
| 666 | äà ïðåìàõíå Åìàêñ.) | 662 | ïðåìàõíå Åìàêñ.) |
| 667 | 663 | ||
| 668 | C-z å êîìàíäàòà çà èçëèçàíå îò Åìàêñ *âðåìåííî* -- òàêà ÷å äà ìîæåòå | 664 | Àêî ñòå íà ãðàôè÷åí äèñïëåé, íå å íóæíà ñïåöèàëíà êîìàíäà çà |
| 669 | äà ñå âúðíåòå êúì ñúùàòà Åìàêñ ñåñèÿ ïî-êúñíî. | 665 | ïðèäâèæâàíå îò Åìàêñ êúì äðóãî ðàáîòåùî ïðèëîæåíèå. Ìîæåòå äà |
| 670 | 666 | èçâúðøèòå òîâà ñ ìèøêàòà èëè ñ êîìàíäè êúì óïðàâëåíèåòî íà ïðîçîðöè. | |
| 671 | Íà ñèñòåìè, êîèòî ïîçâîëÿâàò òîâà, C-z "èçîñòàâÿ" (suspend) Åìàêñ, | 667 | Íî àêî ñòå íà òåêñòîâ òåðìèíàë, êîéòî ìîæå äà ïîêàçâà ñàìî åäíî |
| 672 | ò.å. âðúùà êúì îáâèâêàòà, íî íå ðàçðóøàâà Åìàêñ.  ïîâå÷åòî îáâèâêè | 668 | ïðèëîæåíèå â äàäåí ìîìåíò, ñå íóæäàåòå îò íà÷èí çà „èçîñòàâÿíå“ |
| 673 | ìîæåòå äà ïðîäúëæèòå Åìàêñ ñåñèÿòà ñ êîìàíäàòà "fg" èëè ñ "%emacs". | 669 | (suspend) íà Åìàêñ è ïðèäâèæâàíå êúì äðóãè ïðîãðàìè. |
| 674 | 670 | ||
| 675 | Íà ñèñòåìè, êîèòî íå ïîçâîëÿâàò èçîñòàâÿíå, C-z ñúçäàâà íîâà | 671 | C-z å êîìàíäàòà çà èçëèçàíå îò Åìàêñ *âðåìåííî* – òàêà ÷å äà ìîæåòå äà |
| 676 | ïîäîáâèâêà, êîÿòî âúðâè ïîä Åìàêñ, çà äà âè äàäå øàíñ äà ñòàðòèðàòå | 672 | ñå âúðíåòå êúì ñúùàòà Åìàêñ ñåñèÿ ïî-êúñíî. Êîãàòî Åìàêñ âúðâè íà |
| 677 | äðóãè ïðîãðàìè è äà ñå âúðíåòå êúì Åìàêñ ñëåä òîâà; òîâà íå å èñòèíñêî | 673 | òåêñòîâ òåðìèíàë, C-z „èçîñòàâÿ“ Åìàêñ, ò.å. âðúùà ñå êúì îáâèâêàòà, |
| 678 | "èçëèçàíå" îò Åìàêñ.  òîçè ñëó÷àé êîìàíäàòà íà îáâèâêàòà "exit" å | 674 | íî íå óíèùîæàâà çàäà÷àòà (job) íà Åìàêñ.  ïîâå÷åòî ïîïóëÿðíè îáâèâêè |
| 679 | îáèêíîâåíèÿò íà÷èí äà ñå âúðíåòå îáðàòíî êúì Åìàêñ îò ïîäîáâèâêàòà. | 675 | ìîæåòå äà ïðîäúëæèòå Åìàêñ ñ êîìàíäàòà „fg“ èëè ñ „%emacs“. |
| 680 | |||
| 681 | Ìîìåíòúò äà èçïîëçâàòå C-x C-c å, êîãàòî èñêàòå äà èçëåçåòå îò | ||
| 682 | ñèñòåìàòà. Òîâà å è ïðàâèëíàòà êîìàíäà çà èçëèçàíå, êîãàòî Åìàêñ å | ||
| 683 | èçâèêàí îò ïîùåíñêà ïðîãðàìà èëè äðóãè ñòðàíè÷íè ïðîãðàìè, òúé êàòî òå | ||
| 684 | ìîæå è äà íå çíàÿò êàê äà ñå ñïðàâÿò ñ èçîñòàâÿíåòî íà Åìàêñ. Ïðè | ||
| 685 | îáèêíîâåíè îáñòîÿòåëñòâà, îáà÷å, àêî íå ñòå òðúãíàëè äà èçëèçàòå îò | ||
| 686 | ñèñòåìàòà, ïî-äîáðå å äà èçîñòàâèòå Åìàêñ ñ C-z, âìåñòî äà èçëèçàòå îò | ||
| 687 | Åìàêñ. | ||
| 688 | 676 | ||
| 689 | Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè: | 677 | Èìà ìíîãî êîìàíäè C-x. Åòî ñïèñúê íà òåçè, êîèòî ñòå íàó÷èëè: |
| 690 | 678 | ||
| 691 | C-x C-f Íàìèðàíå íà ôàéë. | 679 | C-x C-f Íàìèðàíå íà ôàéë |
| 692 | C-x C-s Çàïàçâàíå íà ôàéë. | 680 | C-x C-s Çàïèñ íà ôàéë |
| 693 | C-x C-b Ñïèñúê íà áóôåðèòå. | 681 | C-x s Çàïèñ íà íÿêîè áóôåðè |
| 694 | C-x C-c Èçëèçàíå îò Åìàêñ. | 682 | C-x C-b Ñïèñúê íà áóôåðèòå |
| 695 | C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè îñâåí åäèí. | 683 | C-x b Ïðåâêëþ÷âàíå êúì áóôåð |
| 696 | C-x u Îòìÿíà. | 684 | C-x C-c Èçëèçàíå îò Åìàêñ |
| 697 | 685 | C-x 1 Èçòðèâàíå íà âñè÷êè ïðîçîðöè îñâåí åäèí | |
| 698 | Èìåíóâàíèòå ðàçøèðåíè êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå îùå | 686 | C-x u Îòìÿíà |
| 699 | ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè ðåæèìè. | 687 | |
| 700 | Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí íèç ñ | 688 | Èìåíóâàíèòå ðàçøèðåíè (X) êîìàíäè ñà êîìàíäè, êîèòî ñå èçïîëçâàò äàæå |
| 701 | äðóã. Êîãàòî âúâåäåòå M-x, Åìàêñ âè ïîäñêàçâà â äúíîòî íà åêðàíà ñ | 689 | îùå ïî-ðÿäêî, èëè êîìàíäè, êîèòî ñå èçïîëçâàò ñàìî â îïðåäåëåíè |
| 702 | M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè ñëó÷àé | 690 | ðåæèìè. Ïðèìåð å êîìàíäàòà replace-string, êîÿòî çàìåíÿ ãëîáàëíî åäèí |
| 703 | "replace-string". Ïðîñòî âúâåäåòå "repl s<TAB>" è Åìàêñ ùå çàâúðøè | 691 | íèç ñ äðóã. Êîãàòî âúâåäåòå M-x, Åìàêñ âè ïîäñêàçâà â äúíîòî íà |
| 704 | èìåòî. (<TAB> å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä êëàâèøà | 692 | åêðàíà ñ M-x è âèå òðÿáâà äà âúâåäåòå èìåòî íà êîìàíäàòà, â òîçè |
| 705 | CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) | 693 | ñëó÷àé „replace-string“. Ïðîñòî âúâåäåòå „repl s<TAB>“ è Åìàêñ ùå |
| 706 | Çàâúðøåòå èìåòî íà êîìàíäàòà ñ <Return>. | 694 | çàâúðøè èìåòî. (<TAB> å êëàâèøúò Tab, îáèêíîâåíî íàìèðàù ñå íàä |
| 707 | 695 | êëàâèøà CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà | |
| 708 | Êîìàíäàòà replace-string èçèñêâà äâà àðãóìåíòà -- íèçúò, êîéòî ùå áúäå | 696 | êëàâèàòóðàòà.) Çàâúðøåòå èìåòî íà êîìàíäàòà ñ <Return>. |
| 697 | |||
| 698 | Êîìàíäàòà replace-string èçèñêâà äâà àðãóìåíòà – íèçúò, êîéòî ùå áúäå | ||
| 709 | çàìåíÿí, è íèçúò, êîéòî ùå ãî çàìåíè. Òðÿáâà äà çàâúðøèòå âúâåæäàíåòî | 699 | çàìåíÿí, è íèçúò, êîéòî ùå ãî çàìåíè. Òðÿáâà äà çàâúðøèòå âúâåæäàíåòî |
| 710 | íà âñåêè àðãóìåíò ñ <Return>. | 700 | íà âñåêè àðãóìåíò ñ <Return>. |
| 711 | 701 | ||
| @@ -713,28 +703,26 @@ CapsLock èëè êëàâèøà Shift áëèçî äî ëåâèÿ êðàé íà êëàâèàòóðàòà.) | |||
| 713 | Òîãàâà âúâåäåòå M-x repl s<Return>ïðîìåíÿ<Return>èçìåíÿ<Return> | 703 | Òîãàâà âúâåäåòå M-x repl s<Return>ïðîìåíÿ<Return>èçìåíÿ<Return> |
| 714 | 704 | ||
| 715 | Çàáåëåæåòå êàê òîçè ðåä ñå ïðîìåíÿ: âèå çàìåíèõòå äóìàòà | 705 | Çàáåëåæåòå êàê òîçè ðåä ñå ïðîìåíÿ: âèå çàìåíèõòå äóìàòà |
| 716 | ï-ð-î-ì-å-í-ÿ ñ "èçìåíÿ", êúäåòî è äà ñå íàìèðà ñëåä íà÷àëíîòî | 706 | ï-ð-î-ì-å-í-ÿ ñ „èçìåíÿ“, êúäåòî è äà ñå íàìèðà ñëåä íà÷àëíîòî |
| 717 | ìÿñòî íà êóðñîðà. | 707 | ìÿñòî íà êóðñîðà. |
| 718 | 708 | ||
| 719 | ÇÀÁÅËÅÆÊÀ: Ïðåâêëþ÷âàíåòî êúì âúâåæäàíå íà êèðèëñêè áóêâà ñòàâà ñ C-\. | ||
| 720 | |||
| 721 | 709 | ||
| 722 | * ÀÂÒÎÌÀÒÈ×ÍÎ ÇÀÏÀÇÂÀÍÅ | 710 | * ÀÂÒÎÌÀÒÈ×ÍÎ ÇÀÏÀÇÂÀÍÅ |
| 723 | ----------------------- | 711 | ----------------------- |
| 724 | 712 | ||
| 725 | Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå | 713 | Êîãàòî ñòå íàïðàâèëè ïðîìåíè âúâ ôàéë, íî îùå íå ñòå ãî çàïàçèëè, òå |
| 726 | ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè | 714 | ìîãàò äà áúäàò çàãóáåíè, àêî êîìïþòúðúò âíåçàïíî ñå èçêëþ÷è. Çà äà âè |
| 727 | ïðåäïàçè îò òàêèâà ñèòóàöèè, Åìàêñ ïåðèîäè÷íî çàïàçâà "àâòîìàòè÷íî | 715 | ïðåäïàçè îò òàêèâà ñèòóàöèè, Åìàêñ ïåðèîäè÷íî çàïàçâà „àâòîìàòè÷íî |
| 728 | çàïàçâàí" ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî | 716 | çàïàçâàí“ ôàéë çà âñåêè ôàéë, êîéòî ðåäàêòèðàòå. Èìåòî íà àâòîìàòè÷íî |
| 729 | çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å | 717 | çàïàçâàíèÿ ôàéë èìà # â íà÷àëîòî è â êðàÿ; íàïðèìåð, àêî âàøèÿò ôàéë å |
| 730 | ñ èìå "hello.c", èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå | 718 | ñ èìå „hello.c“, èìåòî íà íåãîâèÿ àâòîìàòè÷íî çàïàçâàí ôàéë ùå áúäå |
| 731 | "#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Åìàêñ | 719 | "#hello.c#". Êîãàòî çàïàçâàòå ôàéë ïî îáèêíîâåíèÿ íà÷èí, Åìàêñ |
| 732 | èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë. | 720 | èçòðèâà íåãîâèÿ àâòîìàòè÷íî çàïèñâàí ôàéë. |
| 733 | 721 | ||
| 734 | Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî | 722 | Àêî êîìïþòúðúò çàâèñíå, ìîæå äà âúçñòàíîâèòå âàøàòà àâòîìàòè÷íî |
| 735 | çàïàçâàíà ðåäàêöèÿ, êàòî íàìåðèòå ôàéëà êàêòî îáèêíîâåíî (ôàéëúò, | 723 | çàïàçâàíà ðåäàêöèÿ, êàòî íàìåðèòå ôàéëà êàêòî îáèêíîâåíî (ôàéëúò, |
| 736 | êîéòî ñòå ðåäàêòèðàëè, íå àâòîìàòè÷íî çàïàçâàíèÿ) è ñëåä òîâà âúâåäåòå | 724 | êîéòî ñòå ðåäàêòèðàëè, íå àâòîìàòè÷íî çàïàçâàíèÿ) è ñëåä òîâà âúâåäåòå |
| 737 | M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, | 725 | M-x recover-file <Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, |
| 738 | âúâåäåòå yes<Return>, çà äà ïðîäúëæèòå è äà âúçñòàíîâèòå àâòîìàòè÷íî | 726 | âúâåäåòå yes<Return>, çà äà ïðîäúëæèòå è äà âúçñòàíîâèòå àâòîìàòè÷íî |
| 739 | çàïàçâàíèòå äàííè. | 727 | çàïàçâàíèòå äàííè. |
| 740 | 728 | ||
| @@ -743,28 +731,28 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, | |||
| 743 | -------------- | 731 | -------------- |
| 744 | 732 | ||
| 745 | Àêî Åìàêñ âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè | 733 | Àêî Åìàêñ âèäè, ÷å âúâåæäàòå ìíîãîçíàêîâè êîìàíäè áàâíî, ùå âè ãè |
| 746 | ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà "åõî îáëàñò". Åõî | 734 | ïîêàæå â äúíîòî íà åêðàíà, â îáëàñò, íàðè÷àíà „åõî îáëàñò“. Åõî |
| 747 | îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà. | 735 | îáëàñòòà îáõâàùà ïîñëåäíèÿ ðåä îò åêðàíà. |
| 748 | 736 | ||
| 749 | 737 | ||
| 750 | * ÐÅÄ ÍÀ ÐÅÆÈÌÀ | 738 | * ÐÅÄ ÍÀ ÐÅÆÈÌÀ |
| 751 | ---------------- | 739 | ---------------- |
| 752 | 740 | ||
| 753 | Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à "ðåä íà ðåæèìà" (mode line). | 741 | Ðåäúò òî÷íî íàä åõî îáëàñòòà ñå íàðè÷à „ðåä íà ðåæèìà“ (mode line). |
| 754 | Òîé ïîêàçâà íåùî êàòî: | 742 | Òîé ïîêàçâà íåùî êàòî: |
| 755 | 743 | ||
| 756 | -b:** TUTORIAL.bg (Fundamental)--L670--58%---------------- | 744 | b:**- TUTORIAL.bg 63% L744 (Fundamental) |
| 757 | 745 | ||
| 758 | Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Åìàêñ è òåêñòà, | 746 | Òîçè ðåä äàâà ïîëåçíà èíôîðìàöèÿ çà ñúñòîÿíèåòî íà Åìàêñ è òåêñòà, |
| 759 | êîéòî ðåäàêòèðàòå. | 747 | êîéòî ðåäàêòèðàòå. |
| 760 | 748 | ||
| 761 | Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà -- òîâà å ôàéëúò, êîéòî ñòå | 749 | Âå÷å çíàåòå êàêâî îçíà÷àâà èìåòî íà ôàéëà – òîâà å ôàéëúò, êîéòî ñòå |
| 762 | íàìåðèëè. -NN%-- ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà | 750 | íàìåðèëè. NN% ïîêàçâà âàøàòà òåêóùà ïîçèöèÿ â òåêñòà; òîâà îçíà÷àâà, |
| 763 | îçíà÷àâà, ÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî | 751 | ÷å NN ïðîöåíòà îò òåêñòà å íàä âúðõà íà åêðàíà. Àêî íà÷àëîòî íà ôàéëà |
| 764 | íà÷àëîòî íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Top-- (âðúõ) âìåñòî | 752 | å íà åêðàíà, ùå ñå ïîêàçâà „Top“ (âðúõ) âìåñòî „ 0%“. Àêî êðàÿ íà |
| 765 | --00%--. Àêî êðàÿ íà ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà --Bot-- (äúíî). | 753 | ôàéëà å íà åêðàíà, ùå ñå ïîêàçâà „Bot“ (bottom – äúíî). Àêî ãëåäàòå |
| 766 | Àêî ãëåäàòå òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà | 754 | òåêñò, êîéòî å òîëêîâà ìàëúê, ÷å ñå ïîêàçâà èçöÿëî íà åêðàíà, ðåäúò íà |
| 767 | åêðàíà, ðåäúò íà ðåæèìà ùå èçâåäå --All--. | 755 | ðåæèìà ùå èçâåäå „All“ (âñè÷êî). |
| 768 | 756 | ||
| 769 | Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà | 757 | Çíàêúò L è öèôðèòå ïîêàçâàò ìÿñòîòî ïî äðóã íà÷èí: òîâà å íîìåðúò íà |
| 770 | òåêóùèÿ ðåä íà òî÷êàòà. | 758 | òåêóùèÿ ðåä íà òî÷êàòà. |
| @@ -776,13 +764,13 @@ M-x recover file<Return>. Êîãàòî êîìàíäàòà èçèñêà ïîòâúðæäåíèå, | |||
| 776 | ×àñòòà îò ðåäà íà ðåæèìà âúòðå â ñêîáèòå å, çà äà âè ïîêàæå â êàêúâ | 764 | ×àñòòà îò ðåäà íà ðåæèìà âúòðå â ñêîáèòå å, çà äà âè ïîêàæå â êàêúâ |
| 777 | ðåæèì íà ðåäàêòèðàíå ñå íàìèðàòå. Ïîäðàçáèðàùèÿò ñå ðåæèì å | 765 | ðåæèì íà ðåäàêòèðàíå ñå íàìèðàòå. Ïîäðàçáèðàùèÿò ñå ðåæèì å |
| 778 | Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà | 766 | Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà |
| 779 | "ãëàâåí ðåæèì" (major mode). | 767 | „ãëàâåí ðåæèì“ (major mode). |
| 780 | 768 | ||
| 781 | Åìàêñ èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà | 769 | Åìàêñ èìà ìíîãî ãëàâíè ðåæèìè. Íÿêîè îò òÿõ ñà ïðåäâèäåíè çà |
| 782 | ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì | 770 | ðåäàêòèðàíå íà ðàçëè÷íè åçèöè è/èëè âèäîâå òåêñò, êàòî íàïðèìåð ðåæèì |
| 783 | Ëèñï, ðåæèì Òåêñò è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò âðåìå òî÷íî åäèí | 771 | Lisp (Ëèñï), ðåæèì Text (òåêñò) è äðóãè. Âúâ âñåêè åäèí ìîìåíò îò |
| 784 | ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà áúäå íàìåðåíî â | 772 | âðåìå òî÷íî åäèí ãëàâåí ðåæèì å àêòèâåí è íåãîâîòî èìå ìîæå âèíàãè äà |
| 785 | ðåäà íà ðåæèìà, òî÷íî êàêòî "Fundamental" ñåãà. | 773 | áúäå íàìåðåíî â ðåäà íà ðåæèìà, òî÷íî êàêòî „Fundamental“ ñåãà. |
| 786 | 774 | ||
| 787 | Âñåêè ãëàâåí ðåæèì ïðàâè íÿêîè êîìàíäè äà ñå äúðæàò ïî ðàçëè÷åí íà÷èí. | 775 | Âñåêè ãëàâåí ðåæèì ïðàâè íÿêîè êîìàíäè äà ñå äúðæàò ïî ðàçëè÷åí íà÷èí. |
| 788 | Íàïðèìåð, èìà êîìàíäè çà ðåäàêòèðàíå íà êîìåíòàðè â ïðîãðàìè, è òúé | 776 | Íàïðèìåð, èìà êîìàíäè çà ðåäàêòèðàíå íà êîìåíòàðè â ïðîãðàìè, è òúé |
| @@ -793,9 +781,9 @@ Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà | |||
| 793 | êîìàíäà çà ïðåâêëþ÷âàíå êúì ðåæèì Fundamental. | 781 | êîìàíäà çà ïðåâêëþ÷âàíå êúì ðåæèì Fundamental. |
| 794 | 782 | ||
| 795 | Êîãàòî ðåäàêòèðàòå òåêñò íà åñòåñòâåí åçèê, êàòî òîçè ôàéë, | 783 | Êîãàòî ðåäàêòèðàòå òåêñò íà åñòåñòâåí åçèê, êàòî òîçè ôàéë, |
| 796 | íàé-âåðîÿòíî òðÿáâà äà èçïîëçâàòå ðåæèì Òåêñò (text). | 784 | íàé-âåðîÿòíî òðÿáâà äà èçïîëçâàòå ðåæèì Text (òåêñò). |
| 797 | 785 | ||
| 798 | >> Âúâåäåòå M-x text mode<Return>. | 786 | >> Âúâåäåòå M-x text-mode <Return>. |
| 799 | 787 | ||
| 800 | Íå ñå áåçïîêîéòå, íèêîÿ îò Åìàêñ êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà | 788 | Íå ñå áåçïîêîéòå, íèêîÿ îò Åìàêñ êîìàíäèòå, êîèòî ñòå íàó÷èëè, íÿìà äà |
| 801 | ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f | 789 | ñå ïðîìåíè ïî íÿêàêúâ ñúùåñòâåí íà÷èí. Íî ìîæå äà çàáåëåæèòå, ÷å M-f |
| @@ -804,13 +792,13 @@ Fundamental (Îñíîâåí), êîéòî èçïîëçâàòå â ìîìåíòà. Òîâà å ïðèìåð çà | |||
| 804 | ðàçäåëèòåëè íà äóìè. | 792 | ðàçäåëèòåëè íà äóìè. |
| 805 | 793 | ||
| 806 | Ãëàâíèòå ðåæèìè îáèêíîâåíî ïðàâÿò ìàëêè ïðîìåíè êàòî òàçè: ïîâå÷åòî | 794 | Ãëàâíèòå ðåæèìè îáèêíîâåíî ïðàâÿò ìàëêè ïðîìåíè êàòî òàçè: ïîâå÷åòî |
| 807 | êîìàíäè âúðøàò "ñúùàòà ðàáîòà" âúâ âñåêè ãëàâåí ðåæèì, íî ðàáîòÿò ïî | 795 | êîìàíäè âúðøàò „ñúùàòà ðàáîòà“ âúâ âñåêè ãëàâåí ðåæèì, íî ðàáîòÿò ïî |
| 808 | ìàëêî ïî-ðàçëè÷åí íà÷èí. | 796 | ìàëêî ïî-ðàçëè÷åí íà÷èí. |
| 809 | 797 | ||
| 810 | Çà äà âèäèòå äîêóìåíòàöèÿòà íà âàøèÿ òåêóù ãëàâåí ðåæèì, âúâåäåòå C-h | 798 | Çà äà âèäèòå äîêóìåíòàöèÿòà íà âàøèÿ òåêóù ãëàâåí ðåæèì, âúâåäåòå C-h |
| 811 | m. | 799 | m. |
| 812 | 800 | ||
| 813 | >> Óïîòðåáåòå C-u C-v âåäíúæ èëè ïîâå÷å ïúòè, çà äà äîêàðàòå òîçè ðåä | 801 | >> Óïîòðåáåòå C-l C-l âåäíúæ èëè ïîâå÷å ïúòè, çà äà äîêàðàòå òîçè ðåä |
| 814 | áëèçî äî âúðõà íà åêðàíà. | 802 | áëèçî äî âúðõà íà åêðàíà. |
| 815 | >> Âúâåäåòå C-h m, çà äà âèäèòå êàê òåêñòîâèÿò ðåæèì ñå ðàçëè÷àâà îò | 803 | >> Âúâåäåòå C-h m, çà äà âèäèòå êàê òåêñòîâèÿò ðåæèì ñå ðàçëè÷àâà îò |
| 816 | îñíîâíèÿ ðåæèì. | 804 | îñíîâíèÿ ðåæèì. |
| @@ -824,20 +812,20 @@ m. | |||
| 824 | ìàëêè ðåæèìè, äà èçïîëçâàòå åäèí ìàëúê ðåæèì, èëè äà èçïîëçâàòå | 812 | ìàëêè ðåæèìè, äà èçïîëçâàòå åäèí ìàëúê ðåæèì, èëè äà èçïîëçâàòå |
| 825 | íÿêàêâà êîìáèíàöèÿ îò íÿêîëêî ìàëêè ðåæèìà. | 813 | íÿêàêâà êîìáèíàöèÿ îò íÿêîëêî ìàëêè ðåæèìà. |
| 826 | 814 | ||
| 827 | Åäèí ãëàâåí ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà | 815 | Åäèí ìàëúê ðåæèì, êîéòî å ìíîãî ïîëåçåí, îñîáåíî çà ðåäàêòèðàíå íà |
| 828 | òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill | 816 | òåêñò íà åñòåñòâåí åçèê, å ðåæèìúò íà àâòîìàòè÷íî çàïúëâàíå (Auto Fill |
| 829 | mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Åìàêñ àâòîìàòè÷íî ðàçäåëÿ ðåäà | 817 | mode). Êîãàòî òîçè ðåæèì å âêëþ÷åí, Åìàêñ àâòîìàòè÷íî ðàçäåëÿ ðåäà |
| 830 | ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî | 818 | ïðè ìÿñòîòî ìåæäó äóìèòå, êîãàòî âìúêâàòå òåêñò è íàïðàâèòå ðåä, êîéòî |
| 831 | å òâúðäå äúëúã. | 819 | å òâúðäå äúëúã. |
| 832 | 820 | ||
| 833 | Ìîæå äà âêëþ÷èòå ðåæèìà íà àâòîìàòè÷íî çàïúëâàíå, êàòî èçïúëíèòå M-x | 821 | Ìîæå äà âêëþ÷èòå ðåæèìà íà àâòîìàòè÷íî çàïúëâàíå, êàòî èçïúëíèòå M-x |
| 834 | auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî | 822 | auto-fill-mode <Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî |
| 835 | èçêëþ÷èòå ñ M-x auto fill mode<Return>. Àêî ðåæèìúò å èçêëþ÷åí, òàçè | 823 | èçêëþ÷èòå ñ M-x auto-fill-mode<Return>. Àêî ðåæèìúò å èçêëþ÷åí, òàçè |
| 836 | êîìàíäà ãî âêëþ÷âà, à àêî å âêëþ÷åí, ãî èçêëþ÷âà. Êàçâàìå, ÷å | 824 | êîìàíäà ãî âêëþ÷âà, à àêî å âêëþ÷åí, ãî èçêëþ÷âà. Êàçâàìå, ÷å |
| 837 | êîìàíäàòà "îáðúùà ðåæèìà". | 825 | êîìàíäàòà „ïðåâêëþ÷âà (toggle) ðåæèìà“. |
| 838 | 826 | ||
| 839 | >> Âúâåäåòå M-x auto fill mode<Return> ñåãà. Ñëåä òîâà âìúêíåòå ðåä | 827 | >> Âúâåäåòå M-x auto-fill-mode <Return> ñåãà. Ñëåä òîâà âìúêíåòå ðåä |
| 840 | îò "asdf " îòíîâî è îòíîâî, äîêàòî íå âèäèòå, ÷å òåêñòúò ñå ðàçäåëÿ | 828 | îò „asdf “ îòíîâî è îòíîâî, äîêàòî íå âèäèòå, ÷å òåêñòúò ñå ðàçäåëÿ |
| 841 | íà äâà ðåäà. Òðÿáâà äà ñëàãàòå èíòåðâàëè ìåæäó äóìèòå, çàùîòî | 829 | íà äâà ðåäà. Òðÿáâà äà ñëàãàòå èíòåðâàëè ìåæäó äóìèòå, çàùîòî |
| 842 | àâòîìàòè÷íîòî çàïúëâàíå ðàçäåëÿ ðåäîâåòå ñàìî ïðè èíòåðâàëèòå. | 830 | àâòîìàòè÷íîòî çàïúëâàíå ðàçäåëÿ ðåäîâåòå ñàìî ïðè èíòåðâàëèòå. |
| 843 | 831 | ||
| @@ -866,51 +854,42 @@ auto fill mode<Return>. Êîãàòî ðåæèìúò å âêëþ÷åí, ìîæå äà ãî | |||
| 866 | íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà | 854 | íà íèç å ïðèäâèæâàùà êóðñîðà êîìàíäà; òÿ ïðåìåñòâà êóðñîðà íà |
| 867 | ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò. | 855 | ñëåäâàùîòî ìÿñòî, êúäåòî ñå ñðåùà íèçúò. |
| 868 | 856 | ||
| 869 | Êîìàíäàòà çà òúðñåíå íà Åìàêñ ñå ðàçëè÷àâà îò êîìàíäàòà çà òúðñåíå íà | 857 | Êîìàíäàòà çà òúðñåíå íà Åìàêñ å „ïîñòúïêîâà“. Òîâà îçíà÷àâà, ÷å |
| 870 | ïîâå÷åòî ðåäàêòîðè ïî òîâà, ÷å òÿ å "ïîñòúïêîâà". Òîâà îçíà÷àâà, ÷å | ||
| 871 | òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå. | 858 | òúðñåíåòî ñå èçâúðøâà îùå äîêàòî âúâåæäàòå òåêñòà, êîéòî òúðñèòå. |
| 872 | 859 | ||
| 873 | Êîìàíäàòà çà çàïî÷âàíå íà òúðñåíå å C-s çà òúðñåíå íàïðåä, è C-r çà | 860 | Êîìàíäàòà çà çàïî÷âàíå íà òúðñåíå å C-s çà òúðñåíå íàïðåä, è C-r çà |
| 874 | òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà. | 861 | òúðñåíå íàçàä. ÍÎ ÏÎ×ÀÊÀÉÒÅ! Íå ãè ïðîáâàéòå ñåãà. |
| 875 | 862 | ||
| 876 | Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò "I-search" ñå ïîÿâÿâà | 863 | Êîãàòî âúâåäåòå C-s, ùå çàáåëåæèòå, ÷å íèçúò „I-search“ ñå ïîÿâÿâà |
| 877 | êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Åìàêñ å â òîâà, | 864 | êàòî ïîäñêàçêà â åõî îáëàñòòà. Òîâà âè êàçâà, ÷å Åìàêñ å â òîâà, |
| 878 | êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà, | 865 | êîåòî ñå íàðè÷à ïîñòúïêîâî òúðñåíå, ÷àêàéêè âè äà âúâåæäàòå òåêñòà, |
| 879 | êîéòî èñêàòå äà òúðñèòå. <Return> ïðèêëþ÷âà òúðñåíåòî. | 866 | êîéòî èñêàòå äà òúðñèòå. <Return> ïðèêëþ÷âà òúðñåíåòî. |
| 880 | 867 | ||
| 881 | >> Ñåãà âúâåäåòå C-s, çà äà çàïî÷íåòå òúðñåíåòî. ÁÀÂÍÎ, áóêâà ïî | 868 | >> Ñåãà âúâåäåòå C-s, çà äà çàïî÷íåòå òúðñåíåòî. ÁÀÂÍÎ, áóêâà ïî |
| 882 | áóêâà, âúâåäåòå äóìàòà "òúðñåíå", èç÷àêâàéêè ñëåä âúâåæäàíåòî íà | 869 | áóêâà, âúâåäåòå äóìàòà „êóðñîð“, èç÷àêâàéêè ñëåä âúâåæäàíåòî íà |
| 883 | âñåêè çíàê, çà äà ìîæå äà çàáåëåæèòå êàêâî ñòàâà ñ êóðñîðà. Ñåãà | 870 | âñåêè çíàê, çà äà ìîæå äà çàáåëåæèòå êàêâî ñòàâà ñ êóðñîðà. Ñåãà |
| 884 | èçâúðøèõòå òúðñåíå íà "òúðñåíå" âåäíúæ. | 871 | èçâúðøèõòå òúðñåíå íà „êóðñîð“ âåäíúæ. |
| 885 | >> Âúâåäåòå îòíîâî C-s, çà äà òúðñèòå äðóãî ñúâïàäåíèå ñ "òúðñåíå". | 872 | >> Âúâåäåòå îòíîâî C-s, çà äà òúðñèòå äðóãî ñúâïàäåíèå ñ „êóðñîð“. |
| 886 | >> Ñåãà âúâåäåòå <Delback> òðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà. | 873 | >> Ñåãà âúâåäåòå <DEL> ÷åòèðè ïúòè è âèæòå êàê ñå ïðèäâèæâà êóðñîðà. |
| 887 | >> Âúâåäåòå <Return>, çà äà ïðåêðàòèòå òúðñåíåòî. | 874 | >> Âúâåäåòå <Return>, çà äà ïðåêðàòèòå òúðñåíåòî. |
| 888 | 875 | ||
| 889 | Çàáåëÿçàõòå ëè êàêâî ñòàíà? Åìàêñ, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà | 876 | Çàáåëÿçàõòå ëè êàêâî ñòàíà? Åìàêñ, êîãàòî òúðñè ïîñòúïêîâî, ñå îïèòâà |
| 890 | äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà | 877 | äà íàìåðè ñëåäâàùîòî ñúâïàäåíèå íà íèçà, êîéòî ñå âúâåæäà. Çà äà |
| 891 | îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà "òúðñíå", ïðîñòî îòíîâî âúâåäåòå | 878 | îòèäåòå íà ñëåäâàùîòî ñúâïàäåíèå íà „êóðñîð“, ïðîñòî îòíîâî âúâåäåòå |
| 892 | C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Åìàêñ áèáèïâà è âè êàçâà, ÷å | 879 | C-s. Àêî íÿìà òàêîâà ñúâïàäåíèå, Åìàêñ áèáèïâà è âè êàçâà, ÷å |
| 893 | òúðñåíåòî å "ïðîâàëåíî" (failing). C-g ñúùî ïðåêðàòÿâà òúðñåíåòî. | 880 | òúðñåíåòî å „ïðîâàëåíî“ (failing). C-g ñúùî òàêà ïðåêðàòÿâà |
| 894 | 881 | òúðñåíåòî. | |
| 895 | ÇÀÁÅËÅÆÊÀ: Íà íÿêîè ñèñòåìè âúâåæäàíåòî íà C-s ùå çàìðàçè åêðàíà è âèå | 882 | |
| 896 | íÿìà äà ìîæå äà âèäèòå ïîâå÷å ðåàêöèÿ îò Åìàêñ. Òîâà ïîêàçâà, ÷å | 883 | Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå <DEL>, ùå |
| 897 | "ñïîñîáíîñò" íà îïåðàöèîííàòà ñèñòåìà, íàðå÷åíà "óïðàâëåíèå íà ïîòîêà" | ||
| 898 | (flow control), å ïðèõâàíàëà C-s è íå ãî ïðîïóñêà äî Åìàêñ. Çà äà | ||
| 899 | ðàçìðàçèòå åêðàíà, âúâåäåòå C-q. Òîãàâà âèæòå ñåêöèÿòà "Ñïîíòàííî | ||
| 900 | âêëþ÷âàíå íà ïîñòúïêîâîòî òúðñåíå" (Spontaneous Entry to Incremental | ||
| 901 | Search) â ðúêîâîäñòâîòî íà Åìàêñ çà ñúâåò êàê äà ñå ñïðàâèòå ñ òàçè | ||
| 902 | "ñïîñîáíîñò". | ||
| 903 | |||
| 904 | Àêî ñòå â ñðåäàòà íà ïîñòúïêîâî òúðñåíå è âúâåäåòå <Delback>, ùå | ||
| 905 | çàáåëåæèòå, ÷å ïîñëåäíèÿò çíàê â òúðñåíèÿ íèç ñå èçòðèâà è òúðñåíåòî | 884 | çàáåëåæèòå, ÷å ïîñëåäíèÿò çíàê â òúðñåíèÿ íèç ñå èçòðèâà è òúðñåíåòî |
| 906 | ñå âðúùà êúì ïîñëåäíîòî ìÿñòî íà òúðñåíå. Íàïðèìåð, ïðåäïîëîæåòå, ÷å | 885 | ñå âðúùà êúì ïîñëåäíîòî ìÿñòî íà òúðñåíå. Íàïðèìåð, ïðåäïîëîæåòå, ÷å |
| 907 | ñòå âúâåëè "ò", çà äà íàìåðèòå ïúðâîòî ñúâïàäåíèå ñ "ò". Ñåãà, àêî | 886 | ñòå âúâåëè „ê“, çà äà íàìåðèòå ïúðâîòî ñúâïàäåíèå ñ „ê“. Ñåãà, àêî |
| 908 | âúâåäåòå "ú", êóðñîðúò ùå ñå ïðèäâèæè êúì ïúðâîòî ñúâïàäåíèå íà "òú". | 887 | âúâåäåòå „ó“, êóðñîðúò ùå ñå ïðèäâèæè êúì ïúðâîòî ñúâïàäåíèå íà „êó“. |
| 909 | Ñåãà âúâåäåòå <Delback>. Òîâà èçòðèâà çíàêà "ú" îò íèçà çà òúðñåíå è | 888 | Ñåãà âúâåäåòå <DEL>. Òîâà èçòðèâà çíàêà „ó“ îò íèçà çà òúðñåíå è |
| 910 | êóðñîðúò ñå ïðåìåñòâà íàçàä, äî ïúðâîòî ñúâïàäåíèå ñ "ò". | 889 | êóðñîðúò ñå ïðåìåñòâà íàçàä, äî ïúðâîòî ñúâïàäåíèå ñ „ê“. |
| 911 | 890 | ||
| 912 | Àêî ñòå â ñðåäàòà íà òúðñåíå è âúâåäåòå êîíòðîëåí èëè ìåòà çíàê (ñ | 891 | Àêî ñòå â ñðåäàòà íà òúðñåíå è âúâåäåòå êîíòðîëåí èëè ìåòà çíàê (ñ |
| 913 | íÿêîëêî èçêëþ÷åíèÿ -- çíàöèòå, êîèòî ñà ñïåöèàëíè ïî âðåìå íà òúðñåíå, | 892 | íÿêîëêî èçêëþ÷åíèÿ – çíàöèòå, êîèòî ñà ñïåöèàëíè ïî âðåìå íà òúðñåíå, |
| 914 | êàòî C-s è C-r), òúðñåíåòî ñå ïðåêðàòÿâà. | 893 | êàòî C-s è C-r), òúðñåíåòî ñå ïðåêðàòÿâà. |
| 915 | 894 | ||
| 916 | C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà | 895 | C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà |
| @@ -924,9 +903,11 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà | |||
| 924 | 903 | ||
| 925 | Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Åìàêñ å òàçè, ÷å ìîæå äà | 904 | Åäíà îò ïðèâëåêàòåëíèòå ñïîñîáíîñòè íà Åìàêñ å òàçè, ÷å ìîæå äà |
| 926 | ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå. | 905 | ãëåäàòå ïîâå÷å îò åäèí ïðîçîðåö íà åêðàíà â äàäåí ìîìåíò îò âðåìå. |
| 906 | (Îáúðíåòå âíèìàíèå, ÷å Åìàêñ èçïîëçâà äóìàòà „ðàìêè“, îïèñàíà â | ||
| 907 | ñëåäâàùèÿ ðàçäåë, çà òîâà, êîåòî äðóãè ïðèëîæåíèÿ íàðè÷àò „ïðîçîðåö“. | ||
| 908 | Ðúêîâîäñòâîòî íà Åìàê ñúäúðæà ðå÷íèêà íà òåðìèíèòå íà Åìàêñ.) | ||
| 927 | 909 | ||
| 928 | >> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-u 0 C-l (òîâà å | 910 | >> Ïðèäâèæåòå êóðñîðà äî òîçè ðåä è âúâåäåòå C-l C-l. |
| 929 | CONTROL-L, íå CONTROL-1). | ||
| 930 | 911 | ||
| 931 | >> Ñåãà âúâåäåòå C-x 2, êîåòî ùå ðàçäåëè åêðàíà íà äâà îòäåëíè | 912 | >> Ñåãà âúâåäåòå C-x 2, êîåòî ùå ðàçäåëè åêðàíà íà äâà îòäåëíè |
| 932 | ïðîçîðåöà. Äâàòà ïðîçîðåöà ïîêàçâàò òîâà âúâåäåíèå. Êóðñîðúò | 913 | ïðîçîðåöà. Äâàòà ïðîçîðåöà ïîêàçâàò òîâà âúâåäåíèå. Êóðñîðúò |
| @@ -935,7 +916,7 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà | |||
| 935 | >> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå | 916 | >> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå äîëíèÿ ïðîçîðåö. (Àêî íÿìàòå |
| 936 | èñòèíñêè êëàâèø META, âúâåäåòå ESC C-v.) | 917 | èñòèíñêè êëàâèø META, âúâåäåòå ESC C-v.) |
| 937 | 918 | ||
| 938 | >> Âúâåäåòå C-x o ("o" îò "other" -- "äðóã"), çà äà ïðèäâèæèòå | 919 | >> Âúâåäåòå C-x o („o“ îò „other“ – „äðóã“), çà äà ïðèäâèæèòå |
| 939 | êóðñîðà â äîëíèÿ ïðîçîðåö. | 920 | êóðñîðà â äîëíèÿ ïðîçîðåö. |
| 940 | >> Èçïîëçâàéòå C-v è M-v â äîëíèÿ ïðîçîðåö, çà äà ãî ñêðîëèðàòå. | 921 | >> Èçïîëçâàéòå C-v è M-v â äîëíèÿ ïðîçîðåö, çà äà ãî ñêðîëèðàòå. |
| 941 | Ïðîäúëæåòå ÷åòåíåòî íà òåçè íàñîêè îò âúâåäåíèåòî â ãîðíèÿ | 922 | Ïðîäúëæåòå ÷åòåíåòî íà òåçè íàñîêè îò âúâåäåíèåòî â ãîðíèÿ |
| @@ -946,32 +927,32 @@ C-s çàïî÷âà òúðñåíå, êîåòî ãëåäà çà ñúâïàäåíèå ñ íèçà, äàäåí çà | |||
| 946 | ïðåäè. | 927 | ïðåäè. |
| 947 | 928 | ||
| 948 | Ìîæå äà ïðîäúëæèòå äà èçïîëçâàòå C-x o, çà äà ïðåâêëþ÷âàòå ìåæäó | 929 | Ìîæå äà ïðîäúëæèòå äà èçïîëçâàòå C-x o, çà äà ïðåâêëþ÷âàòå ìåæäó |
| 949 | ïðîçîðöèòå. Âñåêè ïðîçîðåö èìà ñîáñòâåíî ìÿñòî íà êóðñîðà, íî ñàìî | 930 | ïðîçîðöèòå. „Òåêóùèÿò ïðîçîðåö“, êúäåòî ñå èçâúðøâà ðåäàêòèðàíåòî, å |
| 950 | åäèí ïðîçîðåö ïîêàçâà êóðñîð. Âñè÷êè îáèêíîâåíè êîìàíäè çà | 931 | òîçè ñ ÿâåí êóðñîð, êîéòî ìèãà, êîãàòî íå âúâåæäàòå. Äðóãèòå ïðîçîðöè |
| 951 | ðåäàêòèðàíå ñå ïðèëàãàò â ïðîçîðåöà, â êîéòî å êóðñîðúò. Íèå íàðè÷àìå | 932 | èìàò ñîáñòâåíè ïîëîæåíèÿ íà êóðñîðà. Àêî Åìàêñ å íà ãðàôè÷åí äèñïëåé, |
| 952 | òîçè ïðîçîðåö "òåêóù ïðîçîðåö". | 933 | òåçè êóðñîðè ùå ñà èç÷åðòàíè êàòî íåìèãàùè ïðàçíè êóòèè. |
| 953 | 934 | ||
| 954 | Êîìàíäàòà C-M-v å ìíîãî ïîëåçíà, êîãàòî ðåäàêòèðàòå òåêñò â åäèí | 935 | Êîìàíäàòà C-M-v å ìíîãî ïîëåçíà, êîãàòî ðåäàêòèðàòå òåêñò â åäèí |
| 955 | ïðîçîðåö è èçïîëçâàòå äðóãèÿ ïðîçîðåö ïðîñòî çà ñïðàâêà. Ìîæå äà | 936 | ïðîçîðåö è èçïîëçâàòå äðóãèÿ ïðîçîðåö ïðîñòî çà ñïðàâêà. Ìîæå äà |
| 956 | äúðæèòå êóðñîðà âèíàãè â ïðîçîðåöà, êúäåòî ðåäàêòèðàòå, è äà | 937 | äúðæèòå êóðñîðà âèíàãè â ïðîçîðåöà, êúäåòî ðåäàêòèðàòå, è äà |
| 957 | íàïðåäâàòå ïîñëåäîâàòåëíî â äðóãèÿ ïðîçîðåö ÷ðåç C-M-v. | 938 | íàïðåäâàòå ïîñëåäîâàòåëíî â äðóãèÿ ïðîçîðåö ÷ðåç C-M-v. |
| 958 | 939 | ||
| 959 | C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META, | 940 | C-M-v å ïðèìåð çà çíàê CONTROL-META. Àêî èìàòå èñòèíñêè êëàâèø META |
| 960 | ìîæå äà âúâåæäàòå C-M-v, çàäúðæàéêè åäíîâðåìåííî CONTROL è META, | 941 | (èëè Alt), ìîæå äà âúâåæäàòå C-M-v, çàäúðæàéêè åäíîâðåìåííî CONTROL è |
| 961 | äîêàòî âúâåæäàòå v. Íÿìà çíà÷åíèå äàëè CONTROL èëè META "å íàòèñíàò | 942 | META, äîêàòî âúâåæäàòå „v“. Íÿìà çíà÷åíèå äàëè CONTROL èëè META „å |
| 962 | ïúðâè", çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, êîéòî | 943 | íàòèñíàò ïúðâè“, çàùîòî è äâàòà êëàâèøà äåéñòâàò, ìîäèôèöèðàéêè çíàêà, |
| 963 | ñòå âúâåëè. | 944 | êîéòî íàòèñêàòå. |
| 964 | 945 | ||
| 965 | Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå ESC âìåñòî òîâà, ðåäúò | 946 | Àêî íÿìàòå èñòèíñêè êëàâèø META è èçïîëçâàòå <ESC> âìåñòî òîâà, ðåäúò |
| 966 | èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå ESC, ïîñëåäâàí îò CONTROL-v, çàùîòî | 947 | âå÷å èìà çíà÷åíèå: òðÿáâà äà âúâåæäàòå <ESC>, ïîñëåäâàí îò CONTROL-v, |
| 967 | CONTROL-ESC v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî ESC å ñîáñòâåí | 948 | çàùîòî CONTROL-<ESC> v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî <ESC> å |
| 968 | çíàê, à íå ìîäèôèêàòîð. | 949 | ñîáñòâåí çíàê, à íå ìîäèôèêàòîð. |
| 969 | 950 | ||
| 970 | >> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö. | 951 | >> Âúâåäåòå C-x 1 (â ãîðíèÿ ïðîçîðåö), çà äà ìàõíåòå äîëíèÿ ïðîçîðåö. |
| 971 | 952 | ||
| 972 | (Àêî ñòå âúâåëè C-x 1 â äîëíèÿ ïðîçîðåö, òîâà ùå ìàõíå ãîðíèÿ. | 953 | (Àêî ñòå âúâåëè C-x 1 â äîëíèÿ ïðîçîðåö, òîâà ùå ìàõíå ãîðíèÿ. |
| 973 | Ìèñëåòå çà òàçè êîìàíäà êàòî "Çàäðúæ òî÷íî åäèí ïðîçîðåö -- òîçè, â | 954 | Ìèñëåòå çà òàçè êîìàíäà êàòî „Çàäðúæ òî÷íî åäèí ïðîçîðåö – òîçè, â |
| 974 | êîéòî ñúì ñåãà".) | 955 | êîéòî ñúì ñåãà“.) |
| 975 | 956 | ||
| 976 | Íÿìà íóæäà äà èçâåæäàòå åäèí è ñúùè áóôåð â äâàòà ïðîçîðåöà. Àêî | 957 | Íÿìà íóæäà äà èçâåæäàòå åäèí è ñúùè áóôåð â äâàòà ïðîçîðåöà. Àêî |
| 977 | èçïîëçâàòå C-x C-f, çà äà íàìåðèòå ôàéë â åäèíèÿ ïðîçîðåö, äðóãèÿò | 958 | èçïîëçâàòå C-x C-f, çà äà íàìåðèòå ôàéë â åäèíèÿ ïðîçîðåö, äðóãèÿò |
| @@ -989,22 +970,47 @@ CONTROL-ESC v íÿìà äà ðàáîòè. Òîâà å òàêà, çàùîòî ESC å ñîáñòâåí | |||
| 989 | èçòðèåòå äîëíèÿ. | 970 | èçòðèåòå äîëíèÿ. |
| 990 | 971 | ||
| 991 | 972 | ||
| 973 | * ÌÍÎÆÅÑÒÂÎ ÐÀÌÊÈ | ||
| 974 | ----------------- | ||
| 975 | |||
| 976 | Åìàêñ ìîæå äà ñúçäàâà è „ðàìêè“. Ðàìêàòà (frame) å òîâà, êîåòî | ||
| 977 | íàðè÷àìå åäèí íàáîð îò ïðîçîðöè, çàåäíî ñ òåõíèòå ìåíþòà, ïëúçãà÷è, | ||
| 978 | åõî îáëàñòè è ò.í.  ãðàôè÷åí äèñïëåé Åìàêñ íàðè÷à „ðàìêà“ òîâà, | ||
| 979 | êîåòî ïîâå÷åòî äðóãè ïðèëîæåíèÿ íàðè÷àò „ïðîçîðåö“. Íà åêðàíà ìîãàò | ||
| 980 | äà áúäàò ïîêàçâàíè íÿêîëêî ãðàôè÷íè ðàìêè åäíîâðåìåííî.  òåêñòîâ | ||
| 981 | òåðìèíàë ìîæå äà ñå ïîêàçâà ñàìî åäíà ðàìêà â äàäåí ìîìåíò îò âðåìå. | ||
| 982 | |||
| 983 | >> Âúâåäåòå M-x make-frame <Return>. | ||
| 984 | Âèæòå êàê ñå ïîÿâÿâà íîâà ðàìêà íà åêðàíà. | ||
| 985 | |||
| 986 |  íîâàòà ðàìêà ìîæåòå äà ïðàâèòå âñè÷êî, êîåòî ïðàâèòå è â | ||
| 987 | îðèãèíàëíàòà ðàìêà. Íÿìà íèùî ñïåöèàëíî â ïúðâàòà ðàìêà. | ||
| 988 | |||
| 989 | >> Âúâåäåòå M-x delete-frame <Return> | ||
| 990 | Èçáðàíàòà ðàìêà ñå ïðåìàõâà. | ||
| 991 | |||
| 992 | Ìîæåòå äà ïðåìàõâàòå ðàìêè è ïî íîðìàëíèÿ çà òîâà íà÷èí â ãðàôè÷íàòà | ||
| 993 | ñèñòåìà, íàé-÷åñòî ñ íàòèñêàíå íà áóòîíà, îòáåëÿçàí êàòî „X“ â ãîðåí | ||
| 994 | úãúë íà ðàìêàòà. Àêî ïðåìàõíåòå è ïîñëåäíàòà ðàìêà íà ðàáîòåù Åìàêñ, | ||
| 995 | òîâà ùå èçëåçå îò Åìàêñ. | ||
| 996 | |||
| 997 | |||
| 992 | * ÂËÎÆÅÍÈ ÍÈÂÀ ÍÀ ÐÅÄÀÊÒÈÐÀÍÅ | 998 | * ÂËÎÆÅÍÈ ÍÈÂÀ ÍÀ ÐÅÄÀÊÒÈÐÀÍÅ |
| 993 | ----------------------------- | 999 | ----------------------------- |
| 994 | 1000 | ||
| 995 | Ïîíÿêîãà ùå ñå îçîâåòå â òîâà, êîåòî ñå íàðè÷à "âëîæåíî íèâî íà | 1001 | Ïîíÿêîãà ùå ñå îçîâåòå â òîâà, êîåòî ñå íàðè÷à „âëîæåíî íèâî íà |
| 996 | ðåäàêòèðàíå" (recursive editing level). Òîâà ñå îòáåëÿçâà îò | 1002 | ðåäàêòèðàíå“ (recursive editing level). Òîâà ñå îòáåëÿçâà îò |
| 997 | êâàäðàòíè ñêîáè â ðåäà íà ðåæèìà, êîèòî îãðàæäàò ñêîáèòå îêîëî èìåòî | 1003 | êâàäðàòíè ñêîáè â ðåäà íà ðåæèìà, êîèòî îãðàæäàò ñêîáèòå îêîëî èìåòî |
| 998 | íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî | 1004 | íà ãëàâíèÿ ðåæèì. Íàïðèìåð, ìîæå äà âèäèòå [(Fundamental)] âìåñòî |
| 999 | (Fundamental). | 1005 | (Fundamental). |
| 1000 | 1006 | ||
| 1001 | Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå ESC ESC | 1007 | Çà äà ñå ìàõíåòå îò âëîæåíîòî íèâî íà ðåäàêòèðàíå, âúâåäåòå <ESC> |
| 1002 | ESC. Òîâà å îáùà êîìàíäà çà "èçëèçàíå". Ìîæå è äà ÿ èçïîëçâàòå çà | 1008 | <ESC> <ESC>. Òîâà å îáùà êîìàíäà çà „èçëèçàíå“. Ìîæå è äà ÿ |
| 1003 | ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà äà ñå ìàõíåòå | 1009 | èçïîëçâàòå çà ìàõàíå (ñêðèâàíå) íà äîïúëíèòåëíè ïðîçîðöè, êàêòî è çà |
| 1004 | îò ìèíèáóôåðà. | 1010 | äà ñå ìàõíåòå îò ìèíèáóôåðà. |
| 1005 | 1011 | ||
| 1006 | >> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå ESC ESC | 1012 | >> Âúâåäåòå M-x, çà äà âëåçåòå â ìèíèáóôåð; òîãàâà âúâåäåòå <ESC> |
| 1007 | ESC, çà äà èçëåçåòå. | 1013 | <ESC> <ESC>, çà äà èçëåçåòå. |
| 1008 | 1014 | ||
| 1009 | Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà | 1015 | Íå ìîæåòå äà èçïîëçâàòå C-g, çà äà èçëåçåòå îò âëîæåíî íèâî íà |
| 1010 | ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà | 1016 | ðåäàêòèðàíå. Òîâà å òàêà, çàùîòî C-g ñå èçïîëçâà çà ïðåêðàòÿâàíå íà |
| @@ -1028,13 +1034,10 @@ CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". | |||
| 1028 | ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù, | 1034 | ïîìîãíå. Àêî ñòå âúâåëè C-h è ðåøèòå, ÷å íå ñå íóæäàåòå îò ïîìîù, |
| 1029 | ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå. | 1035 | ïðîñòî âúâåäåòå C-g, çà äà ÿ ïðåêðàòèòå. |
| 1030 | 1036 | ||
| 1031 | (Íÿêîè êîìïþòðè ïðîìåíÿò çíà÷åíèåòî íà çíàêà C-h. Òå íàèñòèíà íå | 1037 | (Àêî C-h íå èçâåæäà ñúîáùåíèå çà ïîìîù â äúíîòî íà åêðàíà, îïèòàéòå |
| 1032 | òðÿáâà äà ïðàâÿò òîâà êàòî ñëÿïà ìÿðêà çà âñè÷êè ïîòðåáèòåëè, òàêà ÷å | 1038 | êëàâèøà F1 èëè M-x help <Return> âìåñòî òîâà.) |
| 1033 | èìàòå îñíîâàíèå äà ñå îïëà÷åòå íà ñèñòåìíèÿ àäìèíèñòðàòîð. Ìåæäó | ||
| 1034 | äðóãîòî, àêî C-h íå èçâåæäà ñúîáùåíèå çà ïîìîù â äúíîòî íà åêðàíà, | ||
| 1035 | îïèòàéòå êëàâèøà F1 èëè M-x help <Return> âìåñòî òîâà.) | ||
| 1036 | 1039 | ||
| 1037 | Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà c è | 1040 | Íàé-îñíîâíîòî ïîìîùíî ñðåäñòâî å C-h c. Âúâåäåòå C-h, çíàêà „c“ è |
| 1038 | êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà; | 1041 | êîìàíäåí çíàê èëè ïîñëåäîâàòåëíîñò îò çíàöè, îáðàçóâàùè êîìàíäà; |
| 1039 | òîãàâà Åìàêñ ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà. | 1042 | òîãàâà Åìàêñ ùå èçâåäå ìíîãî êðàòêî îïèñàíèå íà êîìàíäàòà. |
| 1040 | 1043 | ||
| @@ -1045,10 +1048,10 @@ CONTROL-h, êîéòî ñå íàðè÷à "çíàêúò çà ïîìîù". | |||
| 1045 | C-p runs the command previous-line | 1048 | C-p runs the command previous-line |
| 1046 | (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä) | 1049 | (C-p èçïúëíÿâà êîìàíäàòà ïðåäèøåí-ðåä) |
| 1047 | 1050 | ||
| 1048 | Òîâà âè êàçâà "èìåòî íà ôóíêöèÿòà". Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò | 1051 | Òîâà âè êàçâà „èìåòî íà ôóíêöèÿòà“. Èìåíàòà íà ôóíêöèèòå ñå èçïîëçâàò |
| 1049 | íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Åìàêñ. Íî òúé êàòî èìåíàòà | 1052 | íàé-âå÷å çà íàñòðîéâàíå è ðàçøèðÿâàíå íà Åìàêñ. Íî òúé êàòî èìåíàòà |
| 1050 | íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå | 1053 | íà ôóíêöèèòå ñà èçáðàíè òàêà, ÷å äà ïîêàçâàò êàêâî ïðàâè êîìàíäàòà, òå |
| 1051 | ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ -- äîñòàòú÷íà, çà äà âè | 1054 | ìîãàò äà ñëóæàò è çà ìíîãî êðàòêà äîêóìåíòàöèÿ – äîñòàòú÷íà, çà äà âè |
| 1052 | ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè. | 1055 | ïðèïîìíè êîìàíäè, êîèòî âå÷å ñòå ó÷èëè. |
| 1053 | 1056 | ||
| 1054 | Ìíîãîçíàêîâè êîìàíäè, êàòî C-x C-s è (àêî íÿìàòå êëàâèø META èëè EDIT | 1057 | Ìíîãîçíàêîâè êîìàíäè, êàòî C-x C-s è (àêî íÿìàòå êëàâèø META èëè EDIT |
| @@ -1070,7 +1073,7 @@ c. | |||
| 1070 | C-h f Îïèñâà ôóíêöèÿ. Òðÿáâà äà âúâåäåòå èìåòî íà | 1073 | C-h f Îïèñâà ôóíêöèÿ. Òðÿáâà äà âúâåäåòå èìåòî íà |
| 1071 | ôóíêöèÿòà. | 1074 | ôóíêöèÿòà. |
| 1072 | 1075 | ||
| 1073 | >> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line<Return>. | 1076 | >> Îïèòàéòå ñ âúâåæäàíå íà C-h f previous-line <Return>. |
| 1074 | Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Åìàêñ çíàå çà ôóíêöèÿòà, | 1077 | Òîâà èçâåæäà öÿëàòà èíôîðìàöèÿ, êîÿòî Åìàêñ çíàå çà ôóíêöèÿòà, |
| 1075 | êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p. | 1078 | êîÿòî îñúùåñòâÿâà êîìàíäàòà C-p. |
| 1076 | 1079 | ||
| @@ -1086,11 +1089,12 @@ c. | |||
| 1086 | äâóçíàêîâà ïîñëåäîâàòåëíîñò îò êëàâèøè, êîÿòî ïóñêà | 1089 | äâóçíàêîâà ïîñëåäîâàòåëíîñò îò êëàâèøè, êîÿòî ïóñêà |
| 1087 | ñúùàòà êîìàíäà. | 1090 | ñúùàòà êîìàíäà. |
| 1088 | 1091 | ||
| 1089 | >> Âúâåäåòå C-h a file<Return>. | 1092 | >> Âúâåäåòå C-h a file <Return>. |
| 1090 | 1093 | ||
| 1091 | Òîâà èçâåæäà â äðóã ïðîçîðåö ñïèñúê íà âñè÷êè M-x êîìàíäè, êîèòî | 1094 | Òîâà èçâåæäà â äðóã ïðîçîðåö ñïèñúê íà âñè÷êè M-x êîìàíäè, êîèòî |
| 1092 | ñúäúðæàò "file" â òÿõíîòî èìå. Ùå âèäèòå çíàêîâè êîìàíäè êàòî C-x | 1095 | ñúäúðæàò „file“ (ôàéë) â òÿõíîòî èìå. Ùå âèäèòå çíàêîâè êîìàíäè êàòî |
| 1093 | C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî find-file. | 1096 | C-x C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî |
| 1097 | find-file. | ||
| 1094 | 1098 | ||
| 1095 | >> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå ïîìîùíèÿ ïðîçîðåö. Íàïðàâåòå ãî | 1099 | >> Âúâåäåòå C-M-v, çà äà ñêðîëèðàòå ïîìîùíèÿ ïðîçîðåö. Íàïðàâåòå ãî |
| 1096 | íÿêîëêî ïúòè. | 1100 | íÿêîëêî ïúòè. |
| @@ -1098,7 +1102,7 @@ C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî find-file. | |||
| 1098 | >> Âúâåäåòå C-x 1, çà äà èçòðèåòå ïîìîùíèÿ ïðîçîðåö. | 1102 | >> Âúâåäåòå C-x 1, çà äà èçòðèåòå ïîìîùíèÿ ïðîçîðåö. |
| 1099 | 1103 | ||
| 1100 | C-h i ×åòåíå íà ðúêîâîäñòâà (Info). Òàçè êîìàíäà âè ïðàùà â | 1104 | C-h i ×åòåíå íà ðúêîâîäñòâà (Info). Òàçè êîìàíäà âè ïðàùà â |
| 1101 | ñïåöèàëåí áóôåð, íàðè÷àí "*info*", êúäåòî ìîæå äà | 1105 | ñïåöèàëåí áóôåð, íàðè÷àí „*info*“, êúäåòî ìîæå äà |
| 1102 | ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà | 1106 | ÷åòåòå ðúêîâîäñòâàòà íà èíñòàëèðàíèòå âúâ âàøàòà |
| 1103 | ñèñòåìà ïàêåòè. Âúâåäåòå m emacs <Return>, çà äà | 1107 | ñèñòåìà ïàêåòè. Âúâåäåòå m emacs <Return>, çà äà |
| 1104 | ÷åòåòå ðúêîâîäñòâîòî íà Åìàêñ. Àêî íèêîãà ïðåäè òîâà | 1108 | ÷åòåòå ðúêîâîäñòâîòî íà Åìàêñ. Àêî íèêîãà ïðåäè òîâà |
| @@ -1113,8 +1117,8 @@ C-f, èçáðîåíè èçìåæäó ñúîòâåòíèòå èìåíà íà êîìàíäè, êàòî find-file. | |||
| 1113 | ----------------- | 1117 | ----------------- |
| 1114 | 1118 | ||
| 1115 | Ìîæå äà íàó÷èòå ïîâå÷å çà Åìàêñ ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè | 1119 | Ìîæå äà íàó÷èòå ïîâå÷å çà Åìàêñ ñ ÷åòåíå íà íåãîâîòî ðúêîâîäñòâî, èëè |
| 1116 | êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî ïîìîù (Help) èëè âúâåäåòå | 1120 | êàòî êíèãà, èëè â Èíôî (èçïîëçâàéòå ìåíþòî Ïîìîù (Help) èëè âúâåäåòå |
| 1117 | F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà | 1121 | C-h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà |
| 1118 | äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî | 1122 | äîâúðøâàíå (completion), êîåòî ñïåñòÿâà ïèñàíå, è dired, êîéòî |
| 1119 | îïðîñòÿâà áîðàâåíåòî ñ ôàéëîâå. | 1123 | îïðîñòÿâà áîðàâåíåòî ñ ôàéëîâå. |
| 1120 | 1124 | ||
| @@ -1122,8 +1126,8 @@ F10 h r). Äâå âúçìîæíîñòè, êîèòî ìîæå äà æåëàåòå â íà÷àëîòî, ñà | |||
| 1122 | èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b | 1126 | èñêàòå äà ïðåâêëþ÷èòå êúì áóôåðà *Messages*, ìîæå äà âúâåäåòå C-x b |
| 1123 | *M<Tab> è Åìàêñ ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà, | 1127 | *M<Tab> è Åìàêñ ùå çàïúëíè îñòàíàëàòà ÷àñò îò èìåòî íà áóôåðà, |
| 1124 | äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî | 1128 | äîêîëêîòî ìîæå äà ñå îïðåäåëè îò òîâà, êîåòî ñòå âúâåëè. Äîâúðøâàíåòî |
| 1125 | å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Åìàêñ â ñòðàíèöàòà "Äîâúðøâàíå" | 1129 | å îïèñàíî â Èíôî-ðúêîâîäñòâîòî íà Åìàêñ â ñòðàíèöàòà „Äîâúðøâàíå“ |
| 1126 | ("Completion"). | 1130 | („Completion“). |
| 1127 | 1131 | ||
| 1128 | Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî | 1132 | Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî |
| 1129 | âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê, | 1133 | âúçìîæíîñò: íåéíèòå ïîääèðåêòîðèè), äà ñå ïðèäâèæâàòå â òîçè ñïèñúê, |
| @@ -1138,13 +1142,11 @@ Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî | |||
| 1138 | * ÇÀÊËÞ×ÅÍÈÅ | 1142 | * ÇÀÊËÞ×ÅÍÈÅ |
| 1139 | ------------ | 1143 | ------------ |
| 1140 | 1144 | ||
| 1141 | Çàïîìíåòå: çà äà èçëåçåòå áåçâúçâðàòíî îò Åìàêñ, èçïîëçâàéòå C-x C-c. | 1145 | Çà äà èçëåçåòå áåçâúçâðàòíî îò Åìàêñ, èçïîëçâàéòå C-x C-c. |
| 1142 | Çà äà èçëåçåòå âðåìåííî â îáâèâêà, òàêà ÷å äà ñå âúðíåòå â Åìàêñ | ||
| 1143 | ïî-êúñíî, èçïîëçâàéòå C-z. | ||
| 1144 | 1146 | ||
| 1145 | Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè | 1147 | Òîâà âúâåäåíèå å ïðåäâèäåíî äà áúäå ðàçáèðàåìî çà âñè÷êè íîâè |
| 1146 | ïîòðåáèòåëè, òàêà ÷å àêî íàìèðàòå íåùî íåÿñíî, íå ñå ñàìîîáâèíÿâàéòå | 1148 | ïîòðåáèòåëè, òàêà ÷å àêî íàìèðàòå íåùî íåÿñíî, íå ñå ñàìîîáâèíÿâàéòå – |
| 1147 | -- îïëà÷åòå ñå! | 1149 | îïëà÷åòå ñå! |
| 1148 | 1150 | ||
| 1149 | 1151 | ||
| 1150 | * ÊÎÏÈÐÀÍÅ | 1152 | * ÊÎÏÈÐÀÍÅ |
| @@ -1160,26 +1162,28 @@ Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî | |||
| 1160 | This version of the tutorial, like GNU Emacs, is copyrighted, and | 1162 | This version of the tutorial, like GNU Emacs, is copyrighted, and |
| 1161 | comes with permission to distribute copies on certain conditions: | 1163 | comes with permission to distribute copies on certain conditions: |
| 1162 | 1164 | ||
| 1163 | Copyright (C) 1985, 1996, 1998, 2001-2012 Free Software Foundation, Inc. | 1165 | Copyright (C) 1985, 1996, 1998, 2001-2012 Free Software Foundation, Inc. |
| 1166 | |||
| 1167 | This file is part of GNU Emacs. | ||
| 1168 | |||
| 1169 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 1170 | it under the terms of the GNU General Public License as published by | ||
| 1171 | the Free Software Foundation, either version 3 of the License, or | ||
| 1172 | (at your option) any later version. | ||
| 1164 | 1173 | ||
| 1165 | Permission is granted to anyone to make or distribute verbatim copies | 1174 | GNU Emacs is distributed in the hope that it will be useful, |
| 1166 | of this document as received, in any medium, provided that the | 1175 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 1167 | copyright notice and permission notice are preserved, | 1176 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 1168 | and that the distributor grants the recipient permission | 1177 | GNU General Public License for more details. |
| 1169 | for further redistribution as permitted by this notice. | ||
| 1170 | 1178 | ||
| 1171 | Permission is granted to distribute modified versions | 1179 | You should have received a copy of the GNU General Public License |
| 1172 | of this document, or of portions of it, | 1180 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
| 1173 | under the above conditions, provided also that they | ||
| 1174 | carry prominent notices stating who last altered them. | ||
| 1175 | 1181 | ||
| 1176 | Óñëîâèÿòà çà êîïèðàíå íà ñàìèÿ Åìàêñ ñà ïî-ñëîæíè, íî â ñúùèÿ äóõ. | ||
| 1177 | Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà ÃÍÓ Åìàêñ íà | 1182 | Ìîëÿ, ïðî÷åòåòå ôàéëà COPYING è òîãàâà äàâàéòå êîïèÿ íà ÃÍÓ Åìàêñ íà |
| 1178 | ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå | 1183 | ñâîè ïðèÿòåëè. Ïîìîãíåòå äà ñïðåì çàòâîðåíîñòòà íà ïðîãðàìèòå |
| 1179 | ("ïðèòåæàíèåòî"), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð! | 1184 | („ïðèòåæàíèåòî“), êàòî èçïîëçâàìå, ïèøåì è ñïîäåëÿìå ñâîáîäåí ñîôòóåð! |
| 1180 | 1185 | ||
| 1181 | Ïðåâîäúò íà áúëãàðñêè å èçâúðøåí îò Îãíÿí Êóëåâ | 1186 | Ïðåâîäúò íà áúëãàðñêè å èçâúðøåí îò Îãíÿí Êóëåâ <ogi@tower.3.bg>. |
| 1182 | <ogi@fmi.uni-sofia.bg>. | ||
| 1183 | 1187 | ||
| 1184 | ;;; Local Variables: | 1188 | ;;; Local Variables: |
| 1185 | ;;; coding: windows-1251 | 1189 | ;;; coding: windows-1251 |
diff --git a/etc/tutorials/TUTORIAL.de b/etc/tutorials/TUTORIAL.de index 2908203b391..3e6927441c8 100644 --- a/etc/tutorials/TUTORIAL.de +++ b/etc/tutorials/TUTORIAL.de | |||
| @@ -15,7 +15,7 @@ EDIT oder ALT genannt). Folgende Abkürzungen werden verwendet: | |||
| 15 | M-f Halten Sie die META-Taste gedrückt und geben | 15 | M-f Halten Sie die META-Taste gedrückt und geben |
| 16 | Sie den Buchstaben (klein) f ein. | 16 | Sie den Buchstaben (klein) f ein. |
| 17 | 17 | ||
| 18 | `>>' am linken Rand ist ein Hinweis, einen Befehl auszuprobieren: | 18 | »>>« am linken Rand ist ein Hinweis, einen Befehl auszuprobieren: |
| 19 | <<Blank lines inserted here by startup of help-with-tutorial>> | 19 | <<Blank lines inserted here by startup of help-with-tutorial>> |
| 20 | [Leerzeilen befinden sich hier aus didaktischen Gründen. Fortsetzung unten.] | 20 | [Leerzeilen befinden sich hier aus didaktischen Gründen. Fortsetzung unten.] |
| 21 | >> Drücken Sie C-v, um zur nächsten Bildschirmseite vorzublättern. | 21 | >> Drücken Sie C-v, um zur nächsten Bildschirmseite vorzublättern. |
| @@ -32,7 +32,7 @@ Wichtig: Sie können Emacs mit der Befehlsfolge C-x C-c beenden. | |||
| 32 | Im weiteren wird die ESC-Taste mit <ESC> bezeichnet. | 32 | Im weiteren wird die ESC-Taste mit <ESC> bezeichnet. |
| 33 | 33 | ||
| 34 | [Falls die deutschen Umlaute nicht korrekt auf dem Bildschirm | 34 | [Falls die deutschen Umlaute nicht korrekt auf dem Bildschirm |
| 35 | erscheinen, lesen Sie bitte den Abschnitt `MULE' kurz vor Ende dieser | 35 | erscheinen, lesen Sie bitte den Abschnitt »MULE« kurz vor Ende dieser |
| 36 | Einführung.] | 36 | Einführung.] |
| 37 | 37 | ||
| 38 | Zunächst müssen Sie wissen, wie man sich innerhalb eines Dokuments | 38 | Zunächst müssen Sie wissen, wie man sich innerhalb eines Dokuments |
| @@ -43,9 +43,9 @@ Sie zuerst <ESC> und anschließend v). | |||
| 43 | 43 | ||
| 44 | >> Probieren Sie einige Male M-v und C-v aus. | 44 | >> Probieren Sie einige Male M-v und C-v aus. |
| 45 | 45 | ||
| 46 | [Auf den meisten Tastaturen bewirkt die PgUp-Taste (`page up', auch | 46 | [Auf den meisten Tastaturen bewirkt die PgUp-Taste (»page up«, auch |
| 47 | mit `Bild' und einem Aufwärtspfeil beschriftet) dasselbe wie M-v bzw. | 47 | mit »Bild« und einem Aufwärtspfeil beschriftet) dasselbe wie M-v bzw. |
| 48 | die PgDn-Taste (`page down', `Bild' mit Abwärtspfeil) dasselbe wie | 48 | die PgDn-Taste (»page down«, »Bild« mit Abwärtspfeil) dasselbe wie |
| 49 | C-v.] | 49 | C-v.] |
| 50 | 50 | ||
| 51 | 51 | ||
| @@ -60,13 +60,14 @@ betrachten: | |||
| 60 | C-l lösche den Bildschirm und stelle den ganzen Text | 60 | C-l lösche den Bildschirm und stelle den ganzen Text |
| 61 | erneut dar, wobei der Text rund um den Cursor zur | 61 | erneut dar, wobei der Text rund um den Cursor zur |
| 62 | Mitte des Bildschirms bewegt wird. | 62 | Mitte des Bildschirms bewegt wird. |
| 63 | (`l' ist der Buchstabe `klein L', nicht die Ziffer 1.) | 63 | (»l« ist der Buchstabe »klein L«, nicht die Ziffer 1.) |
| 64 | 64 | ||
| 65 | 65 | ||
| 66 | >> Lokalisieren Sie den Cursor und merken sich den Text in dessen | 66 | >> Finden Sie den Cursor und merken sich den Text in dessen Umgebung. |
| 67 | Umgebung. Drücken Sie C-l. Der Cursor ist jetzt ungefähr in der | 67 | Drücken Sie C-l. Der Cursor ist jetzt ungefähr in der (vertikalen) |
| 68 | (vertikalen) Bildschirmmitte, und er hat seine Position relativ zum | 68 | Bildschirmmitte, und er hat seine Position relativ zum Text nicht |
| 69 | Text nicht geändert. | 69 | geändert. Wiederholtes Drücken von C-l bewegt den Text zum oberen |
| 70 | Bildschirmrand, dann zum unteren, und dann wieder zur Mitte. | ||
| 70 | 71 | ||
| 71 | 72 | ||
| 72 | * KONTROLLE DES CURSORS | 73 | * KONTROLLE DES CURSORS |
| @@ -91,7 +92,7 @@ Befehl den Cursor wohin bewegt: | |||
| 91 | 92 | ||
| 92 | 93 | ||
| 93 | [Die Buchstaben p, b, f und n stehen für die englischen Wörter | 94 | [Die Buchstaben p, b, f und n stehen für die englischen Wörter |
| 94 | `previous', `backward', `forward' und `next'.] | 95 | »previous«, »backward«, »forward« und »next«.] |
| 95 | 96 | ||
| 96 | >> Bewegen Sie den Cursor zur Zeile in der Mitte des Diagramms mittels | 97 | >> Bewegen Sie den Cursor zur Zeile in der Mitte des Diagramms mittels |
| 97 | C-n oder C-p. Geben Sie dann C-l ein, und das ganze Diagramm ist | 98 | C-n oder C-p. Geben Sie dann C-l ein, und das ganze Diagramm ist |
| @@ -113,8 +114,10 @@ unterstützen). | |||
| 113 | Beobachten Sie, was C-p tut, wenn der Cursor sich in der | 114 | Beobachten Sie, was C-p tut, wenn der Cursor sich in der |
| 114 | Zeilenmitte befindet. | 115 | Zeilenmitte befindet. |
| 115 | 116 | ||
| 116 | Jede Textzeile endet mit einem Zeilenvorschub-Zeichen (`newline'), das | 117 | Jede Textzeile endet mit einem Zeilenvorschub-Zeichen (»newline«), das |
| 117 | sie von der folgenden Zeile trennt. | 118 | sie von der folgenden Zeile trennt. Die letzte Zeile in einer Datei |
| 119 | hat normalerweise ebenfalls einen Zeilenvorschub am Schluss, Emacs | ||
| 120 | benötigt ihn aber nicht. | ||
| 118 | 121 | ||
| 119 | >> Probieren Sie C-b am Anfang einer Zeile. Der Cursor sollte zum | 122 | >> Probieren Sie C-b am Anfang einer Zeile. Der Cursor sollte zum |
| 120 | Ende der vorigen Zeile springen: C-b überspringt | 123 | Ende der vorigen Zeile springen: C-b überspringt |
| @@ -132,7 +135,7 @@ C-f überspringt Zeilenvorschub-Zeichen analog zu C-b. | |||
| 132 | 135 | ||
| 133 | Wenn Sie den Cursor entweder nach oben oder nach unten über den | 136 | Wenn Sie den Cursor entweder nach oben oder nach unten über den |
| 134 | Bildschirmrand hinaus bewegen wollen, dann wird statt dessen Text in | 137 | Bildschirmrand hinaus bewegen wollen, dann wird statt dessen Text in |
| 135 | den Bildschirm hineingeschoben. Dies nennt man `scrolling'. Auf | 138 | den Bildschirm hineingeschoben. Dies nennt man »scrolling«. Auf |
| 136 | diese Weise verhindert Emacs, dass der Cursor je den sichtbaren | 139 | diese Weise verhindert Emacs, dass der Cursor je den sichtbaren |
| 137 | Bereich verlässt. | 140 | Bereich verlässt. |
| 138 | 141 | ||
| @@ -155,7 +158,7 @@ analog, aber in die entgegengesetzte Richtung. | |||
| 155 | zwischen Wörtern zu beobachten. | 158 | zwischen Wörtern zu beobachten. |
| 156 | 159 | ||
| 157 | Beachten Sie die Parallele zwischen C-f und C-b einerseits und M-f und | 160 | Beachten Sie die Parallele zwischen C-f und C-b einerseits und M-f und |
| 158 | M-b andererseits. Sehr oft werden mit `META-' beginnende Befehle für | 161 | M-b andererseits. Sehr oft werden mit »META-« beginnende Befehle für |
| 159 | Operationen verwendet, die mit Sprache zu tun haben (Wörter, Sätze, | 162 | Operationen verwendet, die mit Sprache zu tun haben (Wörter, Sätze, |
| 160 | Absätze), während CONTROL-Befehle mit den Text-Basiseinheiten | 163 | Absätze), während CONTROL-Befehle mit den Text-Basiseinheiten |
| 161 | operieren, unabhängig davon, was Sie gerade editieren (Zeichen, | 164 | operieren, unabhängig davon, was Sie gerade editieren (Zeichen, |
| @@ -181,26 +184,26 @@ lassen. Dadurch ermöglichen Sie u.a., dass Emacs zwischen | |||
| 181 | Abkürzungspunkten und dem Satzende unterscheiden kann, was für | 184 | Abkürzungspunkten und dem Satzende unterscheiden kann, was für |
| 182 | Textsuche in wissenschaftlichen Texten oft vorteilhaft ist.] | 185 | Textsuche in wissenschaftlichen Texten oft vorteilhaft ist.] |
| 183 | 186 | ||
| 184 | [Anmerkung 2: Die Tasten `Home' (Pos1) und `End' (Ende) verhalten sich | 187 | [Anmerkung 2: Die Tasten »Home« (Pos1) und »End« (Ende) verhalten sich |
| 185 | standardmäßig wie C-a und C-e, wie wohl die meisten Benutzer | 188 | standardmäßig wie C-a und C-e, wie wohl die meisten Benutzer |
| 186 | annehmen.] | 189 | annehmen.] |
| 187 | 190 | ||
| 188 | Die aktuelle Position des Cursors wird im Englischen auch `point' | 191 | Die aktuelle Position des Cursors wird im Englischen auch »point« |
| 189 | (Punkt) genannt. Beachten Sie bitte, dass sich `point' stets | 192 | (Punkt) genannt. Beachten Sie bitte, dass sich »point« stets |
| 190 | *zwischen* zwei Zeichen befindet, nämlich genau vor dem | 193 | *zwischen* zwei Zeichen befindet, nämlich genau vor dem |
| 191 | Cursor-Kästchen. | 194 | Cursor-Kästchen. |
| 192 | 195 | ||
| 193 | Hier ist eine Zusammenfassung von einfachen Bewegungsbefehlen für den | 196 | Hier ist eine Zusammenfassung von einfachen Bewegungsbefehlen für den |
| 194 | Cursor einschließlich der Wort- und Satzbewegungsbefehle: | 197 | Cursor einschließlich der Wort- und Satzbewegungsbefehle: |
| 195 | 198 | ||
| 196 | C-f ein Zeichen vorwärts (auch `Pfeil rechts'-Taste) | 199 | C-f ein Zeichen vorwärts (auch »Pfeil rechts«-Taste) |
| 197 | C-b ein Zeichen zurück (auch `Pfeil links'-Taste) | 200 | C-b ein Zeichen zurück (auch »Pfeil links«-Taste) |
| 198 | 201 | ||
| 199 | M-f ein Wort vorwärts | 202 | M-f ein Wort vorwärts |
| 200 | M-b ein Wort zurück | 203 | M-b ein Wort zurück |
| 201 | 204 | ||
| 202 | C-n eine Zeile vorwärts (auch `Pfeil hinunter'-Taste) | 205 | C-n eine Zeile vorwärts (auch »Pfeil hinunter«-Taste) |
| 203 | C-p eine Zeile zurück (auch `Pfeil hinauf'-Taste) | 206 | C-p eine Zeile zurück (auch »Pfeil hinauf«-Taste) |
| 204 | 207 | ||
| 205 | C-a zum Zeilenanfang | 208 | C-a zum Zeilenanfang |
| 206 | C-e zum Zeilenende | 209 | C-e zum Zeilenende |
| @@ -215,7 +218,7 @@ Zwei weitere wichtige Befehle für die Cursorbewegung sind M-< (META | |||
| 215 | Kleiner-als) und M-> (META Größer-als), welche zum Anfang bzw. zum | 218 | Kleiner-als) und M-> (META Größer-als), welche zum Anfang bzw. zum |
| 216 | Ende des ganzen Textes springen. | 219 | Ende des ganzen Textes springen. |
| 217 | 220 | ||
| 218 | Bei den meisten Terminal-Tastaturen befindet sich `<' über dem Komma, | 221 | Bei den meisten Terminal-Tastaturen befindet sich »<« über dem Komma, |
| 219 | d.h., Sie müssen zusätzlich die SHIFT-Taste verwenden (der Umschalter | 222 | d.h., Sie müssen zusätzlich die SHIFT-Taste verwenden (der Umschalter |
| 220 | ist auf deutschen Tastaturen normalerweise mit einem dicken | 223 | ist auf deutschen Tastaturen normalerweise mit einem dicken |
| 221 | Aufwärtspfeil markiert). Ohne SHIFT-Taste würden Sie M-Komma | 224 | Aufwärtspfeil markiert). Ohne SHIFT-Taste würden Sie M-Komma |
| @@ -224,17 +227,17 @@ eingeben. | |||
| 224 | >> Testen Sie nun M-<, um an den Anfang der Einführung | 227 | >> Testen Sie nun M-<, um an den Anfang der Einführung |
| 225 | zu gelangen. Verwenden Sie dann C-v, um wieder hierher zu kommen. | 228 | zu gelangen. Verwenden Sie dann C-v, um wieder hierher zu kommen. |
| 226 | 229 | ||
| 227 | [Anmerkung: Die Tastenkombinationen `C-Home' (Pos1) und `C-End' (Ende) | 230 | [Anmerkung: Die Tastenkombinationen »C-Home« (Pos1) und »C-End« (Ende) |
| 228 | verhalten sich standardmäßig wie M-< und M->.] | 231 | verhalten sich standardmäßig wie M-< und M->.] |
| 229 | 232 | ||
| 230 | Ein weiteres, oft benütztes Konzept in Emacs ist die Markierung | 233 | Ein weiteres, oft benütztes Konzept in Emacs ist die Markierung |
| 231 | (`mark'). Der Grundbefehl dazu ist C-SPC (oder gleichwertig C-@, | 234 | (»mark«). Der Grundbefehl dazu ist C-SPC (oder gleichwertig C-@, |
| 232 | `SPC' bezeichnet die Leertaste, engl. `space key'); mit ihm kann eine | 235 | »SPC« bezeichnet die Leertaste, engl. »space key«); mit ihm kann eine |
| 233 | Markierung gesetzt werden. Mit C-u C-SPC kommt man zu dieser | 236 | Markierung gesetzt werden. Mit C-u C-SPC kommt man zu dieser |
| 234 | Markierung zurück, falls man den Cursor inzwischen weiterbewegt hat. | 237 | Markierung zurück, falls man den Cursor inzwischen weiterbewegt hat. |
| 235 | Viele Befehle, die große Sprünge in einem Text ausführen (so auch M-> | 238 | Viele Befehle, die große Sprünge in einem Text ausführen (so auch M-> |
| 236 | und M-<) setzen eine Markierung implizit, was in der untersten Zeile | 239 | und M-<) setzen eine Markierung implizit, was in der untersten Zeile |
| 237 | (dem Echobereich, s.u.) als `Mark set' angezeigt wird. | 240 | (dem Echobereich, s.u.) als »Mark set« angezeigt wird. |
| 238 | 241 | ||
| 239 | >> Verwenden Sie jetzt M->, um zum Ende der Einführung | 242 | >> Verwenden Sie jetzt M->, um zum Ende der Einführung |
| 240 | zu springen und benützen Sie C-u C-SPC, um hierher zurückzukehren. | 243 | zu springen und benützen Sie C-u C-SPC, um hierher zurückzukehren. |
| @@ -257,7 +260,7 @@ Ziffern und dann der Befehl selbst. Alternativ können Sie die | |||
| 257 | META-Taste (bzw. EDIT- oder ALT-Taste) gedrückt halten und dann die | 260 | META-Taste (bzw. EDIT- oder ALT-Taste) gedrückt halten und dann die |
| 258 | Ziffern des Wiederholungszählers eingeben. Wir empfehlen allerdings, | 261 | Ziffern des Wiederholungszählers eingeben. Wir empfehlen allerdings, |
| 259 | die C-u-Methode zu lernen, da sie mit jedem Terminal funktioniert. | 262 | die C-u-Methode zu lernen, da sie mit jedem Terminal funktioniert. |
| 260 | Das numerische Argument wird auch `Präfix-Argument' genannt, da man es | 263 | Das numerische Argument wird auch »Präfix-Argument« genannt, da man es |
| 261 | vor dem zugehörigen Befehl eingibt. | 264 | vor dem zugehörigen Befehl eingibt. |
| 262 | 265 | ||
| 263 | Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts. | 266 | Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts. |
| @@ -268,7 +271,7 @@ Beispiel: C-u 8 C-f bewegt den Cursor acht Zeichen vorwärts. | |||
| 268 | 271 | ||
| 269 | Wie gesagt, die meisten Befehle verwenden das numerische Argument als | 272 | Wie gesagt, die meisten Befehle verwenden das numerische Argument als |
| 270 | Wiederholungszähler, jedoch nicht alle. Einige davon, die allerdings | 273 | Wiederholungszähler, jedoch nicht alle. Einige davon, die allerdings |
| 271 | noch nicht besprochen wurden, benützen es als Flag (`Flagge'), d.h., | 274 | noch nicht besprochen wurden, benützen es als Flag (»Flagge«), d.h., |
| 272 | allein das Vorhandensein eines Präfix-Arguments, unabhängig von seinem | 275 | allein das Vorhandensein eines Präfix-Arguments, unabhängig von seinem |
| 273 | Wert, signalisiert dem Befehl, etwas anderes zu tun. | 276 | Wert, signalisiert dem Befehl, etwas anderes zu tun. |
| 274 | 277 | ||
| @@ -283,27 +286,20 @@ Der Bildschirminhalt sollte jetzt um acht Zeilen nach oben verschoben | |||
| 283 | sein. Wollen Sie ihn nach unten verschieben, dann geben Sie M-v mit | 286 | sein. Wollen Sie ihn nach unten verschieben, dann geben Sie M-v mit |
| 284 | einem numerischen Argument ein. | 287 | einem numerischen Argument ein. |
| 285 | 288 | ||
| 286 | Wenn Sie eine graphische Oberfläche wie X11 oder MS-Windows verwenden, | 289 | Wenn Sie eine graphische Oberfläche wie X oder MS-Windows verwenden, |
| 287 | dann befindet sich ein schmaler, langgezogener rechteckiger Bereich auf | 290 | dann befindet sich ein schmaler, langgezogener rechteckiger Bereich |
| 288 | der linken oder rechten Seite des Emacs-Fensters. Dieser Bereich | 291 | auf der linken oder rechten Seite des Emacs-Fensters. Dieser Bereich |
| 289 | wird Scrollbar genannt (`Verschiebungsbalken'). Sie können Text | 292 | wird Scrollbar genannt (»Verschiebungsbalken«). Sie können Text |
| 290 | verschieben, indem Sie mit der Maus auf den Scrollbar klicken. | 293 | verschieben, indem Sie mit der Maus auf den Scrollbar klicken. |
| 291 | 294 | ||
| 292 | >> Drücken Sie die mittlere Taste (oder die linke und rechte Taste | 295 | Hat Ihre Maus ein Mausrad, können Sie damit ebenfalls Text |
| 293 | gleichzeitig, falls Sie eine Zwei-Tasten-Maus verwenden) innerhalb | 296 | verschieben. |
| 294 | des Scrollbar-Bereichs. Das sollte den Text zu einer Position | ||
| 295 | verschieben, die davon abhängt, wie weit oben oder unten Sie | ||
| 296 | geklickt haben. | ||
| 297 | |||
| 298 | >> Bewegen Sie nun die Maus auf und ab, während Sie die mittlere Taste | ||
| 299 | gedrückt halten. Sie werden sehen, dass der Text entsprechend der | ||
| 300 | Mausbewegungen nach oben oder unter verschoben wird. | ||
| 301 | 297 | ||
| 302 | 298 | ||
| 303 | * WENN EMACS NICHT MEHR REAGIERT | 299 | * WENN EMACS NICHT MEHR REAGIERT |
| 304 | -------------------------------- | 300 | -------------------------------- |
| 305 | 301 | ||
| 306 | Wenn Emacs `hängt', also auf keine Ihrer Eingaben reagiert, drücken | 302 | Wenn Emacs »hängt«, also auf keine Ihrer Eingaben reagiert, drücken |
| 307 | Sie C-g. Sie können C-g auch dazu benützen, einen Befehl zu stoppen, | 303 | Sie C-g. Sie können C-g auch dazu benützen, einen Befehl zu stoppen, |
| 308 | der zu lange braucht. | 304 | der zu lange braucht. |
| 309 | 305 | ||
| @@ -323,13 +319,13 @@ mit C-g rückgängig machen. | |||
| 323 | * DEAKTIVIERTE BEFEHLE | 319 | * DEAKTIVIERTE BEFEHLE |
| 324 | ---------------------- | 320 | ---------------------- |
| 325 | 321 | ||
| 326 | Ein paar Befehle von Emacs sind deaktiviert (`disabled'), damit | 322 | Ein paar Befehle von Emacs sind deaktiviert (»disabled«), damit |
| 327 | Anfänger sie nicht unabsichtlich benutzen. | 323 | Anfänger sie nicht unabsichtlich benutzen. |
| 328 | 324 | ||
| 329 | Wenn Sie einen solchen Befehl eingeben, dann gibt Emacs eine Meldung | 325 | Wenn Sie einen solchen Befehl eingeben, dann gibt Emacs eine Meldung |
| 330 | aus und fragt Sie, ob Sie ihn wirklich ausführen wollen. | 326 | aus und fragt Sie, ob Sie ihn wirklich ausführen wollen. |
| 331 | 327 | ||
| 332 | Antworten Sie mit y (für `yes') oder drücken Sie die Leertaste, wenn | 328 | Antworten Sie mit y (für »yes«) oder drücken Sie die Leertaste, wenn |
| 333 | Sie den Befehl ausführen wollen, sonst mit n. | 329 | Sie den Befehl ausführen wollen, sonst mit n. |
| 334 | 330 | ||
| 335 | >> Geben Sie C-x C-l ein (das ist ein deaktivierter Befehl) und | 331 | >> Geben Sie C-x C-l ein (das ist ein deaktivierter Befehl) und |
| @@ -339,7 +335,7 @@ Sie den Befehl ausführen wollen, sonst mit n. | |||
| 339 | * FENSTER | 335 | * FENSTER |
| 340 | --------- | 336 | --------- |
| 341 | 337 | ||
| 342 | Emacs kann mehrere Fenster (`windows') haben, von denen jedes seinen | 338 | Emacs kann mehrere Fenster (»windows«) haben, von denen jedes seinen |
| 343 | eigenen Text darstellt. Später erklären wir, wie man mit Fenstern | 339 | eigenen Text darstellt. Später erklären wir, wie man mit Fenstern |
| 344 | umgeht. Hier wollen wir nur erklären, wie man ein (vielleicht | 340 | umgeht. Hier wollen wir nur erklären, wie man ein (vielleicht |
| 345 | irrtümlich erzeugtes) Fenster wieder entfernt und zum normalen | 341 | irrtümlich erzeugtes) Fenster wieder entfernt und zum normalen |
| @@ -351,14 +347,14 @@ Das ist C-x gefolgt von der Ziffer 1. C-x 1 expandiert das Fenster, | |||
| 351 | in dem der Cursor sich befindet, sodass es den ganzen Bildschirm | 347 | in dem der Cursor sich befindet, sodass es den ganzen Bildschirm |
| 352 | erfasst. Alle anderen Fenster werden gelöscht. | 348 | erfasst. Alle anderen Fenster werden gelöscht. |
| 353 | 349 | ||
| 354 | [Anmerkung: Emacs verwendet das Wort Fenster (`windows') in einem | 350 | [Anmerkung: Emacs verwendet das Wort Fenster (»windows«) in einem |
| 355 | anderen Sinn, als Sie es vielleicht gewöhnt sind. Wenn Sie einen | 351 | anderen Sinn, als Sie es vielleicht gewöhnt sind. Wenn Sie einen |
| 356 | Textbildschirm vor sich haben, dann ist die Terminologie eindeutig. | 352 | Textbildschirm vor sich haben, dann ist die Terminologie eindeutig. |
| 357 | Wenn Sie allerdings eine graphische Oberfläche benutzen, dann | 353 | Wenn Sie allerdings eine graphische Oberfläche benutzen, dann |
| 358 | bezeichnet ein Emacs-Fenster einen Teilbereich des Fensters (von Ihrer | 354 | bezeichnet ein Emacs-Fenster einen Teilbereich des Fensters (von Ihrer |
| 359 | graphischen Oberfläche erzeugt), in dem Emacs läuft, in völliger | 355 | graphischen Oberfläche erzeugt), in dem Emacs läuft, in völliger |
| 360 | Analogie zum Textmodus. Für (graphische) Fenster im herkömmlichen | 356 | Analogie zum Textmodus. Für (graphische) Fenster im herkömmlichen |
| 361 | Sinn verwenden die Emacs-Entwickler den Ausdruck Rahmen (`frame').] | 357 | Sinn verwenden die Emacs-Entwickler den Ausdruck »Rahmen« (»frame«).] |
| 362 | 358 | ||
| 363 | >> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-u 0 C-l ein. | 359 | >> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-u 0 C-l ein. |
| 364 | 360 | ||
| @@ -376,38 +372,32 @@ Sinn verwenden die Emacs-Entwickler den Ausdruck Rahmen (`frame').] | |||
| 376 | Wenn Sie Text einfügen wollen, dann geben Sie ihn einfach ein. | 372 | Wenn Sie Text einfügen wollen, dann geben Sie ihn einfach ein. |
| 377 | Sichtbare Zeichen, z.B. A, 7, * usw. werden als Text von Emacs sofort | 373 | Sichtbare Zeichen, z.B. A, 7, * usw. werden als Text von Emacs sofort |
| 378 | eingefügt. Drücken Sie <Return> (die Zeilenvorschubtaste, meistens | 374 | eingefügt. Drücken Sie <Return> (die Zeilenvorschubtaste, meistens |
| 379 | mit `Enter' oder nur mit einem Rückwärts-Hakenpfeil beschriftet), um | 375 | mit »Enter« oder nur mit einem Rückwärts-Hakenpfeil beschriftet), um |
| 380 | ein Zeilenvorschubzeichen einzufügen. | 376 | ein Zeilenvorschubzeichen einzufügen. |
| 381 | 377 | ||
| 382 | Sie können das zuletzt eingegebene Zeichen löschen, indem Sie <Delete> | 378 | Sie können das zuletzt eingegebene Zeichen löschen, indem Sie <DEL> |
| 383 | drücken. <Delete> ist einer Taste auf der Tastatur zugeordnet, die | 379 | drücken. <DEL> ist der Backspace-Taste zugeordnet (oft auch nur als |
| 384 | mit `Del' oder `Entf' beschriftet ist. In manchen Fällen dient die | 380 | Rückwärtspfeil beschriftet). |
| 385 | Backspace-Taste (oft auch nur als Rückwärtspfeil beschriftet) als | ||
| 386 | <Delete>, aber nicht immer! | ||
| 387 | 381 | ||
| 388 | Allgemein gesprochen löscht <Delete> das Zeichen unmittelbar vor der | 382 | Allgemein gesprochen löscht <DEL> das Zeichen unmittelbar vor der |
| 389 | aktuellen Cursorposition. | 383 | aktuellen Cursorposition. |
| 390 | 384 | ||
| 391 | [Beachten Sie, dass <Delete> ein logischer Befehlsname ist, der auf | ||
| 392 | die jeweilige Tastatur abgebildet wird. Lesen Sie im Abschnitt `Init | ||
| 393 | Rebinding' des Emacs-Handbuches nach, wie Sie gegebenenfalls die | ||
| 394 | Tastaturbelegung verändern können.] | ||
| 395 | |||
| 396 | >> Probieren Sie das jetzt aus: Geben Sie ein paar Zeichen ein und | 385 | >> Probieren Sie das jetzt aus: Geben Sie ein paar Zeichen ein und |
| 397 | löschen Sie sie wieder mit <Delete>. Sie brauchen sich keine | 386 | löschen Sie sie wieder mit <DEL>. Sie brauchen sich keine Sorgen |
| 398 | Sorgen zu machen, dieses Dokument zu verändern: Was Sie hier lesen, | 387 | zu machen, dieses Dokument zu verändern: Was Sie hier lesen, ist |
| 399 | ist nur eine (persönliche) Kopie des originalen Dokuments. | 388 | nur eine (persönliche) Kopie des originalen Dokuments. |
| 400 | 389 | ||
| 401 | Wenn eine Textzeile zu lang wird für eine Bildschirmzeile, dann wird | 390 | Wenn eine Textzeile zu lang für eine Bildschirmzeile ist, wird sie auf |
| 402 | sie auf einer zweiten Bildschirmzeile `fortgesetzt'. Ein | 391 | einer zweiten Bildschirmzeile »fortgesetzt«: Bei graphischen |
| 403 | `Backslash'-Zeichen (`\') bzw. ein kleiner gebogener Pfeil (bei | 392 | Oberflächen erscheinen zwei kleine gebogene Pfeile links und rechts |
| 404 | graphischen Oberflächen) am rechten Rand verdeutlicht das. | 393 | vom Textbereich (diese schmalen Spalten werden »fringe« genannt), bei |
| 394 | Terminals ein »Backslash«-Zeichen (»\«) am rechten Rand. | ||
| 405 | 395 | ||
| 406 | >> Fügen Sie Text ein, bis Sie den rechten Rand erreicht haben. Fügen | 396 | >> Fügen Sie Text ein, bis Sie den rechten Rand erreicht haben. Fügen |
| 407 | Sie weiter Text ein. Beobachten Sie, wie eine Fortsetzungszeile | 397 | Sie weiter Text ein. Beobachten Sie, wie eine Fortsetzungszeile |
| 408 | erscheint. | 398 | erscheint. |
| 409 | 399 | ||
| 410 | >> Verwenden Sie <Delete> so oft, bis die Textzeile wieder auf eine | 400 | >> Verwenden Sie <DEL> so oft, bis die Textzeile wieder auf eine |
| 411 | Bildschirmzeile passt. Die Fortsetzungszeile verschwindet wieder. | 401 | Bildschirmzeile passt. Die Fortsetzungszeile verschwindet wieder. |
| 412 | 402 | ||
| 413 | Sie können das Zeilenvorschubzeichen wie jedes andere Zeichen löschen: | 403 | Sie können das Zeilenvorschubzeichen wie jedes andere Zeichen löschen: |
| @@ -415,7 +405,7 @@ Die Zeilen vor und nach ihm werden dann zu einer zusammengehängt. Ist | |||
| 415 | diese länger als die Bildschirmbreite, erscheint eine | 405 | diese länger als die Bildschirmbreite, erscheint eine |
| 416 | Fortsetzungszeile. | 406 | Fortsetzungszeile. |
| 417 | 407 | ||
| 418 | >> Bewegen Sie den Cursor zum Anfang der Zeile und geben Sie <Delete> | 408 | >> Bewegen Sie den Cursor zum Anfang der Zeile und geben Sie <DEL> |
| 419 | ein: Die momentane Zeile wird an die vorige angehängt. | 409 | ein: Die momentane Zeile wird an die vorige angehängt. |
| 420 | 410 | ||
| 421 | >> Geben Sie <Return> ein, um wieder ein Zeilenvorschubzeichen | 411 | >> Geben Sie <Return> ein, um wieder ein Zeilenvorschubzeichen |
| @@ -432,10 +422,10 @@ Bis jetzt kennen Sie die Grundbefehle, um Text in Emacs einzugeben und | |||
| 432 | Fehler zu korrigieren -- fast analog zu den Bewegungsbefehlen ist es | 422 | Fehler zu korrigieren -- fast analog zu den Bewegungsbefehlen ist es |
| 433 | möglich, ganze Wörter, Sätze oder Zeilen zu löschen: | 423 | möglich, ganze Wörter, Sätze oder Zeilen zu löschen: |
| 434 | 424 | ||
| 435 | <Delete> lösche ein Zeichen vor dem Cursor | 425 | <DEL> lösche ein Zeichen vor dem Cursor |
| 436 | C-d lösche das Zeichen unter dem Cursor | 426 | C-d lösche das Zeichen unter dem Cursor |
| 437 | 427 | ||
| 438 | M-<Delete> lösche bis zum (nächsten) Wortanfang unmittelbar | 428 | M-<DEL> lösche bis zum (nächsten) Wortanfang unmittelbar |
| 439 | vor dem Cursor | 429 | vor dem Cursor |
| 440 | M-d lösche bis zum (nächsten) Wortende nach | 430 | M-d lösche bis zum (nächsten) Wortende nach |
| 441 | (bzw. unter) dem Cursor | 431 | (bzw. unter) dem Cursor |
| @@ -445,42 +435,40 @@ möglich, ganze Wörter, Sätze oder Zeilen zu löschen: | |||
| 445 | M-k lösche bis zum nächsten Satzende nach | 435 | M-k lösche bis zum nächsten Satzende nach |
| 446 | (bzw. unter) dem Cursor | 436 | (bzw. unter) dem Cursor |
| 447 | 437 | ||
| 448 | Beachten Sie bitte, dass <Delete> je nach Tastaturbelegung die Del- | ||
| 449 | (Entf-) oder die Backspace- (Rückwärtspfeil-) Taste sein kann. | ||
| 450 | |||
| 451 | Eine andere, einheitliche Methode zum Löschen von Text ist das | 438 | Eine andere, einheitliche Methode zum Löschen von Text ist das |
| 452 | Befehlspaar C-@ (oder C-SPC) und C-w. Gehen sie zum Anfang des zu | 439 | Befehlspaar C-@ (oder C-SPC) und C-w. Gehen sie zum Anfang des zu |
| 453 | löschenden Textes und drücken Sie C-@ oder C-SPC. Gehen Sie dann zum | 440 | löschenden Textes und drücken Sie C-@ oder C-SPC. Gehen Sie dann zum |
| 454 | Ende des zu löschenden Textes und drücken Sie C-w, um ihn zu | 441 | Ende des zu löschenden Textes und drücken Sie C-w, um ihn zu |
| 455 | entfernen. | 442 | entfernen. |
| 456 | 443 | ||
| 457 | >> Bewegen Sie den Cursor zum Buchstaben `E' am Anfang des letzten | 444 | >> Bewegen Sie den Cursor zum Buchstaben »E« am Anfang des letzten |
| 458 | Absatzes. | 445 | Absatzes. |
| 459 | >> Drücken Sie C-SPC. Emacs sollte die Meldung `Mark set' am unteren | 446 | >> Drücken Sie C-SPC. Emacs sollte die Meldung »Mark set« am unteren |
| 460 | Bildschirmrand zeigen. | 447 | Bildschirmrand zeigen. |
| 461 | >> Bewegen Sie den Cursor zum Buchstaben `A' in der zweiten Zeile des | 448 | >> Bewegen Sie den Cursor zum Buchstaben »A« in der zweiten Zeile des |
| 462 | letzten Absatzes. | 449 | letzten Absatzes. |
| 463 | >> Geben Sie C-w ein. Der ganze Text, beginnend mit dem `E' und | 450 | >> Geben Sie C-w ein. Der ganze Text, beginnend mit dem »E« und |
| 464 | endend vor dem `A', ist nun gelöscht. | 451 | endend vor dem »A«, ist nun gelöscht. |
| 465 | 452 | ||
| 466 | Löschen Sie mehr als ein Zeichen auf einmal, speichert Emacs den | 453 | Löschen Sie mehr als ein Zeichen auf einmal, speichert Emacs den |
| 467 | gelöschten Text, damit Sie ihn bei Bedarf wieder zurückholen können. | 454 | gelöschten Text, damit Sie ihn bei Bedarf wieder zurückholen können. |
| 468 | Einfügen von bereits gelöschtem Text wird im englischen Dokumentation | 455 | Einfügen von bereits gelöschtem Text wird im englischen Dokumentation |
| 469 | von Emacs als `yanking' (wörtlich `herausreißen') bezeichnet. Sie | 456 | von Emacs als »yanking« (wörtlich »herausreißen«) bezeichnet. Sie |
| 470 | können den gelöschten Text an einer beliebigen Stelle wieder | 457 | können den gelöschten Text an einer beliebigen Stelle wieder |
| 471 | einzufügen. Solange Sie nichts neues löschen, steht Ihnen dieser | 458 | einzufügen. Solange Sie nichts neues löschen, steht Ihnen dieser |
| 472 | gelöschte Textteil immer wieder zu Verfügung. Der Befehl dazu ist C-y | 459 | gelöschte Textteil immer wieder zu Verfügung. Der Befehl dazu ist C-y |
| 473 | (das Ypsilon steht für `yank'). | 460 | (das Ypsilon steht für »yank«). |
| 474 | 461 | ||
| 475 | Emacs unterscheidet zwei Klassen von Löschbefehlen (was man im | 462 | Emacs unterscheidet zwei Klassen von Löschbefehlen (was man im |
| 476 | Deutschen leider nicht gut wiedergeben kann): `killing' (umbringen) | 463 | Deutschen leider nicht gut wiedergeben kann): »killing« (umbringen) |
| 477 | und `deleting' (löschen). Wenn man sich vorstellt, dass `yanking' den | 464 | und »deleting« (löschen). Wenn man sich vorstellt, dass »yanking« den |
| 478 | Begriff `von den Toten erwecken' darstellt, dann hat man ungefähr eine | 465 | Begriff »von den Toten erwecken« darstellt, dann hat man ungefähr eine |
| 479 | Vorstellung von der Metapher -- Von einem `kill'-Befehl gelöschter | 466 | Vorstellung von der Metapher -- Von einem »kill«-Befehl gelöschter |
| 480 | Text wird gespeichert und kann bei Bedarf mit C-y zurückgeholt | 467 | Text wird gespeichert und kann bei Bedarf mit C-y zurückgeholt werden. |
| 481 | werden. Von einem `delete'-Befehl entfernter Text (in der Regel | 468 | Von einem »delete«-Befehl entfernter Text (in der Regel einzelne |
| 482 | einzelne Zeichen, leere Zeilen und Zwischenräume) wird nicht extra | 469 | Zeichen, leere Zeilen und Zwischenräume) wird nicht extra gespeichert |
| 483 | gespeichert und kann daher auch nicht zurückgeholt werden. | 470 | und kann daher auch nicht zurückgeholt werden. Allerdings besteht die |
| 471 | Möglichkeit zum »Undo«, siehe weiter unten. | ||
| 484 | 472 | ||
| 485 | >> Bringen Sie den Cursor an den Anfang einer nicht-leeren Zeile und | 473 | >> Bringen Sie den Cursor an den Anfang einer nicht-leeren Zeile und |
| 486 | geben Sie C-k ein, um die Zeile zu löschen. | 474 | geben Sie C-k ein, um die Zeile zu löschen. |
| @@ -495,12 +483,16 @@ behandelt: es löscht die angegebene Anzahl von Zeilen UND die | |||
| 495 | Zeilenvorschübe: C-u 2 C-k löscht zwei Zeilen komplett; zweimal C-k | 483 | Zeilenvorschübe: C-u 2 C-k löscht zwei Zeilen komplett; zweimal C-k |
| 496 | löscht dagegen nur eine Zeile. | 484 | löscht dagegen nur eine Zeile. |
| 497 | 485 | ||
| 498 | Wie schon erwähnt, bringt C-y den zuletzt gelöschten (`gekillten') | 486 | Wie schon erwähnt, bringt C-y den zuletzt gelöschten (»gekillten«) |
| 499 | Text zurück -- man kann diesen Text einfügen, wo man will: an der | 487 | Text zurück -- man kann diesen Text einfügen, wo man will: an der |
| 500 | ursprünglichen Stelle, an einer anderen Stelle, oder sogar in einer | 488 | ursprünglichen Stelle, an einer anderen Stelle, oder sogar in einer |
| 501 | anderen Datei. Mehrmaliges Ausführen von C-y fügt den Text mehrmals | 489 | anderen Datei. Mehrmaliges Ausführen von C-y fügt den Text mehrmals |
| 502 | ein. | 490 | ein. |
| 503 | 491 | ||
| 492 | In anderen Editoren wird »kill« und »yank« oft als »cut« | ||
| 493 | (ausschneiden) und »paste« (einfügen) bezeichnet. Näheres dazu findet | ||
| 494 | sich im Abschnitt »Glossary« des Emacs-Handbuchs. | ||
| 495 | |||
| 504 | >> Probieren Sie jetzt C-y, um diesen Effekt zu sehen. | 496 | >> Probieren Sie jetzt C-y, um diesen Effekt zu sehen. |
| 505 | 497 | ||
| 506 | Führen Sie C-k mehrmals hintereinander aus, dann wird der so | 498 | Führen Sie C-k mehrmals hintereinander aus, dann wird der so |
| @@ -509,14 +501,14 @@ Text zurück. | |||
| 509 | 501 | ||
| 510 | >> Drücken Sie mehrmals C-k. | 502 | >> Drücken Sie mehrmals C-k. |
| 511 | 503 | ||
| 512 | Holen Sie jetzt den Text `von den Toten' zurück: | 504 | Holen Sie jetzt den Text »von den Toten« zurück: |
| 513 | 505 | ||
| 514 | >> Drücken Sie C-y. Bewegen Sie dann den Cursor ein paar Zeilen nach | 506 | >> Drücken Sie C-y. Bewegen Sie dann den Cursor ein paar Zeilen nach |
| 515 | unten und drücken Sie C-y erneut. Der eben eingefügte Text wird | 507 | unten und drücken Sie C-y erneut. Der eben eingefügte Text wird |
| 516 | noch einmal an anderer Stelle kopiert. | 508 | noch einmal an anderer Stelle kopiert. |
| 517 | 509 | ||
| 518 | Wie können Sie gelöschten Text wieder einfügen, wenn Sie in der | 510 | Wie können Sie gelöschten Text wieder einfügen, wenn Sie in der |
| 519 | Zwischenzeit noch etwas anderes `gekillt' haben? C-y würde das | 511 | Zwischenzeit noch etwas anderes »gekillt« haben? C-y würde das |
| 520 | zuletzt gelöschte Textstück zurückholen, was aber nicht das gewünschte | 512 | zuletzt gelöschte Textstück zurückholen, was aber nicht das gewünschte |
| 521 | ist. Verwenden Sie nun M-y (unmittelbar nach der erstmaligen | 513 | ist. Verwenden Sie nun M-y (unmittelbar nach der erstmaligen |
| 522 | Ausführung von C-y), um den gerade mit C-y eingefügten Textteil durch | 514 | Ausführung von C-y), um den gerade mit C-y eingefügten Textteil durch |
| @@ -546,7 +538,7 @@ durchgesehen. | |||
| 546 | Die meisten graphischen Oberflächen bieten auch die Möglichkeit, mit | 538 | Die meisten graphischen Oberflächen bieten auch die Möglichkeit, mit |
| 547 | der linken Maustaste einen Textteil zu markieren (er erscheint dann | 539 | der linken Maustaste einen Textteil zu markieren (er erscheint dann |
| 548 | normalerweise grau unterlegt). Der Befehl C-w löscht diesen | 540 | normalerweise grau unterlegt). Der Befehl C-w löscht diesen |
| 549 | markierten Textteil (in Emacs auch `Region' genannt) und fügt ihn in | 541 | markierten Textteil (in Emacs auch »Region« genannt) und fügt ihn in |
| 550 | den Löschring ein. | 542 | den Löschring ein. |
| 551 | 543 | ||
| 552 | Dasselbe geht auch ohne Maus: Bewegen Sie den Cursor zum Beginn des zu | 544 | Dasselbe geht auch ohne Maus: Bewegen Sie den Cursor zum Beginn des zu |
| @@ -562,54 +554,48 @@ man Befehle mit langen Namen ausführen kann). | |||
| 562 | ------ | 554 | ------ |
| 563 | 555 | ||
| 564 | Wenn Sie etwas am Text geändert haben und nachträglich bemerken, dass | 556 | Wenn Sie etwas am Text geändert haben und nachträglich bemerken, dass |
| 565 | das ein Fehler war, so können Sie den Fehler mit dem Befehl C-x u | 557 | das ein Fehler war, so können Sie den Fehler mit dem Befehl C-/ |
| 566 | ungeschehen machen (`undo'). | 558 | ungeschehen machen (»undo«). |
| 567 | 559 | ||
| 568 | Normalerweise macht C-x u das Verhalten von einem Befehl ungeschehen; | 560 | Normalerweise macht C-/ das Verhalten von einem Befehl ungeschehen; |
| 569 | führen Sie C-x u mehrmals hintereinander aus, werden die jeweiligen | 561 | führen Sie C-/ mehrmals hintereinander aus, werden die jeweiligen |
| 570 | vorigen Befehle widerrufen. | 562 | vorigen Befehle widerrufen. |
| 571 | 563 | ||
| 572 | Es gibt jedoch zwei Ausnahmen: Befehle, die den Text nicht ändern, | 564 | Es gibt jedoch zwei Ausnahmen: Befehle, die den Text nicht ändern, |
| 573 | werden nicht gezählt (z.B. Cursorbewegungen und Blättern im Text). | 565 | werden nicht gezählt (z.B. Cursorbewegungen und Blättern im Text). |
| 574 | Und Befehle, die sich selbst einfügen (`self-inserting': Drücken Sie | 566 | Und Befehle, die sich selbst einfügen (»self-inserting«: Drücken Sie |
| 575 | zum Beispiel die `u'-Taste, dann wird der Buchstabe u eingefügt) | 567 | zum Beispiel die »u«-Taste, dann wird der Buchstabe u eingefügt) |
| 576 | werden in Gruppen von bis zu 20 Zeichen wiederhergestellt, um die | 568 | werden in Gruppen von bis zu 20 Zeichen wiederhergestellt, um die |
| 577 | Anzahl der notwendigen C-x u-Befehle zu reduzieren. | 569 | Anzahl der notwendigen C-/-Befehle zu reduzieren. |
| 578 | 570 | ||
| 579 | >> Löschen Sie diese Zeilen mit C-k und drücken Sie anschließend | 571 | >> Löschen Sie diese Zeilen mit C-k und drücken Sie anschließend |
| 580 | mehrmals C-x u, und die Zeilen erscheinen wieder. | 572 | mehrmals C-/, und die Zeilen erscheinen wieder. |
| 581 | 573 | ||
| 582 | C-_ ist ein alternativer Undo-Befehl; er arbeitet genauso wie C-x u, | 574 | Alternative Tastenkombinationen für C-/ sind C-_ und C-x u. Ein |
| 583 | ist jedoch einfacher zu tippen, wenn Sie den Befehl mehrmals | 575 | numerisches Argument für C-/, C-_ oder C-x u wird als |
| 584 | hintereinander ausführen möchten. Der Nachteil von C-_ ist, dass bei | ||
| 585 | manchen Tastaturen nicht sofort einsichtig ist, wie man das eingibt. | ||
| 586 | |||
| 587 | Eine weitere Eingabemöglichkeit bei vielen Terminals ist C-/. | ||
| 588 | |||
| 589 | Ein numerisches Argument für C-_, C-x u oder C-/ wird als | ||
| 590 | Wiederholungszähler interpretiert. | 576 | Wiederholungszähler interpretiert. |
| 591 | 577 | ||
| 592 | Der Unterschied zwischen der Undo-Funktion und dem oben erklärten C-y | 578 | Der Unterschied zwischen der Undo-Funktion und dem oben erklärten C-y |
| 593 | ist, dass erstere gelöschten Text an exakt der gleichen Position wie | 579 | ist, dass erstere gelöschten Text an exakt der gleichen Position wie |
| 594 | vorher wiederherstellt, wohingegen C-y den gelöschten Text an der | 580 | vorher wiederherstellt, wohingegen C-y den gelöschten Text an der |
| 595 | momentanen Cursorposition einfügt. Im übrigen kann auch `gekillter' | 581 | momentanen Cursorposition einfügt. Im übrigen kann auch »gekillter« |
| 596 | Text wieder hergestellt werden; der Unterschied zwischen `killing' und | 582 | Text wieder hergestellt werden; der Unterschied zwischen »killing« und |
| 597 | `yanking' betrifft nur C-y, aber nicht die Undo-Funktion. | 583 | »yanking« betrifft nur C-y, aber nicht die Undo-Funktion. |
| 598 | 584 | ||
| 599 | 585 | ||
| 600 | * DATEIEN | 586 | * DATEIEN |
| 601 | --------- | 587 | --------- |
| 602 | 588 | ||
| 603 | Um editierten Text zu sichern, muss man ihn in einer Datei (`file') | 589 | Um editierten Text zu sichern, muss man ihn in einer Datei (»file«) |
| 604 | speichern (`save'). Wird Emacs beendet, ohne dass man vorher den Text | 590 | speichern (»save«). Wird Emacs beendet, ohne dass man vorher den Text |
| 605 | gespeichert hat, dann ist der Text verloren. | 591 | gespeichert hat, dann ist der Text verloren. |
| 606 | 592 | ||
| 607 | Will man andererseits bereits gesicherten Text mit Emacs editieren, so | 593 | Will man andererseits bereits gesicherten Text mit Emacs editieren, so |
| 608 | muss die entsprechende Datei in Emacs geladen werden (im Englischen | 594 | muss die entsprechende Datei in Emacs geladen werden (im Englischen |
| 609 | wird das als `finding' (finden) bzw. als `visiting' (besuchen) | 595 | wird das als »finding« (finden) bzw. als »visiting« (besuchen) |
| 610 | bezeichnet). | 596 | bezeichnet). |
| 611 | 597 | ||
| 612 | Eine Datei `finden' bedeutet, dass man den Inhalt dieser Datei mit | 598 | Eine Datei »finden« bedeutet, dass man den Inhalt dieser Datei mit |
| 613 | Emacs bearbeitet -- es ist fast so, als ob man die Datei selbst | 599 | Emacs bearbeitet -- es ist fast so, als ob man die Datei selbst |
| 614 | editiert. Jedoch werden Änderungen an dieser Datei erst dann | 600 | editiert. Jedoch werden Änderungen an dieser Datei erst dann |
| 615 | dauerhaft, wenn man sie speichert; auf diese Weise wird vermieden, | 601 | dauerhaft, wenn man sie speichert; auf diese Weise wird vermieden, |
| @@ -621,9 +607,9 @@ die Änderungen ein Fehler sind. | |||
| 621 | Wenn Sie die untere Bildschirmkante genauer betrachten, dann werden | 607 | Wenn Sie die untere Bildschirmkante genauer betrachten, dann werden |
| 622 | Sie eine Zeile finden, die mit einem oder mehreren Bindestrichen | 608 | Sie eine Zeile finden, die mit einem oder mehreren Bindestrichen |
| 623 | beginnt und endet; sie enthält unter anderem die Zeichenkette | 609 | beginnt und endet; sie enthält unter anderem die Zeichenkette |
| 624 | `TUTORIAL.de'. An dieser Position befindet sich immer der Name der | 610 | »TUTORIAL.de«. An dieser Position befindet sich immer der Name der |
| 625 | Datei, die Sie momentan bearbeiten (`visit'). Gerade in diesem | 611 | Datei, die Sie momentan bearbeiten (»visit«). Gerade in diesem |
| 626 | Augenblick bearbeiten Sie eine Datei mit dem Namen `TUTORIAL.de' | 612 | Augenblick bearbeiten Sie eine Datei mit dem Namen »TUTORIAL.de« |
| 627 | (genauer gesagt, Emacs hat eine identische Kopie geladen). | 613 | (genauer gesagt, Emacs hat eine identische Kopie geladen). |
| 628 | 614 | ||
| 629 | Die Befehle für das Laden und Speichern von Dateien bestehen aus zwei | 615 | Die Befehle für das Laden und Speichern von Dateien bestehen aus zwei |
| @@ -634,14 +620,14 @@ drei oder vier Zeichen lang -- Sie haben bereits C-x u und C-x 1 | |||
| 634 | kennengelernt. | 620 | kennengelernt. |
| 635 | 621 | ||
| 636 | Um eine Datei in Emacs laden zu können, muss man dem Lade-Befehl den | 622 | Um eine Datei in Emacs laden zu können, muss man dem Lade-Befehl den |
| 637 | Namen der Datei mitteilen. Der Befehl `liest ein Argument vom | 623 | Namen der Datei mitteilen. Der Befehl »liest ein Argument« (in diesem |
| 638 | Terminal' (in diesem Fall ist das der Name der Datei). Nachdem Sie | 624 | Fall ist das der Name der Datei). Nachdem Sie |
| 639 | 625 | ||
| 640 | C-x C-f (lade Datei) | 626 | C-x C-f (lade Datei) |
| 641 | 627 | ||
| 642 | eingegeben haben, werden Sie von Emacs nach dem Dateinamen gefragt. | 628 | eingegeben haben, werden Sie von Emacs nach dem Dateinamen gefragt. |
| 643 | Die Zeichen, die Sie eingeben, werden in der untersten Bildschirmzeile | 629 | Die Zeichen, die Sie eingeben, werden in der untersten Bildschirmzeile |
| 644 | dargestellt, dem sogenannten Minipuffer (`minibuffer'). Sie können | 630 | dargestellt, dem sogenannten Minipuffer (»minibuffer«). Sie können |
| 645 | ganz normale Emacs-Editierfunktionen verwenden, um den Dateinamen zu | 631 | ganz normale Emacs-Editierfunktionen verwenden, um den Dateinamen zu |
| 646 | ändern. | 632 | ändern. |
| 647 | 633 | ||
| @@ -653,39 +639,42 @@ Minipuffer benutzen) mit C-g abbrechen. | |||
| 653 | ab (Sie haben also keine Datei geladen). | 639 | ab (Sie haben also keine Datei geladen). |
| 654 | 640 | ||
| 655 | Wenn Sie den Dateinamen fertig eingegeben haben, drücken Sie <Return>, | 641 | Wenn Sie den Dateinamen fertig eingegeben haben, drücken Sie <Return>, |
| 656 | um den Befehl abzuschließen; C-x C-f wird ausgeführt und lädt die von | 642 | um den Befehl abzuschließen. Der Minipuffer verschwindet wieder, und |
| 657 | Ihnen ausgesuchte Datei. Der Minipuffer verschwindet wieder, sobald | 643 | C-x C-f lädt die von Ihnen ausgesuchte Datei. |
| 658 | C-x C-f beendet ist. | ||
| 659 | 644 | ||
| 660 | Ein paar Augenblicke später erscheint der Dateiinhalt auf dem | 645 | Der Dateiinhalt erscheint jetzt auf dem Bildschirm, und Sie können den |
| 661 | Bildschirm, und Sie können den Text editieren. Wenn Sie Ihre | 646 | Text editieren. Wenn Sie Ihre Änderungen permanent speichern wollen, |
| 662 | Änderungen permanent speichern wollen, dann drücken Sie | 647 | dann drücken Sie |
| 663 | 648 | ||
| 664 | C-x C-s (sichere Datei) | 649 | C-x C-s (sichere Datei) |
| 665 | 650 | ||
| 666 | und Emacs kopiert den Text in die Datei. Beim ersten Mal benennt | 651 | und Emacs kopiert den Text in die Datei. Beim ersten Mal benennt |
| 667 | Emacs die Originaldatei um, damit sie nicht verloren ist. Der neue | 652 | Emacs die Originaldatei um, damit sie nicht verloren ist. Der neue |
| 668 | Name besteht aus dem Originalnamen plus einer angehängten Tilde `~' | 653 | Name besteht aus dem Originalnamen plus einer angehängten Tilde »~« |
| 669 | [unter einigen Betriebssystemen wird statt dessen die | 654 | [unter einigen Betriebssystemen wird statt dessen die |
| 670 | Namenserweiterung durch `.bak' ersetzt]. | 655 | Namenserweiterung durch ».bak« ersetzt]. |
| 671 | 656 | ||
| 672 | Emacs schreibt den Namen der gesicherten Datei in die unterste Zeile, | 657 | Emacs schreibt den Namen der gesicherten Datei in die unterste Zeile, |
| 673 | sobald C-x C-s fertig ausgeführt ist. Sie sollten den editierten Text | 658 | sobald C-x C-s fertig ausgeführt ist. Sie sollten den editierten Text |
| 674 | oft speichern, damit nicht allzuviel bei einem etwaigen Systemabsturz | 659 | oft speichern, damit nicht allzuviel bei einem etwaigen Systemabsturz |
| 675 | verloren geht. | 660 | verloren geht (siehe auch den Abschnitt »AUTOMATISCHES SPEICHERN« |
| 661 | weiter unten). | ||
| 662 | |||
| 663 | >> Geben Sie | ||
| 664 | |||
| 665 | C-x C-s TUTORIAL.de <Return> | ||
| 676 | 666 | ||
| 677 | >> Geben Sie C-x C-s ein, um Ihre Kopie der Einführung zu sichern. | 667 | ein, um Ihre Kopie der Einführung zu sichern. Die Ausgabe am |
| 678 | Die Ausgabe am unteren Bildschirmrand sollte `Wrote ...TUTORIAL.de' | 668 | unteren Bildschirmrand sollte »Wrote ...TUTORIAL.de« sein. |
| 679 | sein. | ||
| 680 | 669 | ||
| 681 | [Manche Terminals werden durch C-s angehalten und müssen durch C-q | 670 | [Manche Terminals werden durch C-s angehalten und müssen durch C-q |
| 682 | wieder `entsperrt' werden. Eine erste Abhilfe zur Umschiffung dieses | 671 | wieder »entsperrt« werden. Eine erste Abhilfe zur Umschiffung dieses |
| 683 | C-s-Problems schafft die Befehlsfolge `M-x save-buffer', welche exakt | 672 | C-s-Problems schafft die Befehlsfolge »M-x save-buffer«, welche exakt |
| 684 | das gleiche wie C-x C-s bewirkt. Mehr Hilfe dazu finden Sie im | 673 | das gleiche wie C-x C-s bewirkt. Mehr Hilfe dazu finden Sie im |
| 685 | Abschnitt `Spontaneous Entry to Incremental Search' im | 674 | Abschnitt »Spontaneous Entry to Incremental Search« im |
| 686 | Emacs-Handbuch.] | 675 | Emacs-Handbuch.] |
| 687 | 676 | ||
| 688 | Sie können eine existierende Datei anschauen (`view') oder editieren. | 677 | Sie können eine existierende Datei anschauen (»view«) oder editieren. |
| 689 | Sie können aber auch eine Datei laden, die noch gar nicht existiert, | 678 | Sie können aber auch eine Datei laden, die noch gar nicht existiert, |
| 690 | um so eine neue Datei zu erzeugen: Sie öffnen dazu die | 679 | um so eine neue Datei zu erzeugen: Sie öffnen dazu die |
| 691 | (nicht-existente) Datei, die natürlich leer ist, und beginnen dann | 680 | (nicht-existente) Datei, die natürlich leer ist, und beginnen dann |
| @@ -703,18 +692,8 @@ laden, dann bleibt die erste in Emacs. Sie können zur ersten | |||
| 703 | zurückschalten, indem Sie noch einmal C-x C-f eingeben. Auf diese | 692 | zurückschalten, indem Sie noch einmal C-x C-f eingeben. Auf diese |
| 704 | Weise lassen sich eine ganze Reihe von Dateien laden und bearbeiten. | 693 | Weise lassen sich eine ganze Reihe von Dateien laden und bearbeiten. |
| 705 | 694 | ||
| 706 | >> Erzeugen Sie eine Datei mit dem Namen `foo', indem Sie | ||
| 707 | |||
| 708 | C-x C-f foo <Return> | ||
| 709 | |||
| 710 | eingeben. Tippen Sie etwas Text ein, editieren Sie ihn und | ||
| 711 | speichern Sie ihn abschließend mit C-x C-s. Kehren Sie | ||
| 712 | anschließend zu dieser Einführung zurück mit | ||
| 713 | |||
| 714 | C-x C-f TUTORIAL.de <Return> | ||
| 715 | |||
| 716 | Emacs speichert jeden Text, der aus einer Datei in Emacs geladen wird, | 695 | Emacs speichert jeden Text, der aus einer Datei in Emacs geladen wird, |
| 717 | in einem `Puffer'-Objekt. Um eine Liste der momentan existierenden | 696 | in einem »Puffer«-Objekt. Um eine Liste der momentan existierenden |
| 718 | Puffer zu sehen, geben Sie | 697 | Puffer zu sehen, geben Sie |
| 719 | 698 | ||
| 720 | C-x C-b (liste Puffer auf) | 699 | C-x C-b (liste Puffer auf) |
| @@ -726,7 +705,7 @@ ein. | |||
| 726 | Beachten Sie, dass jeder Puffer einen Namen hat und manche auch mit | 705 | Beachten Sie, dass jeder Puffer einen Namen hat und manche auch mit |
| 727 | dem Namen einer Datei assoziiert sind, dessen Inhalt sie enthalten. | 706 | dem Namen einer Datei assoziiert sind, dessen Inhalt sie enthalten. |
| 728 | Manche Puffer aber haben keinen zugehörige Datei, z.B. der mit dem | 707 | Manche Puffer aber haben keinen zugehörige Datei, z.B. der mit dem |
| 729 | Namen `*Buffer List*'. Er wurde von dem Befehl C-x C-b erzeugt, um | 708 | Namen »*Buffer List*«. Er wurde von dem Befehl C-x C-b erzeugt, um |
| 730 | die Pufferliste darzustellen. JEDER Text, den Sie innerhalb Emacs in | 709 | die Pufferliste darzustellen. JEDER Text, den Sie innerhalb Emacs in |
| 731 | einem Fenster sehen, ist immer ein Ausschnitt eines Puffers. | 710 | einem Fenster sehen, ist immer ein Ausschnitt eines Puffers. |
| 732 | 711 | ||
| @@ -734,28 +713,39 @@ einem Fenster sehen, ist immer ein Ausschnitt eines Puffers. | |||
| 734 | zu lassen. | 713 | zu lassen. |
| 735 | 714 | ||
| 736 | Wieviele Puffer auch in Emacs geladen sind, nur ein einziger ist der | 715 | Wieviele Puffer auch in Emacs geladen sind, nur ein einziger ist der |
| 737 | `momentane' Puffer, nämlich derjenige, den Sie gerade editieren. Will | 716 | »momentane« Puffer, nämlich derjenige, den Sie gerade editieren. Will |
| 738 | man einen anderen Puffer editieren, muss man zuerst zu diesem Puffer | 717 | man einen anderen Puffer editieren, muss man zuerst zu diesem Puffer |
| 739 | wechseln (`switch'). Wie schon weiter oben erklärt, kann man mittels | 718 | wechseln (»switch«). Wie schon weiter oben erklärt, kann man mittels |
| 740 | C-x C-f zu einem Puffer wechseln, der zu einer Datei gehört. Emacs | 719 | C-x C-f zu einem Puffer wechseln, der zu einer Datei gehört. Emacs |
| 741 | hat jedoch einen einfacheren Befehl, C-x b, um einen beliebigen Puffer | 720 | hat jedoch einen einfacheren Befehl, C-x b, um einen beliebigen Puffer |
| 742 | namentlich auszuwählen. | 721 | namentlich auszuwählen. |
| 743 | 722 | ||
| 744 | >> Geben Sie C-x b foo <Return> ein, um zurück zum Puffer `foo' zu | 723 | >> Geben Sie |
| 745 | schalten, der den Text der Datei `foo' enthält. Anschließend geben | 724 | |
| 746 | Sie C-x b TUTORIAL.de <RETURN> ein, um wieder zu dieser Einführung | 725 | C-x C-f foo <Return> |
| 747 | zu gelangen. | 726 | |
| 727 | ein, um eine Datei mit dem Namen »foo« zu erzeugen. Mittels | ||
| 728 | |||
| 729 | C-x b TUTORIAL.de <RETURN> | ||
| 730 | |||
| 731 | gelangen Sie wieder zu dieser Einführung. | ||
| 748 | 732 | ||
| 749 | In der Regel ist der Puffername identisch zu einem Dateinamen (ohne | 733 | In der Regel ist der Puffername identisch zu einem Dateinamen (ohne |
| 750 | den Verzeichnispräfix), jedoch nicht immer. Die von C-x C-b erzeugte | 734 | den Verzeichnispräfix), jedoch nicht immer. Die von C-x C-b erzeugte |
| 751 | Pufferliste zeigt stets die Namen aller Puffer. | 735 | Pufferliste zeigt stets die Namen aller Puffer mit den |
| 736 | korrespondierenden Dateinamen. | ||
| 752 | 737 | ||
| 753 | JEDER Text in Emacs ist Teil eines Puffers, aber nicht jeder Puffer | 738 | JEDER Text in Emacs ist Teil eines Puffers, aber nicht jeder Puffer |
| 754 | entspricht einer Datei. So ist z.B. der Puffer `*Buffer List*' mit | 739 | entspricht einer Datei. So ist z.B. der Puffer »*Buffer List*« mit |
| 755 | keiner Datei assoziiert -- er wurde direkt von dem Befehl C-x C-b | 740 | keiner Datei assoziiert -- er wurde direkt von dem Befehl C-x C-b |
| 756 | erzeugt. Genauso hat der Puffer `*Messages*' keine Entsprechung als | 741 | erzeugt. Auch dieser »TUTORIAL.de«-Puffer war anfangs keiner Datei |
| 757 | Datei; er enthält alle Mitteilungen, die in der untersten Zeile | 742 | zugeordnet, jetzt allerdings schon, denn Sie haben im letzten |
| 758 | während des Arbeitens mit Emacs erscheinen. | 743 | Abschnitt den Befehl C-x C-s eingegeben und so den Pufferinhalt als |
| 744 | Datei gespeichert. | ||
| 745 | |||
| 746 | Der Puffer »*Messages*« hat ebenfalls keine Entsprechung als Datei; er | ||
| 747 | enthält alle Mitteilungen, die in der untersten Zeile während des | ||
| 748 | Arbeitens mit Emacs erscheinen. | ||
| 759 | 749 | ||
| 760 | >> Geben Sie C-x b *Messages* <Return> ein, um sich den | 750 | >> Geben Sie C-x b *Messages* <Return> ein, um sich den |
| 761 | Mitteilungspuffer anzuschauen. | 751 | Mitteilungspuffer anzuschauen. |
| @@ -778,7 +768,7 @@ Sie ihn speichern wollen. | |||
| 778 | 768 | ||
| 779 | >> Fügen Sie eine Textzeile ein und drücken Sie dann C-x s. | 769 | >> Fügen Sie eine Textzeile ein und drücken Sie dann C-x s. |
| 780 | Emacs fragt Sie jetzt, ob Sie einen Puffer mit dem Namen | 770 | Emacs fragt Sie jetzt, ob Sie einen Puffer mit dem Namen |
| 781 | TUTORIAL.de speichern wollen. Bejahen Sie, indem Sie `y' drücken. | 771 | TUTORIAL.de speichern wollen. Bejahen Sie, indem Sie »y« drücken. |
| 782 | 772 | ||
| 783 | [Anmerkung: Sie verändern nicht die Originaldatei, sondern eine | 773 | [Anmerkung: Sie verändern nicht die Originaldatei, sondern eine |
| 784 | persönliche Kopie.] | 774 | persönliche Kopie.] |
| @@ -793,7 +783,7 @@ sie trotzdem alle benutzen zu können, gibt es zwei Erweiterungen: | |||
| 793 | C-x Zeichenerweiterung. Gefolgt von einem Zeichen. | 783 | C-x Zeichenerweiterung. Gefolgt von einem Zeichen. |
| 794 | M-x Befehlserweiterung. Gefolgt von einem (langen) Namen. | 784 | M-x Befehlserweiterung. Gefolgt von einem (langen) Namen. |
| 795 | 785 | ||
| 796 | [Das `x' steht für das englische Wort `extension'.] Diese beiden | 786 | [Das »x« steht für das englische Wort »extension«.] Diese beiden |
| 797 | Befehle sind prinzipiell sehr nützlich, werden aber weniger oft | 787 | Befehle sind prinzipiell sehr nützlich, werden aber weniger oft |
| 798 | benötigt als die bisher vorgestellten. Sie haben bereits mehrere | 788 | benötigt als die bisher vorgestellten. Sie haben bereits mehrere |
| 799 | Befehle aus der ersten Kategorie kennengelernt; unter anderem C-x C-f, | 789 | Befehle aus der ersten Kategorie kennengelernt; unter anderem C-x C-f, |
| @@ -804,31 +794,25 @@ vielleicht vergessen haben, Daten oder Text zu sichern -- Emacs fragt | |||
| 804 | bei jedem geändertem Puffer (bzw. Datei), ob er gespeichert werden | 794 | bei jedem geändertem Puffer (bzw. Datei), ob er gespeichert werden |
| 805 | soll. | 795 | soll. |
| 806 | 796 | ||
| 807 | C-z ist der Befehl um Emacs *zeitweise* zu verlassen; es ist also | 797 | Unter graphischen Oberflächen wie X bewirkt C-z in der Regel, dass |
| 808 | möglich, später an der unterbrochenen Stelle nahtlos weiterzuarbeiten. | 798 | Emacs ikonofiziert wird, also als Ikone (»Icon«) darauf wartet, mit |
| 809 | 799 | einem Mausklick bei Bedarf wieder vergrößert zu werden. Auf einem | |
| 810 | Auf den meisten Systemen wie Linux oder FreeBSD wird Emacs | 800 | Textterminal dagegen wird Emacs »suspendiert«, wenn Sie C-z drücken, |
| 811 | `suspendiert', wenn Sie C-z drücken, d.h., Sie kehren zurück zur | 801 | d.h., Sie kehren zurück zur Eingabezeile des Terminals, ohne Emacs zu |
| 812 | Eingabezeile des Betriebssystems, ohne Emacs zu beenden. In der Regel | 802 | beenden, und können beliebige andere Befehle ausführen. In der Regel |
| 813 | können Sie dann mittels des Befehls `fg' bzw. `%emacs' wieder zu Emacs | 803 | können Sie später mittels des Befehls »fg« bzw. »%emacs« wieder zu |
| 814 | umschalten. Unter graphischen Oberflächen wie X11 bewirkt C-z in der | 804 | Emacs umschalten. |
| 815 | Regel, dass Emacs ikonofiziert wird, also als Ikone (`Icon') darauf | ||
| 816 | wartet, mit einem Mausklick bei Bedarf wieder vergrößert zu werden. | ||
| 817 | 805 | ||
| 818 | Bei Betriebssystemen bzw. Shells, die Suspension von Programmen nicht | 806 | Bei Betriebssystemen bzw. Shells, die Suspension von Programmen nicht |
| 819 | implementiert haben (z.B. MS-DOS), startet C-z einen | 807 | implementiert haben (z.B. MS-DOS), startet C-z einen |
| 820 | System-Befehlsinterpreter innerhalb von Emacs (`subshell'). | 808 | System-Befehlsinterpreter innerhalb von Emacs (»subshell«). |
| 821 | Normalerweise müssen Sie dann `exit' in die Befehlszeile schreiben, um | 809 | Normalerweise müssen Sie dann »exit« in die Befehlszeile schreiben, um |
| 822 | zu Emacs zurückzukehren. | 810 | zu Emacs zurückzukehren. |
| 823 | 811 | ||
| 824 | Der beste Zeitpunkt für C-x C-c ist, wenn Sie sich ausloggen | 812 | Der beste Zeitpunkt für C-x C-c ist, wenn Sie sich ausloggen |
| 825 | (bzw. Ihren Computer ausschalten); Sie sollten Emacs ebenfalls | 813 | (bzw. Ihren Computer ausschalten); Sie sollten Emacs ebenfalls |
| 826 | beenden, wenn Sie Emacs von einem anderen Programm aus aufgerufen | 814 | beenden, wenn Sie Emacs von einem anderen Programm aus aufgerufen |
| 827 | haben (z.B. einem Programm, das E-mails liest), da solche Programme | 815 | haben (z.B. einem Programm, das E-mails liest). |
| 828 | oft nicht wissen, wie sie mit Emacs im Suspend-Modus umgehen sollen. | ||
| 829 | In allen anderen Fällen ist es meistens günstiger, C-z zu benutzen und | ||
| 830 | Emacs nicht zu beenden, damit man im Bedarfsfalle sofort an der | ||
| 831 | gleichen Stelle weiterarbeiten kann. | ||
| 832 | 816 | ||
| 833 | Hier ist eine Liste aller C-x-Befehle, die Sie bereits kennengelernt | 817 | Hier ist eine Liste aller C-x-Befehle, die Sie bereits kennengelernt |
| 834 | haben: | 818 | haben: |
| @@ -846,19 +830,19 @@ Ein Beispiel für einen Befehl mit langen Namen ist replace-string, der | |||
| 846 | global (also in der ganzen Datei bzw. Puffer) eine Zeichenkette durch | 830 | global (also in der ganzen Datei bzw. Puffer) eine Zeichenkette durch |
| 847 | eine andere ersetzt. Wenn Sie M-x drücken, dann fragt Sie Emacs in | 831 | eine andere ersetzt. Wenn Sie M-x drücken, dann fragt Sie Emacs in |
| 848 | der untersten Bildschirmzeile nach dem Namen des Befehls (in diesem | 832 | der untersten Bildschirmzeile nach dem Namen des Befehls (in diesem |
| 849 | Fall `replace-string'). Geben Sie jetzt `repl s<TAB>' ein und Emacs | 833 | Fall »replace-string«). Geben Sie jetzt »repl s<TAB>« ein und Emacs |
| 850 | vervollständigt den Namen. Schließen Sie die Eingabe mit <Return> ab. | 834 | vervollständigt den Namen. Schließen Sie die Eingabe mit <Return> ab. |
| 851 | [<TAB> bezeichnet die Tabulatortaste.] | 835 | [<TAB> bezeichnet die Tabulatortaste.] |
| 852 | 836 | ||
| 853 | >> Bewegen Sie den Cursor zu der leeren Zeile sechs Zeilen unter | 837 | >> Bewegen Sie den Cursor zu der leeren Zeile sechs Zeilen unter |
| 854 | dieser. Geben Sie dann | 838 | dieser. Geben Sie dann |
| 855 | 839 | ||
| 856 | M-x repl s<Return>Bildschirm<Return>Text<Return> | 840 | M-x repl s <Return> Bildschirm <Return> Text <Return> |
| 857 | 841 | ||
| 858 | ein und kehren Sie mit C-u C-SPC an diese Position zurück. | 842 | ein und kehren Sie mit C-u C-SPC an diese Position zurück. |
| 859 | 843 | ||
| 860 | Beachten Sie wie diese Bildschirmzeile jetzt aussieht: Sie haben | 844 | Beachten Sie wie diese Bildschirmzeile jetzt aussieht: Sie haben |
| 861 | den Wortteil B-i-l-d-s-c-h-i-r-m durch `Text' ersetzt (und zwar im | 845 | den Wortteil B-i-l-d-s-c-h-i-r-m durch »Text« ersetzt (und zwar im |
| 862 | ganzen Dokument beginnend von der Cursorposition). | 846 | ganzen Dokument beginnend von der Cursorposition). |
| 863 | 847 | ||
| 864 | >> Drücken Sie jetzt C-x u, um diese Änderungen auf einmal rückgängig | 848 | >> Drücken Sie jetzt C-x u, um diese Änderungen auf einmal rückgängig |
| @@ -872,17 +856,17 @@ Haben Sie Änderungen an einem Dokument vorgenommen, sie jedoch nicht | |||
| 872 | gespeichert, dann können sie verloren gehen, falls der Computer | 856 | gespeichert, dann können sie verloren gehen, falls der Computer |
| 873 | abstürzt. Um Sie davor zu schützen, sichert Emacs in bestimmten | 857 | abstürzt. Um Sie davor zu schützen, sichert Emacs in bestimmten |
| 874 | Zeitintervallen jede von Ihnen editierte Datei in sogenannten | 858 | Zeitintervallen jede von Ihnen editierte Datei in sogenannten |
| 875 | `auto save'-Dateien. Sie sind daran zu erkennen, dass sie mit einem # | 859 | »auto save«-Dateien. Sie sind daran zu erkennen, dass sie mit einem # |
| 876 | beginnen und enden; z.B. ist `#hello.c#' der Name der Auto-Save-Datei | 860 | beginnen und enden; z.B. ist »#hello.c#« der Name der Auto-Save-Datei |
| 877 | von `hello.c'. Wenn Sie Ihren Text auf normalem Wege speichern, wird | 861 | von »hello.c«. Wenn Sie Ihren Text auf normalem Wege speichern, wird |
| 878 | die Auto-Save-Datei gelöscht. | 862 | die Auto-Save-Datei gelöscht. |
| 879 | 863 | ||
| 880 | Stürzt der Rechner einmal wirklich ab, können Sie die Änderungen, die | 864 | Stürzt der Rechner einmal wirklich ab, können Sie die Änderungen, die |
| 881 | beim letzten Auto-Save gespeichert worden sind, folgendermaßen | 865 | beim letzten Auto-Save gespeichert worden sind, folgendermaßen |
| 882 | wiederherstellen: Laden Sie die Datei auf normalem Wege (die Datei, | 866 | wiederherstellen: Laden Sie die Datei auf normalem Wege (die Datei, |
| 883 | die Sie bearbeitet haben, nicht die Auto-Save-Datei) und geben Sie | 867 | die Sie bearbeitet haben, nicht die Auto-Save-Datei) und geben Sie |
| 884 | dann `M-x recover-file<Return>' ein. Wenn Emacs Sie um Bestätigung | 868 | dann »M-x recover-file <Return>« ein. Wenn Emacs Sie um Bestätigung |
| 885 | fragt, antworten Sie mit `yes<Return>', um den Inhalt der | 869 | fragt, antworten Sie mit »yes <Return>«, um den Inhalt der |
| 886 | Auto-Save-Datei zu übernehmen. | 870 | Auto-Save-Datei zu übernehmen. |
| 887 | 871 | ||
| 888 | 872 | ||
| @@ -890,8 +874,8 @@ Auto-Save-Datei zu übernehmen. | |||
| 890 | ------------------ | 874 | ------------------ |
| 891 | 875 | ||
| 892 | Geben Sie Befehle langsam ein, dann zeigt Ihnen Emacs Ihre eigene | 876 | Geben Sie Befehle langsam ein, dann zeigt Ihnen Emacs Ihre eigene |
| 893 | Eingabe am unteren Bildschirmrand im sogenannten Echo-Bereich (`echo | 877 | Eingabe am unteren Bildschirmrand im sogenannten Echo-Bereich (»echo |
| 894 | area'). Der Echo-Bereich enthält die unterste Bildschirmzeile. | 878 | area«). Der Echo-Bereich enthält die unterste Bildschirmzeile. |
| 895 | 879 | ||
| 896 | [Mini-Puffer und Echo-Bereich fallen normalerweise zusammen, sind aber | 880 | [Mini-Puffer und Echo-Bereich fallen normalerweise zusammen, sind aber |
| 897 | nicht das gleiche, da innerhalb des Echo-Bereiches nichts eingegeben | 881 | nicht das gleiche, da innerhalb des Echo-Bereiches nichts eingegeben |
| @@ -902,30 +886,30 @@ werden kann.] | |||
| 902 | ------------------ | 886 | ------------------ |
| 903 | 887 | ||
| 904 | Die Bildschirmzeile unmittelbar über dem Echo-Bereich ist die | 888 | Die Bildschirmzeile unmittelbar über dem Echo-Bereich ist die |
| 905 | Statuszeile (`mode line'). Sie schaut ungefähr so aus: | 889 | Statuszeile (»mode line«). Sie schaut ungefähr so aus: |
| 906 | 890 | ||
| 907 | -1:** TUTORIAL.de 59% L905 (Fundamental)---------------------- | 891 | -1:**- TUTORIAL.de 58% L891 (Fundamental) |
| 908 | 892 | ||
| 909 | Diese Zeile gibt nützliche Hinweise über den momentanen Zustand von | 893 | Diese Zeile gibt nützliche Hinweise über den momentanen Zustand von |
| 910 | Emacs und den Text, den Sie gerade editieren. | 894 | Emacs und den Text, den Sie gerade editieren. |
| 911 | 895 | ||
| 912 | Sie wissen bereits, was der Dateiname bedeutet. `--NN%--' zeigt die | 896 | Sie wissen bereits, was der Dateiname bedeutet. »NN%« zeigt die |
| 913 | momentane Position innerhalb des Textes an: NN Prozent davon sind | 897 | momentane Position innerhalb des Puffertextes an: NN Prozent davon |
| 914 | oberhalb des Bildschirms. Ist der Dateianfang zu sehen, dann | 898 | sind oberhalb des Bildschirms. Ist der Dateianfang zu sehen, dann |
| 915 | erscheint `Top' anstelle von `00%'. Analog dazu erscheint `Bot' (für | 899 | erscheint »Top« anstelle von »00%«. Analog dazu erscheint »Bot« (für |
| 916 | das englische Wort `bottom'), wenn das Dateiende sichtbar ist. Wenn | 900 | das englische Wort »bottom«), wenn das Dateiende sichtbar ist. Wenn |
| 917 | Sie einen Text betrachten, der komplett auf den Bildschirm passt, dann | 901 | Sie einen Puffer betrachten, der komplett auf den Bildschirm passt, |
| 918 | erscheint `All'. | 902 | dann erscheint »All«. |
| 919 | 903 | ||
| 920 | Das `L' und die nachfolgenden Ziffern geben die aktuelle Zeilennummer | 904 | Das »L« und die nachfolgenden Ziffern geben die aktuelle Zeilennummer |
| 921 | an, in der sich der Cursor befindet. | 905 | an, in der sich der Cursor befindet. |
| 922 | 906 | ||
| 923 | Am Anfang der Zeile sehen Sie `-1:**'. Die Zeichen vor dem | 907 | Am Anfang der Zeile sehen Sie »-1:**-«. Die Zeichen vor dem |
| 924 | Doppelpunkt geben an, in welcher Kodierung der Text ist und welche | 908 | Doppelpunkt geben an, in welcher Kodierung der Text ist und welche |
| 925 | Eingabemethode verwendet wird. Dazu mehr weiter unten im Abschnitt | 909 | Eingabemethode verwendet wird. Dazu mehr weiter unten im Abschnitt |
| 926 | `MULE'. | 910 | »MULE«. |
| 927 | 911 | ||
| 928 | [Anstelle des Doppelpunktes können auch ein `\' und `/' stehen, falls | 912 | [Anstelle des Doppelpunktes können auch ein »\« und »/« stehen, falls |
| 929 | Sie Dateien editieren, die der MS-DOS- bzw. der | 913 | Sie Dateien editieren, die der MS-DOS- bzw. der |
| 930 | Macintosh-Textkonvention folgen: MS-DOS verwendet als | 914 | Macintosh-Textkonvention folgen: MS-DOS verwendet als |
| 931 | Zeilenvorschubzeichen CR-LF (Carriage Return gefolgt von Linefeed), | 915 | Zeilenvorschubzeichen CR-LF (Carriage Return gefolgt von Linefeed), |
| @@ -938,24 +922,24 @@ Prozentzeichen nach dem Doppelpunkt stehen für eine Datei, die nur | |||
| 938 | gelesen, aber nicht editiert werden kann. | 922 | gelesen, aber nicht editiert werden kann. |
| 939 | 923 | ||
| 940 | Der eingeklammerte Teil gibt an, in welchem Editiermodus Sie sich | 924 | Der eingeklammerte Teil gibt an, in welchem Editiermodus Sie sich |
| 941 | befinden. Der Standardmodus heißt `Fundamental' (Sie verwenden ihn | 925 | befinden. Der Standardmodus heißt »Fundamental« (Sie verwenden ihn |
| 942 | gerade); er ist ein Beispiel für einen Hauptmodus (`major mode'). | 926 | gerade); er ist ein Beispiel für einen Hauptmodus (»major mode«). |
| 943 | 927 | ||
| 944 | Emacs hat viele Hauptmodi implementiert. Manche davon werden für | 928 | Emacs hat viele Hauptmodi implementiert. Manche davon werden für |
| 945 | verschiedene (Computer-)Sprachen und/oder Textarten verwendet, | 929 | verschiedene (Computer-)Sprachen und/oder Textarten verwendet, |
| 946 | z.B. Lisp-Modus, Text-Modus usw. Es kann immer nur ein Hauptmodus | 930 | z.B. Lisp-Modus, Text-Modus usw. Es kann immer nur ein Hauptmodus |
| 947 | aktiviert sein, und der Name befindet sich dort, wo jetzt gerade | 931 | aktiviert sein, und der Name befindet sich dort, wo jetzt gerade |
| 948 | `Fundamental' steht. | 932 | »Fundamental« steht. |
| 949 | 933 | ||
| 950 | Einige Befehle verhalten sich jeweils in verschiedenen Hauptmodi | 934 | Einige Befehle verhalten sich jeweils in verschiedenen Hauptmodi |
| 951 | anders. Es gibt zum Beispiel einen Befehl, um einen Kommentar in den | 935 | anders. Es gibt zum Beispiel einen Befehl, um einen Kommentar in den |
| 952 | Quellcode eines Computerprogramm einzufügen -- die Tastenfolge dafür | 936 | Quellcode eines Computerprogramm einzufügen -- die Tastenfolge dafür |
| 953 | ist zwar (in der Regel) die gleiche, doch wird ein Kommentar mit der | 937 | ist zwar (in der Regel) die gleiche, doch wird ein Kommentar mit der |
| 954 | für die aktuelle Programmiersprache gültigen Syntax eingefügt | 938 | für die aktuelle Programmiersprache gültigen Syntax eingefügt |
| 955 | (z.B. `// ...' für ein Programm in C++ oder `; ...' für Lisp). Um in | 939 | (z.B. »// ...« für ein Programm in C++ oder »; ...« für Lisp). Um in |
| 956 | einen Hauptmodus zu schalten, hängen Sie einfach das englische Wort | 940 | einen Hauptmodus zu schalten, hängen Sie einfach das englische Wort |
| 957 | `-mode' an den (kleingeschriebenen) Namen des Modus an und führen den | 941 | »-mode« an den (kleingeschriebenen) Namen des Modus an und führen den |
| 958 | Befehl mittels M-x aus. Beispiel: `M-x fundamental-mode' schaltet in | 942 | Befehl mittels M-x aus. Beispiel: »M-x fundamental-mode« schaltet in |
| 959 | den Fundamental-Modus. Weitere wichtige Modi sind c-mode, perl-mode, | 943 | den Fundamental-Modus. Weitere wichtige Modi sind c-mode, perl-mode, |
| 960 | lisp-mode, text-mode u.a. Die meisten davon werden automatisch | 944 | lisp-mode, text-mode u.a. Die meisten davon werden automatisch |
| 961 | aktiviert, und zwar entsprechend der Namenserweiterung der zu ladenden | 945 | aktiviert, und zwar entsprechend der Namenserweiterung der zu ladenden |
| @@ -965,30 +949,30 @@ C-Modus aktiviert. | |||
| 965 | Wenn Sie deutschen oder englischen Text bearbeiten, dann sollten Sie | 949 | Wenn Sie deutschen oder englischen Text bearbeiten, dann sollten Sie |
| 966 | den Textmodus verwenden. [Falls Ihre Tastatur keine Umlaut-Tasten | 950 | den Textmodus verwenden. [Falls Ihre Tastatur keine Umlaut-Tasten |
| 967 | hat, müssen Sie noch einen weiteren Nebenmodus aktivieren. Lesen Sie | 951 | hat, müssen Sie noch einen weiteren Nebenmodus aktivieren. Lesen Sie |
| 968 | dazu den Abschnitt `MULE' weiter unten.] | 952 | dazu den Abschnitt »MULE« weiter unten.] |
| 969 | 953 | ||
| 970 | >> Geben Sie `M-x text mode<Return>' ein. | 954 | >> Geben Sie »M-x text-mode <Return>« ein. |
| 971 | 955 | ||
| 972 | Sie brauchen keine Angst zu haben, dass sich die bisher dargestellte | 956 | Sie brauchen keine Angst zu haben, dass sich die bisher dargestellte |
| 973 | Tastaturbelegung von Emacs stark ändert. Beobachten Sie z.B. die | 957 | Tastaturbelegung von Emacs stark ändert. Beobachten Sie z.B. die |
| 974 | Befehle M-f und M-b: Apostrophe werden nun als Teil eines Wortes | 958 | Befehle M-f und M-b: Apostrophe werden nun als Teil eines Wortes |
| 975 | betrachtet (wie man's leicht an diesem Beispiel ausprobieren kann), | 959 | betrachtet (wie man's leicht an diesem Beispiel ausprobieren kann), |
| 976 | wohingegen im Fundamentalmodus Apostrophe als Worttrenner | 960 | wohingegen im Fundamentalmodus Apostrophe als Worttrenner |
| 977 | (`word-separator') behandelt werden. | 961 | (»word-separator«) behandelt werden. |
| 978 | 962 | ||
| 979 | Normalerweise ist das eben genannte Beispiel die Methode von | 963 | Normalerweise ist das eben genannte Beispiel die Methode von |
| 980 | Hauptmodi: Die meisten Befehle tun `das gleiche', arbeiten aber | 964 | Hauptmodi: Die meisten Befehle tun »das gleiche«, arbeiten aber |
| 981 | jeweils ein bisschen anders. | 965 | jeweils ein bisschen anders. |
| 982 | 966 | ||
| 983 | Dokumentation zum derzeit aktuellen Hauptmodus bekommen Sie mit C-h m. | 967 | Dokumentation zum derzeit aktuellen Hauptmodus bekommen Sie mit C-h m. |
| 984 | 968 | ||
| 985 | >> Drücken Sie C-u C-v ein- oder mehrmals, um diese Zeile in die Nähe | 969 | >> Drücken Sie C-l C-l, um diese Zeile an den oberen Bildschirmrand zu |
| 986 | des oberen Bildschirmrands zu bringen. | 970 | bringen. |
| 987 | >> Lesen Sie nun mittels C-h m die englische Dokumentation zum | 971 | >> Lesen Sie nun mittels C-h m die englische Dokumentation zum |
| 988 | Textmodus. | 972 | Textmodus. |
| 989 | >> Entfernen Sie schließlich das Dokumentationsfenster mit C-x 1. | 973 | >> Entfernen Sie schließlich das Dokumentationsfenster mit C-x 1. |
| 990 | 974 | ||
| 991 | Neben den Hauptmodi gibt es auch Nebenmodi (`minor modes'). Nebenmodi | 975 | Neben den Hauptmodi gibt es auch Nebenmodi (»minor modes«). Nebenmodi |
| 992 | sind keine Alternativen zu Hauptmodi, sondern stellen Ergänzungen zur | 976 | sind keine Alternativen zu Hauptmodi, sondern stellen Ergänzungen zur |
| 993 | Verfügung, die (normalerweise) in allen Hauptmodi funktionieren | 977 | Verfügung, die (normalerweise) in allen Hauptmodi funktionieren |
| 994 | (z.B. der Überschreibmodus: Zeichen werden nicht eingefügt, sondern | 978 | (z.B. der Überschreibmodus: Zeichen werden nicht eingefügt, sondern |
| @@ -998,20 +982,20 @@ Sie können zu Ihrem Hauptmodus keinen, einen oder sogar mehrere | |||
| 998 | Nebenmodi haben. | 982 | Nebenmodi haben. |
| 999 | 983 | ||
| 1000 | Ein Nebenmodus, welcher äußerst nützlich ist, besonders für das | 984 | Ein Nebenmodus, welcher äußerst nützlich ist, besonders für das |
| 1001 | Editieren von Text, ist der automatische Zeilenumbruch (`Auto Fill | 985 | Editieren von Text, ist der automatische Zeilenumbruch (»Auto Fill |
| 1002 | mode'). Ist dieser Modus aktiviert, dann bricht Emacs die laufende | 986 | mode«). Ist dieser Modus aktiviert, dann bricht Emacs die laufende |
| 1003 | Zeile selbsttätig zwischen Wörtern um, sobald sie zu lang wird. | 987 | Zeile selbsttätig zwischen Wörtern um, sobald sie zu lang wird. |
| 1004 | 988 | ||
| 1005 | Sie können den Zeilenumbruchmodus einschalten mittels `M-x auto fill | 989 | Sie können den Zeilenumbruchmodus mittels »M-x auto-fill-mode |
| 1006 | mode<Return>'. Wenn der Modus aktiviert ist, können Sie ihn mit dem | 990 | <Return>« einschalten. Wenn der Modus aktiviert ist, können Sie ihn |
| 1007 | gleichen Befehl wieder ausschalten. Mit anderen Worten, der Befehl | 991 | mit dem gleichen Befehl wieder ausschalten. Mit anderen Worten, der |
| 1008 | verhält sich wie ein Lichttaster, der bei Betätigung entweder das | 992 | Befehl verhält sich wie ein Lichttaster, der bei Betätigung entweder |
| 1009 | Licht ein- oder ausschaltet, je nachdem, ob das Licht vorher | 993 | das Licht ein- oder ausschaltet, je nachdem, ob das Licht vorher |
| 1010 | ausgeschaltet bzw. eingeschaltet war. Wir sagen, dass dieser Befehl | 994 | ausgeschaltet bzw. eingeschaltet war. Wir sagen, dass dieser Befehl |
| 1011 | den Modus umschaltet (`toggle'). | 995 | den Modus umschaltet (»toggle«). |
| 1012 | 996 | ||
| 1013 | >> Geben Sie nun M-x auto fill mode<Return> ein. Fügen Sie | 997 | >> Geben Sie nun M-x auto-fill-mode <Return> ein. Fügen Sie |
| 1014 | anschließend eine Zeile ein, die aus lauter `asdf ' besteht, und | 998 | anschließend eine Zeile ein, die aus lauter »asdf « besteht, und |
| 1015 | zwar so lange, bis die Zeile automatisch umgebrochen wird. | 999 | zwar so lange, bis die Zeile automatisch umgebrochen wird. |
| 1016 | Vergessen Sie nicht, Leerzeichen einzugeben, da nur dort ein | 1000 | Vergessen Sie nicht, Leerzeichen einzugeben, da nur dort ein |
| 1017 | Umbruch erfolgt. | 1001 | Umbruch erfolgt. |
| @@ -1038,56 +1022,56 @@ Absatzes stehen muss. | |||
| 1038 | * SUCHEN | 1022 | * SUCHEN |
| 1039 | -------- | 1023 | -------- |
| 1040 | 1024 | ||
| 1041 | Emacs kann Zeichenketten (`strings') entweder in Richtung Pufferende | 1025 | Emacs kann Zeichenketten (»strings«, eine Folge von zusammenhängenden |
| 1042 | (vorwärts, `forward') oder in Richtung Pufferanfang (rückwärts, | 1026 | Zeichen) entweder in Richtung Pufferende (vorwärts, »forward«) oder in |
| 1043 | `backward') suchen. Gleichzeitig wird der Cursor an die nächste | 1027 | Richtung Pufferanfang (rückwärts, »backward«) suchen. Gleichzeitig |
| 1044 | Stelle bewegt, wo diese Zeichenkette erscheint. | 1028 | wird der Cursor an die nächste Stelle bewegt, wo diese Zeichenkette |
| 1029 | erscheint. | ||
| 1045 | 1030 | ||
| 1046 | Hier unterscheidet sich Emacs von vielen anderen Editoren, da nämlich | 1031 | Die Standard-Suchoperation von Emacs ist inkrementelles Suchen, d.h., |
| 1047 | die Standard-Suchoperation inkrementelles Suchen ist, d.h., die Suche | 1032 | die Suche beginnt dann, wenn Sie die Zeichen eingeben. |
| 1048 | beginnt dann, wenn Sie die Zeichen eingeben. | ||
| 1049 | 1033 | ||
| 1050 | Der Befehl für Vorwärtssuchen ist C-s und C-r für Rückwärtssuchen. | 1034 | Der Befehl für Vorwärtssuchen ist C-s und C-r für Rückwärtssuchen. |
| 1051 | ABER HALT! Probieren Sie bitte diese Befehle noch nicht. | 1035 | ABER HALT! Probieren Sie bitte diese Befehle noch nicht. |
| 1052 | 1036 | ||
| 1053 | Wenn Sie C-s eingeben, dann erscheint die Zeichenkette `I-search:' als | 1037 | Wenn Sie C-s eingeben, dann erscheint die Zeichenkette »I-search:« als |
| 1054 | Eingabeaufforderung im Echobereich. Das bedeutet, dass Emacs jetzt | 1038 | Eingabeaufforderung im Echobereich. Das bedeutet, dass Emacs jetzt |
| 1055 | eine inkrementellen Suche ausführt und darauf wartet, dass Sie die zu | 1039 | eine inkrementellen Suche ausführt und darauf wartet, dass Sie die zu |
| 1056 | suchende Zeichenkette eingeben. <Return> beendet die Suche. | 1040 | suchende Zeichenkette eingeben. <Return> beendet die Suche. |
| 1057 | 1041 | ||
| 1058 | >> Geben Sie jetzt C-s ein, um einen Suchvorgang zu starten. Schreiben | 1042 | >> Geben Sie jetzt C-s ein, um einen Suchvorgang zu starten. Schreiben |
| 1059 | Sie LANGSAM, einen Buchstaben nach dem anderen, das Wort `Cursor', | 1043 | Sie LANGSAM, einen Buchstaben nach dem anderen, das Wort »Cursor«, |
| 1060 | und warten Sie jeweils ab, was mit dem Cursor passiert. Sie haben | 1044 | und warten Sie jeweils ab, was mit dem Cursor passiert. Sie haben |
| 1061 | jetzt das Wort `Cursor' einmal gefunden. | 1045 | jetzt das Wort »Cursor« einmal gefunden. |
| 1062 | >> Drücken Sie C-s noch einmal, um die nächste Stelle zu suchen, wo das | 1046 | >> Drücken Sie C-s noch einmal, um die nächste Stelle zu suchen, wo das |
| 1063 | Wort `Cursor' vorkommt. | 1047 | Wort »Cursor« vorkommt. |
| 1064 | >> Drücken Sie nun <Delete> viermal und beobachten Sie, wie der Cursor | 1048 | >> Drücken Sie nun <DEL> viermal und beobachten Sie, wie der Cursor |
| 1065 | zurückspringt. | 1049 | zurückspringt. |
| 1066 | >> Beenden Sie die Suche mit <Return>. | 1050 | >> Beenden Sie die Suche mit <Return>. |
| 1067 | 1051 | ||
| 1068 | Verstehen Sie, was gerade vorgegangen ist? Emacs versucht während | 1052 | Verstehen Sie, was gerade vorgegangen ist? Emacs versucht während |
| 1069 | einer inkrementellen Suche zu der Stelle zu gehen, wo die Zeichenkette | 1053 | einer inkrementellen Suche zu der Stelle zu gehen, wo die Zeichenkette |
| 1070 | steht, die Sie bis jetzt eingegeben haben. Um die darauffolgende | 1054 | steht, die Sie bis jetzt eingegeben haben. Um die darauffolgende |
| 1071 | Position zu suchen, wo `Cursor' steht, genügt es, noch einmal C-s zu | 1055 | Position zu suchen, wo »Cursor« steht, genügt es, noch einmal C-s zu |
| 1072 | betätigen. Wenn es keine nächste Position gibt, dann ertönt ein | 1056 | betätigen. Wenn es keine nächste Position gibt, dann ertönt ein |
| 1073 | kurzer Ton, und Emacs sagt Ihnen, dass die Suche im Augenblick | 1057 | kurzer Ton, und Emacs sagt Ihnen, dass die Suche im Augenblick |
| 1074 | fehlschlägt (`failing'). C-g beendet ebenfalls einen Suchvorgang. | 1058 | fehlschlägt (»failing«). C-g beendet ebenfalls einen Suchvorgang. |
| 1075 | 1059 | ||
| 1076 | Wenn Sie sich mitten in einer inkrementellen Suche befinden und | 1060 | Wenn Sie sich mitten in einer inkrementellen Suche befinden und |
| 1077 | <Delete> drücken, wird das letzte Zeichen im Suchstring gelöscht, und | 1061 | <DEL> drücken, wird das letzte Zeichen im Suchstring gelöscht, und |
| 1078 | der Cursor springt zurück auf die letzte Suchposition. Angenommen, | 1062 | der Cursor springt zurück auf die letzte Suchposition. Angenommen, |
| 1079 | Sie haben `c' eingegeben, um das erste Auftreten von `c' zu suchen. | 1063 | Sie haben »c« eingegeben, um das erste Auftreten von »c« zu suchen. |
| 1080 | Geben Sie jetzt `u' ein, dann springt der Cursor zu dem ersten | 1064 | Geben Sie jetzt »u« ein, dann springt der Cursor zu dem ersten |
| 1081 | Auftreten der Zeichenkette `cu'. Wenn Sie jetzt mit <Delete> das `u' | 1065 | Auftreten der Zeichenkette »cu«. Wenn Sie jetzt mit <DEL> das »u« |
| 1082 | vom Suchstring löschen, dann springt der Cursor zurück zum ersten `c'. | 1066 | vom Suchstring löschen, dann springt der Cursor zurück zum ersten »c«. |
| 1083 | Drücken Sie dagegen ein paar mal C-s, um weitere `cu'-Zeichenketten zu | 1067 | Drücken Sie dagegen ein paar mal C-s, um weitere »cu«-Zeichenketten zu |
| 1084 | finden, dann bewirkt <Delete>, dass Sie zum letzten Auftreten von `cu' | 1068 | finden, dann bewirkt <DEL>, dass Sie zum letzten Auftreten von »cu« |
| 1085 | zurückspringen, und erst wenn es kein weiteres `cu' mehr gibt, springt | 1069 | zurückspringen, und erst wenn es kein weiteres »cu« mehr gibt, springt |
| 1086 | der Cursor zum ersten `c' zurück. | 1070 | der Cursor zum ersten »c« zurück. |
| 1087 | 1071 | ||
| 1088 | Die Suche wird ebenfalls beendet, wenn Sie ein CONTROL- oder | 1072 | Die Suche wird ebenfalls beendet, wenn Sie ein CONTROL- oder |
| 1089 | META-Zeichen eingeben (mit ein paar Ausnahmen -- Zeichen, die | 1073 | META-Zeichen eingeben (mit ein paar Ausnahmen -- Zeichen, die bei |
| 1090 | bei einer Suche speziell gehandhabt werden wie C-s oder C-r). | 1074 | einer Suche speziell gehandhabt werden wie C-s oder C-r). |
| 1091 | 1075 | ||
| 1092 | C-s versucht, die Zeichenkette NACH der aktuellen Cursorposition zu | 1076 | C-s versucht, die Zeichenkette NACH der aktuellen Cursorposition zu |
| 1093 | finden. Wollen Sie etwas davor suchen, müssen Sie C-r verwenden. Das | 1077 | finden. Wollen Sie etwas davor suchen, müssen Sie C-r verwenden. Das |
| @@ -1101,7 +1085,11 @@ Suchrichtung. | |||
| 1101 | Eine weitere, nützliche Fähigkeit von Emacs ist die Möglichkeit, mehr | 1085 | Eine weitere, nützliche Fähigkeit von Emacs ist die Möglichkeit, mehr |
| 1102 | als ein Fenster zur gleichen Zeit auf dem Bildschirm darzustellen. | 1086 | als ein Fenster zur gleichen Zeit auf dem Bildschirm darzustellen. |
| 1103 | 1087 | ||
| 1104 | >> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-u 0 C-l ein. | 1088 | [Der Unterschied zu graphischen Fenstern im herkömmlichen Sinn |
| 1089 | (»frame« in der Emacs-Terminologie) wurde bereits weiter oben | ||
| 1090 | besprochen.] | ||
| 1091 | |||
| 1092 | >> Bewegen Sie den Cursor zu dieser Zeile und geben Sie C-l C-l ein. | ||
| 1105 | 1093 | ||
| 1106 | >> Drücken Sie nun C-x 2, um den Bildschirm in zwei Fenster zu teilen. | 1094 | >> Drücken Sie nun C-x 2, um den Bildschirm in zwei Fenster zu teilen. |
| 1107 | Beide Fenster zeigen diese Einführung an, und der Cursor bleibt im | 1095 | Beide Fenster zeigen diese Einführung an, und der Cursor bleibt im |
| @@ -1111,8 +1099,8 @@ als ein Fenster zur gleichen Zeit auf dem Bildschirm darzustellen. | |||
| 1111 | statt dessen auch ESC C-v verwenden, falls Sie keine META-Taste | 1099 | statt dessen auch ESC C-v verwenden, falls Sie keine META-Taste |
| 1112 | haben; siehe auch weiter unten). | 1100 | haben; siehe auch weiter unten). |
| 1113 | 1101 | ||
| 1114 | >> Mittels C-x o (das `o' steht für das englische Wort `other', `das | 1102 | >> Mittels C-x o (das »o« steht für das englische Wort »other«, »das |
| 1115 | andere') können Sie den Cursor in das untere Fenster bewegen. | 1103 | andere«) können Sie den Cursor in das untere Fenster bewegen. |
| 1116 | 1104 | ||
| 1117 | >> Benützen Sie C-v und M-v, um im unteren Fenster zu blättern. Lesen | 1105 | >> Benützen Sie C-v und M-v, um im unteren Fenster zu blättern. Lesen |
| 1118 | Sie die Emacs-Einführung jedoch im oberen Fenster weiter. | 1106 | Sie die Emacs-Einführung jedoch im oberen Fenster weiter. |
| @@ -1122,16 +1110,16 @@ als ein Fenster zur gleichen Zeit auf dem Bildschirm darzustellen. | |||
| 1122 | 1110 | ||
| 1123 | C-x o ist der Befehl, um zwischen (Emacs-)Fenstern hin- und | 1111 | C-x o ist der Befehl, um zwischen (Emacs-)Fenstern hin- und |
| 1124 | herzuschalten. Jedes Fenster hat eine eigene Cursorposition, aber nur | 1112 | herzuschalten. Jedes Fenster hat eine eigene Cursorposition, aber nur |
| 1125 | das aktuelle Fenster zeigt den Cursor an (unter X11 wird die | 1113 | das aktuelle Fenster zeigt den Cursor an (auf einer graphischen |
| 1126 | nicht-aktuelle Cursorposition durch ein leeres Rechteck dargestellt). | 1114 | Oberfläche wird die nicht-aktuelle Cursorposition durch ein leeres |
| 1127 | Alle normalen Editierbefehle betreffen das Fenster, in dem sich der | 1115 | Rechteck dargestellt). Alle normalen Editierbefehle betreffen das |
| 1128 | Cursor befindet. Wir nennen dieses Fenster `ausgewählt' (`selected | 1116 | Fenster, in dem sich der Cursor befindet. Wir nennen dieses Fenster |
| 1129 | window'). | 1117 | »ausgewählt« (»selected window«). |
| 1130 | 1118 | ||
| 1131 | Der Befehl M-C-v ist sehr nützlich, wenn man Text in einem Fenster | 1119 | Der Befehl M-C-v ist sehr nützlich, wenn man Text in einem Fenster |
| 1132 | editiert und das andere Fenster als Referenz verwendet. Der Cursor | 1120 | editiert und das andere Fenster als Referenz verwendet. Ohne das |
| 1133 | bleibt stets im gleichen Arbeitsfenster, und mit M-C-v kann man bequem | 1121 | momentante Arbeitsfenster verlassen zu müssen, kann man mit M-C-v im |
| 1134 | vorwärtsblättern. | 1122 | anderen Fenster bequem vorwärtsblättern. |
| 1135 | 1123 | ||
| 1136 | M-C-v ist ein Beispiel eines CONTROL-META-Zeichens. Haben Sie eine | 1124 | M-C-v ist ein Beispiel eines CONTROL-META-Zeichens. Haben Sie eine |
| 1137 | META-Taste, dann kann man M-C-v erzeugen, indem man CTRL und META | 1125 | META-Taste, dann kann man M-C-v erzeugen, indem man CTRL und META |
| @@ -1147,24 +1135,24 @@ META oder CTRL. | |||
| 1147 | 1135 | ||
| 1148 | Der umgekehrte Befehl zu M-C-v ist M-C-S-v, um im anderen Fenster | 1136 | Der umgekehrte Befehl zu M-C-v ist M-C-S-v, um im anderen Fenster |
| 1149 | rückwärts zu blättern (d.h., Sie müssen die META-Taste sowie die | 1137 | rückwärts zu blättern (d.h., Sie müssen die META-Taste sowie die |
| 1150 | CONTROL- und SHIFT-Taste zusammen mit `v' betätigen) -- jetzt werden | 1138 | CONTROL- und SHIFT-Taste zusammen mit »v« betätigen) -- jetzt werden |
| 1151 | Sie wahrscheinlich verstehen, warum manche Kritiker das Wort Emacs als | 1139 | Sie wahrscheinlich verstehen, warum manche Kritiker das Wort Emacs als |
| 1152 | Abkürzung von Escape-Meta-Alt-Control-Shift betrachten. Leider | 1140 | Abkürzung von Escape-Meta-Alt-Control-Shift betrachten. Leider |
| 1153 | funktioniert diese Befehlsfolge normalerweise nur mit graphischen | 1141 | funktioniert diese Befehlsfolge normalerweise nur mit graphischen |
| 1154 | Oberflächen wie X11, da C-v von C-S-v auf den meisten Textterminals | 1142 | Oberflächen, da C-v von C-S-v auf den meisten Textterminals nicht |
| 1155 | nicht unterschieden werden kann. | 1143 | unterschieden werden kann. |
| 1156 | 1144 | ||
| 1157 | [Unter X11 kann man außerdem in der Regel mit den bequemeren | 1145 | [Auf graphischen Oberflächen kann man außerdem in der Regel mit den |
| 1158 | Tastenkombinationen META-`Bild mit Aufwärtspfeil' bzw. META-`Bild mit | 1146 | bequemeren Tastenkombinationen META-»Bild mit Aufwärtspfeil« |
| 1159 | Abwärtspfeil' ebenfalls im anderen Fenster rück- bzw. vorwärts | 1147 | bzw. META-»Bild mit Abwärtspfeil« ebenfalls im anderen Fenster rück- |
| 1160 | blättern.] | 1148 | bzw. vorwärts blättern.] |
| 1161 | 1149 | ||
| 1162 | >> Entfernen Sie mit C-x 1 (eingegeben im oberen Fenster) das untere | 1150 | >> Entfernen Sie mit C-x 1 (eingegeben im oberen Fenster) das untere |
| 1163 | Fenster. | 1151 | Fenster. |
| 1164 | 1152 | ||
| 1165 | (Hätten Sie C-x 1 im unteren Fenster eingegeben, dann wäre das obere | 1153 | (Hätten Sie C-x 1 im unteren Fenster eingegeben, dann wäre das obere |
| 1166 | Fenster geschlossen worden -- eine Eselsbrücke für C-x 1 ist `ich will | 1154 | Fenster geschlossen worden -- eine Eselsbrücke für C-x 1 ist »ich will |
| 1167 | nur das *eine* Fenster, in dem ich mich gerade befinde.') | 1155 | nur das *eine* Fenster, in dem ich mich gerade befinde.«) |
| 1168 | 1156 | ||
| 1169 | Sie müssen nicht den gleichen Puffer in beiden Fenstern darstellen. | 1157 | Sie müssen nicht den gleichen Puffer in beiden Fenstern darstellen. |
| 1170 | Wenn Sie C-x C-f verwenden, um in einem Fenster eine Datei zu laden, | 1158 | Wenn Sie C-x C-f verwenden, um in einem Fenster eine Datei zu laden, |
| @@ -1184,11 +1172,42 @@ Texte darzustellen: | |||
| 1184 | Sie C-x 1 ein, um das untere Fenster zu schließen. | 1172 | Sie C-x 1 ein, um das untere Fenster zu schließen. |
| 1185 | 1173 | ||
| 1186 | 1174 | ||
| 1175 | * MEHRFACHE RAHMEN | ||
| 1176 | ------------------ | ||
| 1177 | |||
| 1178 | Emacs kann auch mehrfache Rahmen erzeugen, sobald das Programm auf | ||
| 1179 | einer graphischen Oberfläche ausgeführt wird. In der | ||
| 1180 | Emacs-Terminologie bezeichnet ein »Rahmen« eine Gruppe von Fenstern, | ||
| 1181 | gemeinsam mit deren Menus, Scrollbars, Echo-Bereichen, usw. Auf einem | ||
| 1182 | Textterminal kann genau ein Rahmen dargestellt werden. | ||
| 1183 | |||
| 1184 | >> Geben Sie | ||
| 1185 | |||
| 1186 | M-x make-frame <Return> | ||
| 1187 | |||
| 1188 | ein, um einen neuen Rahmen zu erzeugen. | ||
| 1189 | |||
| 1190 | Alles, was Sie im ursprünglichen, ersten Rahmen tun können, | ||
| 1191 | funktioniert genauso im neuen Rahmen. Beide Rahmen sind also völlig | ||
| 1192 | gleichwertig. | ||
| 1193 | |||
| 1194 | >> Geben Sie | ||
| 1195 | |||
| 1196 | M-x delete-frame <Return> | ||
| 1197 | |||
| 1198 | ein, um den ausgewählten Rahmen zu entfernen. | ||
| 1199 | |||
| 1200 | Ein Rahmen kann auch mit der normalen Methode der graphischen | ||
| 1201 | Oberfläche entfernt werden; meistens gibt es dafür einen Knopf mit | ||
| 1202 | einem »X« in der linken oder rechten oberen Ecke des Rahmens. Wird | ||
| 1203 | der letzte Rahmen geschlossen, beendet man Emacs, wie erwartet. | ||
| 1204 | |||
| 1205 | |||
| 1187 | * REKURSIVE EDITIER-EBENEN | 1206 | * REKURSIVE EDITIER-EBENEN |
| 1188 | -------------------------- | 1207 | -------------------------- |
| 1189 | 1208 | ||
| 1190 | Manchmal kann es passieren, dass Sie in eine sogenannte rekursive | 1209 | Manchmal kann es passieren, dass Sie in eine sogenannte rekursive |
| 1191 | Editier-Ebene geraten (`recursive editing level'). Sie können das an | 1210 | Editier-Ebene geraten (»recursive editing level«). Sie können das an |
| 1192 | den eckigen Klammern in der Statuszeile erkennen, welche den | 1211 | den eckigen Klammern in der Statuszeile erkennen, welche den |
| 1193 | derzeitigen Hauptmodus zusätzlich umschließen, z.B. [(Fundamental)] | 1212 | derzeitigen Hauptmodus zusätzlich umschließen, z.B. [(Fundamental)] |
| 1194 | anstelle von (Fundamental). | 1213 | anstelle von (Fundamental). |
| @@ -1211,91 +1230,49 @@ dargestellt. Details finden Sie im Emacs-Handbuch beschrieben. | |||
| 1211 | * MULE | 1230 | * MULE |
| 1212 | ------ | 1231 | ------ |
| 1213 | 1232 | ||
| 1214 | Mule ist die Abkürzung für `Multi-lingual Enhancement to GNU Emacs'. | 1233 | Mule ist die Abkürzung für »Multi-lingual Enhancement to GNU Emacs«. |
| 1215 | Früher wurde damit eine spezielle Emacs-Variante bezeichnet, die | 1234 | Früher wurde damit eine spezielle Emacs-Variante bezeichnet, die |
| 1216 | allerdings seit der Version 20 mit Emacs verschmolzen ist. | 1235 | allerdings seit der Version 20 mit Emacs verschmolzen ist. |
| 1217 | 1236 | ||
| 1218 | Emacs unterstützt eine große Anzahl von internationalen Zeichensätzen, | 1237 | Emacs unterstützt eine große Anzahl von internationalen Zeichensätzen, |
| 1219 | z.B. verschiedene europäische Varianten des lateinischen Alphabets, | 1238 | z.B. verschiedene europäische Varianten des lateinischen Alphabets, |
| 1220 | Chinesisch, Russisch oder Thai, um nur einige zu nennen. In dieser | 1239 | Chinesisch, Russisch oder Thai, um nur einige zu nennen. In dieser |
| 1221 | Einführung wird jedoch nur auf den deutschen Zeichensatz sowie | 1240 | Einführung wird jedoch nur auf Unicode und Latin-1 sowie |
| 1222 | Eingabemöglichkeiten für Deutsch näher eingegangen. | 1241 | Eingabemöglichkeiten für Deutsch näher eingegangen. |
| 1223 | 1242 | ||
| 1224 | Der Standard-Zeichensatz für Deutsch ist Latin-1 (auch bekannt unter | 1243 | Lesen Sie im Emacs-Handbuch unter dem Stichwort »International« nach, |
| 1225 | dem Namen ISO-8859-1), obwohl Unicode -- und da besonders die | ||
| 1226 | Kodierungsvariante UTF-8 -- sich immer mehr durchzusetzt. Wenn | ||
| 1227 | anstelle der deutschen Umlaute unansehnliche Konstrukte wie `\201ä' | ||
| 1228 | dargestellt werden, dann ist die sogenannte | ||
| 1229 | Multibyte-Zeichenunterstützung deaktiviert (intern werden in Emacs | ||
| 1230 | Nicht-ASCII-Zeichensätze durch mehr als ein Byte repräsentiert). Der | ||
| 1231 | Befehl `M-x toggle-enable-multibyte-characters' aktiviert die | ||
| 1232 | Multibyte-Zeichenunterstützung. Denken Sie daran, die Tabulatortaste | ||
| 1233 | zur Vervollständigung von Befehlsnamen zu benützen, z.B. `M-x | ||
| 1234 | toggle-e<TAB><Return>'. | ||
| 1235 | |||
| 1236 | Wenn anstelle der Umlaute `ä', `ö' oder `ü' die Zeichen `d', `v' und | ||
| 1237 | `|' erscheinen (also `kleines D', `kleines V' und ein senkrechter | ||
| 1238 | Strich), dann wird das achte Bit von jedem Byte abgeschnitten, sodass | ||
| 1239 | nur ASCII-Zeichen dargestellt werden können. In der Regel gibt es | ||
| 1240 | zwei Ursachen für dieses Problem: Sie haben sich nicht `8-bit clean' | ||
| 1241 | (z.B. mittels `telnet -8 ...') eingeloggt oder Ihr | ||
| 1242 | Telekommunikationsprogramm ist nicht für 8-bit konfiguriert. Beides | ||
| 1243 | ist heutzutage eher unwahrscheinlich, daher wird hier nicht weiter | ||
| 1244 | darauf eingegangen. | ||
| 1245 | |||
| 1246 | >> Geben Sie `M-x toggle-enable-multibyte-characters' ein. Die | ||
| 1247 | deutschen Umlaute (so sie von Ihrem Terminal darstellbar sind) | ||
| 1248 | verschwinden und werden durch Zahlenkonstrukte ersetzt. So wird | ||
| 1249 | zum Beispiel Umlaut a (`ä') dargestellt als `\201ä'. | ||
| 1250 | |||
| 1251 | >> Aktivieren Sie wieder die Multibyte-Zeichenunterstützung mittels | ||
| 1252 | `M-x toggle-enable-multibyte-characters'. | ||
| 1253 | |||
| 1254 | Sehen Sie anstelle der Umlaute leere Kästchen (unter X11 oder anderen | ||
| 1255 | graphischen Oberflächen), sollten Sie Emacs mit C-x C-c beenden und | ||
| 1256 | folgendermaßen neu starten: | ||
| 1257 | |||
| 1258 | emacs -fn fontset-standard | ||
| 1259 | |||
| 1260 | Sie können auch probieren, Emacs mit der `--unibyte'-Option zu | ||
| 1261 | starten, um Latin-1-Zeichen direkt darzustellen. | ||
| 1262 | |||
| 1263 | Falls das alles nichts nützt oder Sie Fragezeichen anstelle der | ||
| 1264 | Umlaute auf ihrem Textterminal sehen, sollten Sie sich an Ihren | ||
| 1265 | Systemadministrator wenden und sich beschweren, dass kein | ||
| 1266 | Latin-1-Zeichensatz installiert ist (was heutzutage eigentlich eine | ||
| 1267 | Selbstverständlichkeit sein sollte). Falls statt der Umlaute andere | ||
| 1268 | Zeichen auf ihrem Textterminal erscheinen (z.B. kyrillische | ||
| 1269 | Buchstaben), dann erkundigen Sie sich, wie sie auf Latin-1 umschalten | ||
| 1270 | können. | ||
| 1271 | |||
| 1272 | Lesen Sie im Emacs-Handbuch nach unter dem Stichwort `International', | ||
| 1273 | welche weitere Optionen es bezüglich Zeichensätze gibt. | 1244 | welche weitere Optionen es bezüglich Zeichensätze gibt. |
| 1274 | 1245 | ||
| 1275 | Ist die Sprachumgebung (`locale') Ihres Betriebssystems korrekt auf | 1246 | Die Standard-Zeichensätze für Deutsch sind Latin-1 (auch bekannt unter |
| 1276 | Deutsch gesetzt, verwendet Emacs diese Einstellungen automatisch. | 1247 | dem Namen ISO-8859-1) und Unicode -- und da besonders dessen |
| 1277 | Anderenfalls empfiehlt es sich, Latin-1 als Standardkodierung zu | 1248 | Kodierungsvariante UTF-8. Werden anstelle der deutschen Umlaute |
| 1278 | aktivieren, wenn Sie primär Deutsch verwenden. Benutzen Sie zu diesem | 1249 | unansehnliche Konstrukte wie »\374« dargestellt, hat Emacs die |
| 1279 | Zweck die Befehlsfolge | 1250 | Kodierung nicht richtig erkannt. Sie können die Anwendung einer |
| 1280 | 1251 | Kodierung auf einen Befehl erzwingen, indem Sie diesen mit der Sequenz | |
| 1281 | C-x <Return> l latin-1 <Return> | 1252 | »C-x <Return> c KODIERUNG« einleiten. Das Laden einer Datei »foo« mit |
| 1282 | 1253 | der Kodierung »UTF-8« ist beispielsweise | |
| 1283 | (C-x <Return> l führt die Funktion set-language-environment aus), um | 1254 | |
| 1284 | in einer laufenden Emacs-Sitzung auf Latin-1 umzuschalten. Dadurch | 1255 | C-x <Return> c utf-8 <Return> C-x C-f foo |
| 1285 | wird erreicht, dass Emacs beim Laden einer Datei (und Speichern | 1256 | |
| 1286 | derselben) standardmäßig die Latin-1-Zeichenkodierung verwendet. Sie | 1257 | Ist die Sprachumgebung (»locale«) Ihres Betriebssystems korrekt auf |
| 1287 | können an der Ziffer 1 unmittelbar vor dem Doppelpunkt links unten in | 1258 | Deutsch gesetzt, verwendet Emacs diese Einstellungen automatisch |
| 1288 | der Statuszeile erkennen, dass Sie Latin-1 aktiviert haben. Beachten | 1259 | (inklusive einer Standard-Kodierung). Wollen Sie andere Einstellungen |
| 1289 | Sie allerdings, dass set-language-environment keinen Einfluss auf die | 1260 | verwenden, geben Sie »C-x <Return> l« ein (ein Tastenkürzel für die |
| 1290 | Kodierung bereits existierender Puffer hat! Haben Sie eine Datei mit | 1261 | Funktion set-language-environment). Mittels |
| 1291 | deutschem Text in Latin-1-Kodierung irrtümlicherweise in einer | 1262 | |
| 1292 | falschen Kodierung geladen, dann müssen Sie diesen Puffer aus Emacs | 1263 | C-x <Return> l latin-1 <Return> |
| 1293 | mit dem Befehl C-x k (kill-buffer) entfernen und die Datei erneut | 1264 | |
| 1294 | laden, nachdem Sie mit set-language-environment auf Latin-1 | 1265 | können Sie z.B. in einer laufenden Emacs-Sitzung auf Latin-1 |
| 1295 | umgeschaltet haben. | 1266 | umzuschalten. Dadurch wird erreicht, dass Emacs beim Laden einer |
| 1267 | Datei (und Speichern derselben) standardmäßig die | ||
| 1268 | Latin-1-Zeichenkodierung verwendet. Sie können an der Ziffer 1 | ||
| 1269 | unmittelbar vor dem Doppelpunkt links unten in der Statuszeile | ||
| 1270 | erkennen, dass Sie Latin-1 aktiviert haben. Beachten Sie allerdings, | ||
| 1271 | dass set-language-environment keinen Einfluss auf die Kodierung | ||
| 1272 | bereits existierender Puffer hat! | ||
| 1296 | 1273 | ||
| 1297 | >> Führen Sie jetzt C-x <Return> l latin-1 <Return> aus und öffnen Sie | 1274 | >> Führen Sie jetzt C-x <Return> l latin-1 <Return> aus und öffnen Sie |
| 1298 | anschließend eine (neue) Datei mit dem Namen `bar' in einem anderen | 1275 | anschließend eine (neue) Datei mit dem Namen »bar« in einem anderen |
| 1299 | Fenster mittels C-x 4 C-f bar <Return>. In der Statuszeile des | 1276 | Fenster mittels C-x 4 C-f bar <Return>. In der Statuszeile des |
| 1300 | zweiten Fensters sehen Sie die Ziffer 1 unmittelbar vor dem | 1277 | zweiten Fensters sehen Sie die Ziffer 1 unmittelbar vor dem |
| 1301 | Doppelpunkt. | 1278 | Doppelpunkt. |
| @@ -1305,10 +1282,10 @@ umgeschaltet haben. | |||
| 1305 | Wie können Sie nun deutsche Umlaute eingeben? Es gibt prinzipiell | 1282 | Wie können Sie nun deutsche Umlaute eingeben? Es gibt prinzipiell |
| 1306 | zwei unterschiedliche Fälle: Sie besitzen eine deutsche Tastatur mit | 1283 | zwei unterschiedliche Fälle: Sie besitzen eine deutsche Tastatur mit |
| 1307 | Tasten für die Umlaute oder Sie haben eine nicht-deutsche Tastatur. | 1284 | Tasten für die Umlaute oder Sie haben eine nicht-deutsche Tastatur. |
| 1308 | Im ersteren Fall sollten Sie die Eingabemethode `german' auswählen, | 1285 | Im ersteren Fall sollten Sie die Eingabemethode »german« auswählen, |
| 1309 | welche direkt die Umlaute auf die entsprechenden Tasten abbildet. Im | 1286 | welche direkt die Umlaute auf die entsprechenden Tasten abbildet. Im |
| 1310 | letzteren Fall gibt es mehrere Möglichkeiten, wovon zwei hier erklärt | 1287 | letzteren Fall gibt es mehrere Möglichkeiten, wovon zwei hier erklärt |
| 1311 | werden sollen, nämlich `latin-1-prefix' und `latin-1-postfix'. Die | 1288 | werden sollen, nämlich »latin-1-prefix« und »latin-1-postfix«. Die |
| 1312 | Präfix-Methode erwartet zuerst den Akzent und dann den Basisbuchstaben | 1289 | Präfix-Methode erwartet zuerst den Akzent und dann den Basisbuchstaben |
| 1313 | ('a wird zu á, "s zu ß etc.), während bei der Postfix-Methode zuerst | 1290 | ('a wird zu á, "s zu ß etc.), während bei der Postfix-Methode zuerst |
| 1314 | der Basisbuchstabe und dann der Akzent einzugeben ist (a" wird zu ä, | 1291 | der Basisbuchstabe und dann der Akzent einzugeben ist (a" wird zu ä, |
| @@ -1326,8 +1303,8 @@ angezeigt. Ist der Eingabemodus einmal gewählt, kann man mit C-\ ihn | |||
| 1326 | ein- und ausschalten. | 1303 | ein- und ausschalten. |
| 1327 | 1304 | ||
| 1328 | >> Geben Sie C-u C-\ latin-1-postfix <Return> ein. Beobachten Sie, | 1305 | >> Geben Sie C-u C-\ latin-1-postfix <Return> ein. Beobachten Sie, |
| 1329 | wie links unten in der Statuszeile die Anzeige von `1:**' auf | 1306 | wie links unten in der Statuszeile die Anzeige von »1:**-« auf |
| 1330 | `1<1:**' springt. Probieren Sie ä einzugeben mittels a". | 1307 | »1<1:**-« springt. Probieren Sie ä einzugeben mittels a". |
| 1331 | 1308 | ||
| 1332 | >> Deaktivieren Sie den Eingabemodus wieder mit C-\. | 1309 | >> Deaktivieren Sie den Eingabemodus wieder mit C-\. |
| 1333 | 1310 | ||
| @@ -1338,9 +1315,9 @@ beschriebenen Eingabemethoden: | |||
| 1338 | 1< latin-1-postfix | 1315 | 1< latin-1-postfix |
| 1339 | 1> latin-1-prefix | 1316 | 1> latin-1-prefix |
| 1340 | 1317 | ||
| 1341 | So bedeutet die Angabe `DE@1:**', dass Sie die Eingabemethode `german' | 1318 | So bedeutet die Angabe »DE@1:**-«, dass Sie die Eingabemethode |
| 1342 | in einem Puffer mit Latin-1-Kodierung verwenden, und dass die Datei | 1319 | »german« in einem Puffer mit Latin-1-Kodierung verwenden, und dass die |
| 1343 | bereits modifiziert wurde. | 1320 | Datei bereits modifiziert wurde. |
| 1344 | 1321 | ||
| 1345 | [Arbeitet Emacs in einem Terminal, werden noch zwei zusätzliche | 1322 | [Arbeitet Emacs in einem Terminal, werden noch zwei zusätzliche |
| 1346 | Spalten zwischen Eingabemethode und Pufferkodierung eingefügt, und | 1323 | Spalten zwischen Eingabemethode und Pufferkodierung eingefügt, und |
| @@ -1356,7 +1333,7 @@ jedoch so mächtig und umfangreich, dass es den Rahmen einer Einführung | |||
| 1356 | spränge, an dieser Stelle mehr zu erklären. Um Sie im weiteren | 1333 | spränge, an dieser Stelle mehr zu erklären. Um Sie im weiteren |
| 1357 | Lernverlauf zu unterstützen, stellt Emacs eine Reihe von | 1334 | Lernverlauf zu unterstützen, stellt Emacs eine Reihe von |
| 1358 | Hilfe-Funktionen zu Verfügung, die alle mit dem Präfix C-h (dem | 1335 | Hilfe-Funktionen zu Verfügung, die alle mit dem Präfix C-h (dem |
| 1359 | Hilfe-Zeichen, `Help character') beginnen. | 1336 | Hilfe-Zeichen, »Help character«) beginnen. |
| 1360 | 1337 | ||
| 1361 | Nach dem Drücken von C-h geben Sie ein weiteres Zeichen ein, um Emacs | 1338 | Nach dem Drücken von C-h geben Sie ein weiteres Zeichen ein, um Emacs |
| 1362 | zu sagen, worüber Sie mehr Informationen brauchen. Sollten Sie | 1339 | zu sagen, worüber Sie mehr Informationen brauchen. Sollten Sie |
| @@ -1364,11 +1341,7 @@ WIRKLICH verloren sein, geben Sie C-h ? ein, und Emacs sagt Ihnen, | |||
| 1364 | welche Art von Hilfe er Ihnen zu Verfügung stellen kann. Haben Sie | 1341 | welche Art von Hilfe er Ihnen zu Verfügung stellen kann. Haben Sie |
| 1365 | C-h versehentlich gedrückt, können Sie mit C-g sofort abbrechen. | 1342 | C-h versehentlich gedrückt, können Sie mit C-g sofort abbrechen. |
| 1366 | 1343 | ||
| 1367 | (Es kann vorkommen, dass bei manchen Computern bzw. Terminals C-h | 1344 | (Alternativen zu C-h sind die F1-Taste und der lange Befehl M-x help |
| 1368 | etwas anderes bedeutet. Da erfahrungsgemäß C-h eine der | ||
| 1369 | meistbenötigten Emacs-Befehle ist, haben Sie einen wirklichen Grund, | ||
| 1370 | sich in diesem Fall beim Systemadministrator zu beschweren. | ||
| 1371 | Alternativen zu C-h sind die F1-Taste und der lange Befehl M-x help | ||
| 1372 | <Return>.) | 1345 | <Return>.) |
| 1373 | 1346 | ||
| 1374 | Die elementarste Hilfestellung gibt C-h c. Drücken Sie C-h, dann das | 1347 | Die elementarste Hilfestellung gibt C-h c. Drücken Sie C-h, dann das |
| @@ -1380,11 +1353,10 @@ Beschreibung des Befehls an. | |||
| 1380 | 1353 | ||
| 1381 | C-p runs the command previous-line | 1354 | C-p runs the command previous-line |
| 1382 | 1355 | ||
| 1383 | Somit wissen Sie den `Namen der Funktion'. Funktionsnamen werden | 1356 | Somit wissen Sie den »Namen der Funktion«. Da Namen in der Regel |
| 1384 | hauptsächlich benutzt, um Emacs anzupassen bzw. zu erweitern. Aber da | 1357 | beschreiben, was die jeweilige Funktion tut, können sie auch als sehr |
| 1385 | Namen in der Regel beschreiben, was die jeweilige Funktion tut, können | 1358 | kurze Beschreibung dienen -- ausreichend, um Sie an Befehle zu |
| 1386 | sie auch als sehr kurze Beschreibung dienen -- ausreichend, um Sie an | 1359 | erinnern, die Sie bereits gelernt haben. |
| 1387 | Befehle zu erinnern, die Sie bereits gelernt haben. | ||
| 1388 | 1360 | ||
| 1389 | Aus mehr als einem Zeichen bestehende Befehle, z.B. C-x C-s oder | 1361 | Aus mehr als einem Zeichen bestehende Befehle, z.B. C-x C-s oder |
| 1390 | <ESC>v, sind ebenfalls erlaubt nach C-h c. | 1362 | <ESC>v, sind ebenfalls erlaubt nach C-h c. |
| @@ -1406,20 +1378,20 @@ Hier einige weitere nützliche Optionen von C-h: | |||
| 1406 | C-h f Beschreibt eine Funktion. Sie müssen den Namen der | 1378 | C-h f Beschreibt eine Funktion. Sie müssen den Namen der |
| 1407 | Funktion eingeben. | 1379 | Funktion eingeben. |
| 1408 | 1380 | ||
| 1409 | >> Probieren Sie C-h f previous-line<Return>. | 1381 | >> Probieren Sie C-h f previous-line <Return>. |
| 1410 | Alle Information über den C-p-Befehl wird angezeigt. | 1382 | Alle Information über den C-p-Befehl wird angezeigt. |
| 1411 | 1383 | ||
| 1412 | Sie können die Tabulator-Taste stets benützen, um den Namen des | 1384 | Sie können die Tabulator-Taste stets benützen, um den Namen des |
| 1413 | jeweiligen Befehls zu vervollständigen. Geben Sie z.B. `C-h f | 1385 | jeweiligen Befehls zu vervollständigen. Geben Sie z.B. »C-h f |
| 1414 | previous<TAB>' ein, dann werden alle Befehle angezeigt, deren Namen | 1386 | previous<TAB>« ein, dann werden alle Befehle angezeigt, deren Namen |
| 1415 | mit `previous-' beginnen. Ergänzen Sie die Zeichenkette auf | 1387 | mit »previous-« beginnen. Ergänzen Sie die Zeichenkette auf |
| 1416 | `previous-l' und drücken Sie dann <TAB>, bleibt nur noch der Befehl | 1388 | »previous-l« und drücken Sie dann <TAB>, bleibt nur noch der Befehl |
| 1417 | `previous-line' übrig, und Sie können mit <Return> abschließen. | 1389 | »previous-line« übrig, und Sie können mit <Return> abschließen. |
| 1418 | 1390 | ||
| 1419 | Ein ähnlicher Befehl ist C-h v. Er zeigt den Wert und die | 1391 | Ein ähnlicher Befehl ist C-h v. Er zeigt den Wert und die |
| 1420 | Dokumentation von Variablen, deren Werte man ändern kann (um Emacs an | 1392 | Dokumentation von Variablen, deren Werte man ändern kann (um |
| 1421 | persönliche Bedürfnisse anzupassen). Auch hier kann man die | 1393 | beispielsweise Emacs an persönliche Bedürfnisse anzupassen). Auch |
| 1422 | Tabulator-Taste zur Vervollständigung benutzen. | 1394 | hier kann man die Tabulator-Taste zur Vervollständigung benutzen. |
| 1423 | 1395 | ||
| 1424 | C-h a Ein Befehls-Apropos. Gibt man ein Schlüsselwort ein, | 1396 | C-h a Ein Befehls-Apropos. Gibt man ein Schlüsselwort ein, |
| 1425 | zeigt Emacs alle Befehle, die dieses Schlüsselwort | 1397 | zeigt Emacs alle Befehle, die dieses Schlüsselwort |
| @@ -1429,9 +1401,9 @@ Tabulator-Taste zur Vervollständigung benutzen. | |||
| 1429 | einem oder zwei Zeichen) aufgelistet, welche den | 1401 | einem oder zwei Zeichen) aufgelistet, welche den |
| 1430 | gleichen Befehl startet. | 1402 | gleichen Befehl startet. |
| 1431 | 1403 | ||
| 1432 | >> Geben Sie C-h a file<Return> ein. | 1404 | >> Geben Sie C-h a file <Return> ein. |
| 1433 | 1405 | ||
| 1434 | Alle M-x-Befehle, die das Wort `file' in ihrem Namen enthalten, werden | 1406 | Alle M-x-Befehle, die das Wort »file« in ihrem Namen enthalten, werden |
| 1435 | angezeigt. Beachten Sie, dass auch C-x C-f aufgelistet wird neben dem | 1407 | angezeigt. Beachten Sie, dass auch C-x C-f aufgelistet wird neben dem |
| 1436 | zugehörigen langen Namen, find-file. | 1408 | zugehörigen langen Namen, find-file. |
| 1437 | 1409 | ||
| @@ -1440,30 +1412,26 @@ zugehörigen langen Namen, find-file. | |||
| 1440 | >> Schließen Sie das Hilfefenster mit C-x 1. | 1412 | >> Schließen Sie das Hilfefenster mit C-x 1. |
| 1441 | 1413 | ||
| 1442 | C-h i Dieser Befehl öffnet einen speziellen Puffer, um | 1414 | C-h i Dieser Befehl öffnet einen speziellen Puffer, um |
| 1443 | Online-Handbücher zu lesen (im `Info'-Format), die auf | 1415 | Handbücher zu lesen (im »Info«-Format), die auf dem |
| 1444 | dem verwendeten Computersystem installiert sind. | 1416 | verwendeten Computersystem installiert sind. Geben |
| 1445 | Geben Sie z.B. m emacs <Return> ein, um das | 1417 | Sie z.B. m emacs <Return> ein, um das Emacs-Handbuch |
| 1446 | Emacs-Handbuch zu lesen. Haben Sie `Info' noch nie | 1418 | zu lesen. Haben Sie »Info« noch nie benutzt, tippen |
| 1447 | benutzt, tippen Sie ?, und Emacs führt Sie Schritt für | 1419 | Sie ?, und Emacs führt Sie Schritt für Schritt durch |
| 1448 | Schritt durch die Möglichkeiten des Info-Modus. Wenn | 1420 | die Möglichkeiten des Info-Modus. Wenn Sie diese |
| 1449 | Sie diese Einführung fertiggelesen haben, sollten Sie | 1421 | Einführung fertiggelesen haben, sollten Sie das |
| 1450 | das Info-Handbuch für Emacs als primäre Dokumentation | 1422 | Info-Handbuch für Emacs als primäre Dokumentation |
| 1451 | benutzen. | 1423 | benutzen. |
| 1452 | 1424 | ||
| 1453 | 1425 | ||
| 1454 | * SCHLUSSBEMERKUNG | 1426 | * SCHLUSSBEMERKUNG |
| 1455 | ------------------ | 1427 | ------------------ |
| 1456 | 1428 | ||
| 1457 | Das Wichtigste: Emacs wird mit C-x C-c beendet und mit C-z temporär | 1429 | Das Wichtigste: Emacs wird mit C-x C-c beendet. |
| 1458 | unterbrochen. | ||
| 1459 | 1430 | ||
| 1460 | Diese Einführung soll für alle neuen Benutzer von Emacs verständlich | 1431 | Diese Einführung soll für alle neuen Benutzer von Emacs verständlich |
| 1461 | sein. Wenn daher etwas unklar sein sollte, hadern Sie nicht mit sich | 1432 | sein. Wenn daher etwas unklar sein sollte, hadern Sie nicht mit sich |
| 1462 | selbst. Schreiben Sie an die Free Software Foundation oder an den | 1433 | selbst. Schreiben Sie an die Free Software Foundation, den Autor oder |
| 1463 | Autor und erläutern Sie, was für Sie unklar geblieben ist. Eine | 1434 | den Übersetzer und erläutern Sie, was für Sie unklar geblieben ist. |
| 1464 | weitere Kontaktadresse ist die Mailing-Liste `de@li.org', in der | ||
| 1465 | Probleme mit der Adaption von GNU-Programmen an das Deutsche | ||
| 1466 | diskutiert werden. | ||
| 1467 | 1435 | ||
| 1468 | 1436 | ||
| 1469 | * RECHTLICHES | 1437 | * RECHTLICHES |
diff --git a/etc/tutorials/TUTORIAL.sl b/etc/tutorials/TUTORIAL.sl index ef1fecbc86a..804fe366d50 100644 --- a/etc/tutorials/TUTORIAL.sl +++ b/etc/tutorials/TUTORIAL.sl | |||
| @@ -1,41 +1,42 @@ | |||
| 1 | Prvo berilo za Emacs. Pogoji uporabe in raz¹irjanja so navedeni na koncu. | 1 | Prvo berilo za Emacs. Pogoji uporabe in razÅ¡irjanja so navedeni na koncu. |
| 2 | 2 | ||
| 3 | Ukazi v Emacsu v splo¹nem vkljuèujejo tipki CONTROL (vèasih oznaèeni | 3 | Ukazi v Emacsu v sploÅ¡nem vkljuÄujejo tipki CONTROL (vÄasih oznaÄeni |
| 4 | CTRL ali CTL) in META (vèasih oznaèena EDIT ali ALT). Namesto, da bi ju | 4 | CTRL ali CTL) in META (vÄasih oznaÄena EDIT ali ALT). Namesto, da bi ju |
| 5 | vedno izpisali s celim imenom, bomo uporabili naslednji okraj¹avi: | 5 | vedno izpisali s celim imenom, bomo uporabili naslednji okrajÅ¡avi: |
| 6 | 6 | ||
| 7 | C-<znak> pomeni, da moramo dr¾ati pritisnjeno tipko CONTROL, ko | 7 | C-<znak> pomeni, da moramo držati pritisnjeno tipko CONTROL, ko |
| 8 | vtipkamo <znak>. Oznaka C-f tako pomeni: dr¾imo pritisnjeno | 8 | vtipkamo <znak>. Oznaka C-f tako pomeni: držimo pritisnjeno |
| 9 | tipko CONTROL in pritisnemo tipko f. | 9 | tipko CONTROL in pritisnemo tipko f. |
| 10 | M-<znak> pomeni, da moramo dr¾ati pritisnjeno tipko META, EDIT ali | 10 | M-<znak> pomeni, da moramo držati pritisnjeno tipko META, EDIT ali |
| 11 | ALT, ko vtipkamo <znak>. Èe na tipkovnici ni tipk META, EDIT | 11 | ALT, ko vtipkamo <znak>. ÄŒe na tipkovnici ni tipk META, EDIT |
| 12 | ali ALT, pritisnemo tipko ESC, jo spustimo in zatem | 12 | ali ALT, pritisnemo tipko ESC, jo spustimo in zatem |
| 13 | pritisnemo tipko <chr>. Tipko ESC bomo oznaèevali z <ESC>. | 13 | pritisnemo tipko <chr>. Tipko ESC bomo oznaÄevali z <ESC>. |
| 14 | 14 | ||
| 15 | Pomembno: Emacs zapustimo z ukazom C-x C-c (dva znaka). | 15 | Pomembno: Emacs zapustimo z ukazom C-x C-c (dva znaka). |
| 16 | V uèbeniku so vaje, s katerimi preskusite nove ukaze. Oznaèujeta jih | 16 | Delno vneÅ¡en ukaz prekinete s C-g. |
| 17 | znaka ,>>` ob levem robu. Zgled: | 17 | V uÄbeniku so vaje, s katerimi preskusite nove ukaze. OznaÄujeta jih |
| 18 | znaka »>>« ob levem robu. Zgled: | ||
| 18 | <<Blank lines inserted here by startup of help-with-tutorial>> | 19 | <<Blank lines inserted here by startup of help-with-tutorial>> |
| 19 | [Sredina strani je iz didaktiènih razlogov prazna. Besedilo se nadaljuje spodaj] | 20 | [Sredina strani je iz didaktiÄnih razlogov prazna. Besedilo se nadaljuje spodaj] |
| 20 | >> Vtipkajte zdaj ukaz C-v (View next screen, Prika¾i naslednji zaslon), | 21 | >> Vtipkajte zdaj ukaz C-v (View next screen, Prikaži naslednji zaslon), |
| 21 | da se premaknete na naslednji zaslon (kar poskusite, pritisnite | 22 | da se premaknete na naslednji zaslon (kar poskusite, pritisnite |
| 22 | hkrati tipko CONTROL in V). Od zdaj naprej boste morali to | 23 | hkrati tipko CONTROL in V). Od zdaj naprej boste morali to |
| 23 | napraviti sami vsakiè, ko pridete do konca zaslona. | 24 | napraviti sami vsakiÄ, ko pridete do konca zaslona. |
| 24 | 25 | ||
| 25 | Ste opazili, da sta se dve vrstici s prej¹njega zaslona ponovili? Ta | 26 | Ste opazili, da sta se dve vrstici s prejÅ¡njega zaslona ponovili? Ta |
| 26 | kontinuiteta olaj¹a branje pri skakanju s strani na stran. | 27 | kontinuiteta olajÅ¡a branje pri skakanju s strani na stran. |
| 27 | 28 | ||
| 28 | Prva stvar, ki si jo morate zapomniti, je, kako se premikate po | 29 | Prva stvar, ki si jo morate zapomniti, je, kako se premikate po |
| 29 | datoteki. Zdaj ¾e veste, da se premaknete za cel zaslon naprej z | 30 | datoteki. Zdaj že veste, da se premaknete za cel zaslon naprej z |
| 30 | ukazom C-v. Za cel zaslon nazaj pa se premaknete z ukazom M-v | 31 | ukazom C-v. Za cel zaslon nazaj pa se premaknete z ukazom M-v |
| 31 | (pritisnite tipko META in jo dr¾ite ter pritisnite tipko v, ali pa | 32 | (pritisnite tipko META in jo držite ter pritisnite tipko v, ali pa |
| 32 | pritisnite in spustite <ESC> ter zatem pritisnite tipko v, èe tipke | 33 | pritisnite in spustite <ESC> ter zatem pritisnite tipko v, Äe tipke |
| 33 | META, EDIT ali ALT na va¹i tipkovnici ni). | 34 | META, EDIT ali ALT na vaÅ¡i tipkovnici ni). |
| 34 | 35 | ||
| 35 | >> Nekajkrat pritisnite M-v in C-v, da vidite, kako ukaza delujeta. | 36 | >> Nekajkrat pritisnite M-v in C-v, da vidite, kako ukaza delujeta. |
| 36 | 37 | ||
| 37 | 38 | ||
| 38 | * POVZETEK | 39 | * povzetek |
| 39 | ---------- | 40 | ---------- |
| 40 | 41 | ||
| 41 | Za pregled celega zaslona besedila so uporabni naslednji ukazi: | 42 | Za pregled celega zaslona besedila so uporabni naslednji ukazi: |
| @@ -43,110 +44,113 @@ Za pregled celega zaslona besedila so uporabni naslednji ukazi: | |||
| 43 | C-v Premik se za cel zaslon naprej | 44 | C-v Premik se za cel zaslon naprej |
| 44 | M-v Premik se za cel zaslon nazaj | 45 | M-v Premik se za cel zaslon nazaj |
| 45 | C-l Cel zaslon premaknemo tako, da je zdaj po vertikali | 46 | C-l Cel zaslon premaknemo tako, da je zdaj po vertikali |
| 46 | osredninjen okoli besedila, kjer se nahaja kazalèek | 47 | osredninjen okoli besedila, kjer se nahaja kazalÄek |
| 47 | (znak v C-l je èrka L, ne ¹tevka 1) | 48 | (znak v C-l je Ärka L, ne Å¡tevka 1) |
| 48 | 49 | ||
| 49 | >> Poi¹èite kazalèek na zaslonu in si zapomnite besedilo okoli njega. | 50 | >> PoiÅ¡Äite kazalÄek na zaslonu in si zapomnite besedilo okoli njega. |
| 50 | Vtipkajte C-l. | 51 | Zatem vtipkajte C-l. Ponovno poiÅ¡Äite kazalÄek. Opazili boste, da |
| 51 | Ponovno poi¹èite kazalèek. Besedilo okoli njega je ostalo isto. | 52 | je besedilo okoli njega ostalo isto, vendar se je pomaknilo na sredo |
| 53 | zaslona. Če še enkrat pritisnite C-l, se bo ta vrstica pomaknila na | ||
| 54 | vrh zaslona. Pritisnite C-l še enkrat, in vrstica se bo pomaknila | ||
| 55 | na dno zaslona. | ||
| 52 | 56 | ||
| 53 | Za premikanje za cel zaslon naprej ali nazaj lahko tipkovnicah, ki | 57 | Za premikanje za cel zaslon naprej ali nazaj lahko tipkovnicah, ki |
| 54 | imajo ti tipki, uporabljate tudi PageUp in PageDown. Opisan postopek s | 58 | imajo ti tipki, uporabljate tudi PageUp in PageDown. Opisan postopek s |
| 55 | C-v in M-v pa deluje povsod. | 59 | C-v in M-v pa deluje povsod. |
| 56 | 60 | ||
| 57 | 61 | ||
| 58 | * PREMIKANJE KAZALÈKA | 62 | * PREMIKANJE KAZALÄŒKA |
| 59 | --------------------- | 63 | --------------------- |
| 60 | 64 | ||
| 61 | Premiki za celo stran naprej in nazaj so sicer uporabni, ampak kako pa | 65 | Premiki za celo stran naprej in nazaj so sicer uporabni, ampak kako pa |
| 62 | pridemo do izbranega mesta na zaslonu? | 66 | pridemo do izbranega mesta na zaslonu? |
| 63 | 67 | ||
| 64 | Naèinov je veè. Najosnovnej¹i je uporaba ukazov C-p, C-b, C-f in | 68 | NaÄinov je veÄ. NajosnovnejÅ¡i je uporaba ukazov C-p, C-b, C-f in |
| 65 | C-n. Ti po vrsti premaknejo kazalèek v prej¹njo vrstico, znak nazaj, | 69 | C-n. Ti po vrsti premaknejo kazalÄek v prejÅ¡njo vrstico, znak nazaj, |
| 66 | znak naprej, in v naslednjo vrstico. Ti ¹tirje ukazi so enakovredni | 70 | znak naprej, in v naslednjo vrstico. Ti Å¡tirje ukazi so enakovredni |
| 67 | kurzorskim tipkam: | 71 | kurzorskim tipkam: |
| 68 | 72 | ||
| 69 | prej¹nja vrstica, C-p | 73 | prejÅ¡nja vrstica, C-p |
| 70 | : | 74 | : |
| 71 | : | 75 | : |
| 72 | nazaj, C-b .... trenutni polo¾aj kazalèka .... naprej, C-f | 76 | nazaj, C-b .... trenutni položaj kazalÄka .... naprej, C-f |
| 73 | : | 77 | : |
| 74 | : | 78 | : |
| 75 | naslednja vrstica, C-n | 79 | naslednja vrstica, C-n |
| 76 | 80 | ||
| 77 | >> S pritiski na C-n ali C-p premaknite kazalèek v sredinsko vrstico | 81 | >> S pritiski na C-n ali C-p premaknite kazalÄek v sredinsko vrstico |
| 78 | na diagramu zgoraj. Zatem pritisnite C-l. S tem diagram postavite na | 82 | na diagramu zgoraj. Zatem pritisnite C-l. S tem diagram postavite na |
| 79 | sredino zaslona. | 83 | sredino zaslona. |
| 80 | 84 | ||
| 81 | V angle¹èini ima izbor tipk nazoren pomen. P kot ,previous` | 85 | V angleÅ¡Äini ima izbor tipk nazoren pomen. P kot »previous« |
| 82 | (prej¹nji), N kot ,next` (naslednji), B kot ,backward` (nazaj) in F | 86 | (prejÅ¡nji), N kot »next« (naslednji), B kot »backward« (nazaj) in F |
| 83 | kot ,forward` (naprej). Te osnovne ukaze za premikanje kazalèka boste | 87 | kot »forward« (naprej). Te osnovne ukaze za premikanje kazalÄka boste |
| 84 | uporabljali ves èas. | 88 | uporabljali ves Äas. |
| 85 | 89 | ||
| 86 | >> Nekajkrat pritisnite C-n, da pride kazalèek do te vrstice. | 90 | >> Nekajkrat pritisnite C-n, da pride kazalÄek do te vrstice. |
| 87 | 91 | ||
| 88 | >> Z nekaj C-f se pomaknite na desno na sredo vrstice, nato pa nekajkrat | 92 | >> Z nekaj C-f se pomaknite na desno na sredo vrstice, nato pa nekajkrat |
| 89 | pritisnite C-p. Opazujte, kaj se dogaja s kazalèkom na sredini | 93 | pritisnite C-p. Opazujte, kaj se dogaja s kazalÄkom na sredini |
| 90 | vrstice. | 94 | vrstice. |
| 91 | 95 | ||
| 92 | Vsaka vrstice v besedilu je zakljuèena z znakom za novo vrstico | 96 | Vsaka vrstice v besedilu je zakljuÄena z znakom za novo vrstico |
| 93 | (angl. Newline). Ta loèuje vrstico v besedilu od naslednje. Tudi | 97 | (angl. Newline). Ta loÄuje vrstico v besedilu od naslednje. (Tudi |
| 94 | zadnja vrstica v datoteki mora biti zaljuèena z znakom za novo vrstico | 98 | zadnja vrstica v datoteki je po navadi zakljuÄena z znakom za novo |
| 95 | (èeprav tega Emacs ne zahteva). | 99 | vrstico, Äeprav Emacs tega ne zahteva.) |
| 96 | 100 | ||
| 97 | >> Poskusite ukaz C-b, ko je kazalèek na zaèetku vrstice. Kazalèek se | 101 | >> Poskusite ukaz C-b, ko je kazalÄek na zaÄetku vrstice. KazalÄek se |
| 98 | mora premakniti na konec prej¹nje vrstice. To je zato, ker se je | 102 | mora premakniti na konec prejÅ¡nje vrstice. To je zato, ker se je |
| 99 | ravnokar premaknil prek znaka za konec vrstice. | 103 | ravnokar premaknil prek znaka za konec vrstice. |
| 100 | 104 | ||
| 101 | Ukaz C-f premika kazalèek prek znaka za novo vrstico enako kot C-b. | 105 | Ukaz C-f premika kazalÄek prek znaka za novo vrstico enako kot C-b. |
| 102 | 106 | ||
| 103 | >> Poskusite ¹e nekajkrat pritisniti C-b, da dobite obèutek za | 107 | >> Poskusite Å¡e nekajkrat pritisniti C-b, da dobite obÄutek za |
| 104 | premikanje kazalèka. Potem nekajkrat poskusite C-f, da pridete do konca | 108 | premikanje kazalÄka. Potem nekajkrat poskusite C-f, da pridete do konca |
| 105 | vrstice. ©e enkrat pritisnite C-f, da skoèite v naslednjo vrstico. | 109 | vrstice. Å e enkrat pritisnite C-f, da skoÄite v naslednjo vrstico. |
| 106 | 110 | ||
| 107 | Ko s kazalèkom dose¾ete zgornji ali spodnji rob zaslona, se besedilo | 111 | Ko s kazalÄkom dosežete zgornji ali spodnji rob zaslona, se besedilo |
| 108 | toliko premakne, da kazalèek ostane na zaslonu. V angle¹èini se temu | 112 | toliko premakne, da kazalÄek ostane na zaslonu. V angleÅ¡Äini se temu |
| 109 | pravi ,,scrolling``. To omogoèa, da lahko premaknemo kazalèek na | 113 | pravi »scrolling«. To omogoÄa, da lahko premaknemo kazalÄek na |
| 110 | katerokoli mesto v besedilu, a vseeno ostanemo na zaslonu. | 114 | katerokoli mesto v besedilu, a vseeno ostanemo na zaslonu. |
| 111 | 115 | ||
| 112 | >> Poskusite kazalèek pripeljati s C-n èisto do dna zaslona in si oglejte, | 116 | >> Poskusite kazalÄek pripeljati s C-n Äisto do dna zaslona in si oglejte, |
| 113 | kaj se zgodi. | 117 | kaj se zgodi. |
| 114 | 118 | ||
| 115 | Èe se vam zdi premikanje po en znak prepoèasno, se lahko premikate za | 119 | ÄŒe se vam zdi premikanje po en znak prepoÄasno, se lahko premikate za |
| 116 | celo besedo. M-f (META-f) premakne kazalèek za eno besedo naprej, M-b | 120 | celo besedo. M-f (META-f) premakne kazalÄek za eno besedo naprej, M-b |
| 117 | pa za besedo nazaj. | 121 | pa za besedo nazaj. |
| 118 | 122 | ||
| 119 | >> Poskusite nekajkrat M-f in M-b. | 123 | >> Poskusite nekajkrat M-f in M-b. |
| 120 | 124 | ||
| 121 | Èe je kazalèek sredi besede, ga M-f prestavi na konec besede. Èe je v | 125 | ÄŒe je kazalÄek sredi besede, ga M-f prestavi na konec besede. ÄŒe je v |
| 122 | belini med besedami, ga M-f premakne na konec naslednje besede. M-b | 126 | belini med besedami, ga M-f premakne na konec naslednje besede. M-b |
| 123 | deluje podobno, a v nasprotni smeri. | 127 | deluje podobno, a v nasprotni smeri. |
| 124 | 128 | ||
| 125 | >> Nekajkrat poskusite M-f in M-b, vmes pa ¹e nekaj C-f in | 129 | >> Nekajkrat poskusite M-f in M-b, vmes pa Å¡e nekaj C-f in |
| 126 | C-b. Opazujte uèinke M-f in M-b, ko je kazalèek sredi besede ali | 130 | C-b. Opazujte uÄinke M-f in M-b, ko je kazalÄek sredi besede ali |
| 127 | med besedami. | 131 | med besedami. |
| 128 | 132 | ||
| 129 | Ste opazili paralelo med C-f in C-b na eni strani ter M-f in M-b na | 133 | Ste opazili paralelo med C-f in C-b na eni strani ter M-f in M-b na |
| 130 | drugi? V Emacsu se dostikrat ukazi Meta nana¹ajo na operacije nad | 134 | drugi? V Emacsu se dostikrat ukazi Meta nanaÅ¡ajo na operacije nad |
| 131 | enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control | 135 | enotami jezika (besede, stavki, odstavki), medtem ko se ukazi Control |
| 132 | nana¹ajo na operacije, neodvisne od zvrsti besedila (znaki, vrstice | 136 | nanaÅ¡ajo na operacije, neodvisne od zvrsti besedila (znaki, vrstice |
| 133 | ipd.). | 137 | ipd.). |
| 134 | 138 | ||
| 135 | Podobna zveza je tudi med vrsticami in stavki: ukaza C-a in C-e | 139 | Podobna zveza je tudi med vrsticami in stavki: ukaza C-a in C-e |
| 136 | premakneta kazalèek na zaèetek oz. konec vrstice, M-a in M-e pa na | 140 | premakneta kazalÄek na zaÄetek oz. konec vrstice, M-a in M-e pa na |
| 137 | zaèetek oz. konec stavka. | 141 | zaÄetek oz. konec stavka. |
| 138 | 142 | ||
| 139 | >> Poskusite nekaj ukazov C-a, potem pa nekaj ukazov C-e. | 143 | >> Poskusite nekaj ukazov C-a, potem pa nekaj ukazov C-e. |
| 140 | Poskusite nekaj ukazov M-a, potem pa nekaj ukazov M-e. | 144 | Poskusite nekaj ukazov M-a, potem pa nekaj ukazov M-e. |
| 141 | 145 | ||
| 142 | Ste opazili, da ponovljeni C-a ne napravijo niè, ponovljeni M-a pa se | 146 | Ste opazili, da ponovljeni C-a ne napravijo niÄ, ponovljeni M-a pa se |
| 143 | premikajo naprej? Èeprav se ne obna¹ata enako, pa je vendar obna¹anje | 147 | premikajo naprej? ÄŒeprav se ne obnaÅ¡ata enako, pa je vendar obnaÅ¡anje |
| 144 | enega in drugega po svoje naravno. | 148 | enega in drugega po svoje naravno. |
| 145 | 149 | ||
| 146 | Polo¾aju kazalèka na zaslonu pravimo tudi ,,point``, toèka. | 150 | Položaju kazalÄka na zaslonu pravimo tudi »point«, toÄka. |
| 147 | Parafrazirano: kazalèek ka¾e na zaslonu, kje je toèka v besedilu. | 151 | Parafrazirano: kazalÄek kaže na zaslonu, kje je toÄka v besedilu. |
| 148 | 152 | ||
| 149 | Povzetek preprostih ukazov za premikanje kazalèka, vkljuèno s premiki | 153 | Povzetek preprostih ukazov za premikanje kazalÄka, vkljuÄno s premiki |
| 150 | po besedo in stavek: | 154 | po besedo in stavek: |
| 151 | 155 | ||
| 152 | C-f Premik za znak naprej | 156 | C-f Premik za znak naprej |
| @@ -156,335 +160,329 @@ po besedo in stavek: | |||
| 156 | M-b Premik za besedo nazaj | 160 | M-b Premik za besedo nazaj |
| 157 | 161 | ||
| 158 | C-n Premik v naslednjo vrstico | 162 | C-n Premik v naslednjo vrstico |
| 159 | C-p Premik v prej¹njo vrstico | 163 | C-p Premik v prejÅ¡njo vrstico |
| 160 | 164 | ||
| 161 | C-a Premik na zaèetek vrstice | 165 | C-a Premik na zaÄetek vrstice |
| 162 | C-e Premik na konec vrstice | 166 | C-e Premik na konec vrstice |
| 163 | 167 | ||
| 164 | M-a Premik na zaèetek stavka | 168 | M-a Premik na zaÄetek stavka |
| 165 | M-e Premik na konec stavka | 169 | M-e Premik na konec stavka |
| 166 | 170 | ||
| 167 | >> Za vajo nekajkrat poskusite vsakega od teh ukazov. | 171 | >> Za vajo nekajkrat poskusite vsakega od teh ukazov. |
| 168 | To so najpogosteje uporabljani ukazi. | 172 | To so najpogosteje uporabljani ukazi. |
| 169 | 173 | ||
| 170 | ©e dva pomembna ukaza za premikanje kazalèka sta M-< (META-manj¹i od), | 174 | Å e dva pomembna ukaza za premikanje kazalÄka sta M-< (META-manjÅ¡i od), |
| 171 | ki ga premakne na zaèetek datoteke, in M-> (META-veèji od), ki ga | 175 | ki ga premakne na zaÄetek datoteke, in M-> (META-veÄji od), ki ga |
| 172 | premakne na konec datoteke. | 176 | premakne na konec datoteke. |
| 173 | 177 | ||
| 174 | Na ameri¹kih tipkovnicah najdete znak < nad vejico in morate | 178 | Na ameriÅ¡kih tipkovnicah najdete znak < nad vejico in morate |
| 175 | pritisniti tipko Shift, da pridete do njega. Z ukazom M-< je enako - | 179 | pritisniti tipko Shift, da pridete do njega. Z ukazom M-< je enako - |
| 176 | prav tako morate pritisniti tipko Shift, sicer moste izvedli drug | 180 | prav tako morate pritisniti tipko Shift, sicer moste izvedli drug |
| 177 | ukaz, Meta-vejica. Na na¹ih tipkovnicah sta oba znaka na isti tipko, | 181 | ukaz, Meta-vejica. Na naÅ¡ih tipkovnicah sta oba znaka na isti tipko, |
| 178 | in za ukaz M-> morate pritisniti ¹e tipko Shift. | 182 | in za ukaz M-> morate pritisniti Å¡e tipko Shift. |
| 179 | 183 | ||
| 180 | >> Poskusite zdaj M-<, skok na zaèetek tega uèbenika. | 184 | >> Poskusite zdaj M-<, skok na zaÄetek tega uÄbenika. |
| 181 | Potem se vrnite nazaj z zaporednimi C-v. | 185 | Potem se vrnite nazaj z zaporednimi C-v. |
| 182 | 186 | ||
| 183 | >> Poskusite zdaj M->, skok na konec tega uèbenika. | 187 | >> Poskusite zdaj M->, skok na konec tega uÄbenika. |
| 184 | Potem se vrnite nazaj z zaporednimi M-v. | 188 | Potem se vrnite nazaj z zaporednimi M-v. |
| 185 | 189 | ||
| 186 | Èe ima va¹a tipkovnica kurzorske tipke, lahko premikate kazalèek po | 190 | ÄŒe ima vaÅ¡a tipkovnica kurzorske tipke, lahko premikate kazalÄek po |
| 187 | zaslonu tudi z njimi. Vseeno priporoèamo, da se privadite ukazov C-b, | 191 | zaslonu tudi z njimi. Vseeno priporoÄamo, da se privadite ukazov C-b, |
| 188 | C-f, C-n in C-p, in to iz treh razlogov. Prviè, delujejo na èisto vseh | 192 | C-f, C-n in C-p, in to iz treh razlogov. PrviÄ, delujejo na Äisto vseh |
| 189 | terminalih. Drugiè, z nekaj prakse v Emacsu boste opazili, da je | 193 | terminalih. DrugiÄ, z nekaj prakse v Emacsu boste opazili, da je |
| 190 | tipkanje ukazov s CONTROL hitrej¹e od tipkanja s kurzorskimi tipkami, ker | 194 | tipkanje ukazov s CONTROL hitrejÅ¡e od tipkanja s kurzorskimi tipkami, ker |
| 191 | ni treba ves èas premikati desnice s tipkovnice na kurzorske tipke in | 195 | ni treba ves Äas premikati desnice s tipkovnice na kurzorske tipke in |
| 192 | nazaj. In tretjiè, ko se enkrat navadite teh ukazov s CONTROL, se boste | 196 | nazaj. In tretjiÄ, ko se enkrat navadite teh ukazov s CONTROL, se boste |
| 193 | enostavneje nauèili tudi bolj zapletenih ukazov za premikanje kazalèka. | 197 | enostavneje nauÄili tudi bolj zapletenih ukazov za premikanje kazalÄka. |
| 194 | 198 | ||
| 195 | Veèini ukazov v Emacsu lahko podamo ¹tevilèni argument; najveèkrat ta | 199 | VeÄini ukazov v Emacsu lahko podamo Å¡tevilÄni argument; najveÄkrat ta |
| 196 | pove, kolikokrat zapovrstjo naj se ukaz izvede. Veèkratno ponovitev | 200 | pove, kolikokrat zapovrstjo naj se ukaz izvede. VeÄkratno ponovitev |
| 197 | ukaza izvedemo tako, da najprej vtipkamo C-u, zatem ¹tevilo, | 201 | ukaza izvedemo tako, da najprej vtipkamo C-u, zatem Å¡tevilo, |
| 198 | kolikokrat naj se ukaz ponovi, in nazadnje ¾eljeni ukaz. Èe ima va¹a | 202 | kolikokrat naj se ukaz ponovi, in nazadnje željeni ukaz. ÄŒe ima vaÅ¡a |
| 199 | tipkovnica tipko META (ali EDIT ali ALT), lahko izpustite ukaz C-u in | 203 | tipkovnica tipko META (ali EDIT ali ALT), lahko izpustite ukaz C-u in |
| 200 | namesto tega vtipkate ¹tevilo ponovitev, medtem ko dr¾ite pritisnjeno | 204 | namesto tega vtipkate Å¡tevilo ponovitev, medtem ko držite pritisnjeno |
| 201 | tipko META. Druga metoda je sicer kraj¹a, priporoèamo pa prvo, ker | 205 | tipko META. Druga metoda je sicer krajÅ¡a, priporoÄamo pa prvo, ker |
| 202 | deluje na vseh terminalih. Tak¹en ¹tevilèni argument je ,,prefiksni`` | 206 | deluje na vseh terminalih. TakÅ¡en Å¡tevilÄni argument je »prefiksni« |
| 203 | argument, ker vnesemo argument pred ukazom, na katerega se nana¹a. | 207 | argument, ker vnesemo argument pred ukazom, na katerega se nanaÅ¡a. |
| 204 | 208 | ||
| 205 | Zgled: C-u 8 C-f premakne kazalèek za osem znakov naprej. | 209 | Zgled: C-u 8 C-f premakne kazalÄek za osem znakov naprej. |
| 206 | 210 | ||
| 207 | >> Poskusite s primernim argumentom za ¹tevilo ponovitev ukaza | 211 | >> Poskusite s primernim argumentom za Å¡tevilo ponovitev ukaza |
| 208 | C-n ali C-p priti èim bli¾e tej vrstici v enem samem skoku. | 212 | C-n ali C-p priti Äim bliže tej vrstici v enem samem skoku. |
| 209 | 213 | ||
| 210 | Veèina ukazov, ne pa vsi, uporablja ¹tevilèni argument kot ¹tevilo | 214 | VeÄina ukazov, ne pa vsi, uporablja Å¡tevilÄni argument kot Å¡tevilo |
| 211 | ponovitev ukaza. Nekateri ukazi - nobeden od tistih, ki smo si jih | 215 | ponovitev ukaza. Nekateri ukazi - nobeden od tistih, ki smo si jih |
| 212 | ogledali do zdaj - ga uporabljajo kot stikalo: s podanim prefiksnim | 216 | ogledali do zdaj - ga uporabljajo kot stikalo: s podanim prefiksnim |
| 213 | argumentom napravi ukaz nekaj drugega kot obièajno. | 217 | argumentom napravi ukaz nekaj drugega kot obiÄajno. |
| 214 | 218 | ||
| 215 | Ukaza C-v in M-v sta tudi izjemi, a drugaèni. Èe jima podamo argument, | 219 | Ukaza C-v in M-v sta tudi izjemi, a drugaÄni. ÄŒe jima podamo argument, |
| 216 | premakneta zaslon za navedeno ¹tevilo vrstic, ne pa zaslonov. Ukaz C-u | 220 | premakneta zaslon za navedeno Å¡tevilo vrstic, ne pa zaslonov. Ukaz C-u |
| 217 | 8 C-v, na primer, premakne zaslon navzgor za 8 vrstic. | 221 | 8 C-v, na primer, premakne zaslon navzgor za 8 vrstic. |
| 218 | 222 | ||
| 219 | >> Poskusite zdaj C-u 8 C-v | 223 | >> Poskusite zdaj C-u 8 C-v |
| 220 | 224 | ||
| 221 | To bi moralo zaslon premakniti navzgor za osem vrstic. Èe bi ga radi | 225 | To bi moralo zaslon premakniti navzgor za osem vrstic. ÄŒe bi ga radi |
| 222 | premaknili nazaj, poskusite M-v z istim argumentom. | 226 | premaknili nazaj, poskusite M-v z istim argumentom. |
| 223 | 227 | ||
| 224 | Èe uporabljate grafièni vmesnik, denimo X11 ali MS Windows, imate | 228 | ÄŒe uporabljate grafiÄni vmesnik, denimo X ali MS Windows, imate |
| 225 | verjetno ob robu Emacsovega okna navpièno pravokotno ploskev, | 229 | verjetno ob robu Emacsovega okna pokonÄno pravokotno ploskev, |
| 226 | imenovano drsnik. Pogled na besedilo lahko premikate tudi tako, da z | 230 | imenovano drsnik. Pogled na besedilo lahko premikate tudi tako, da z |
| 227 | mi¹ko kliknete na drsnik. | 231 | miÅ¡ko kliknete na drsnik. |
| 228 | 232 | ||
| 229 | >> Postavite kazalec na vrh oznaèenega obmoèja na drsniku in pritisnite | ||
| 230 | srednji gumb na mi¹ki. To bi moralo premakniti besedilo na mesto, | ||
| 231 | doloèeno s tem, kako visoko ali nizko na drsnik ste kliknili. | ||
| 232 | 233 | ||
| 233 | >> Medtem ko dr¾ite srednji gumb pritisnjen, premikajte mi¹ko gor in | 234 | * ÄŒE SE EMACS PRENEHA ODZIVATI |
| 234 | dol. Vidite, kako se premika besedilo v Emacsovem oknu, ko | 235 | ------------------------------ |
| 235 | premikate mi¹ko? | ||
| 236 | |||
| 237 | |||
| 238 | * ÈE SE EMACS OBESI | ||
| 239 | ------------------- | ||
| 240 | 236 | ||
| 241 | Èe se Emacs preneha odzivati na va¹e ukaze, ga lahko varno prekinete z | 237 | ÄŒe se Emacs preneha odzivati na vaÅ¡e ukaze, ga lahko varno prekinete z |
| 242 | ukazom C-g. Z njim lahko prekinete ukaze, za katere bi trajalo | 238 | ukazom C-g. Z njim lahko prekinete ukaze, za katere bi trajalo |
| 243 | predolgo, da bi se izvedli. | 239 | predolgo, da bi se izvedli. |
| 244 | 240 | ||
| 245 | Isti ukaz, C-g, lahko uporabite tudi, da preklièete ¹tevilèni | 241 | Isti ukaz, C-g, lahko uporabite tudi, da prekliÄete Å¡tevilÄni |
| 246 | argument, ali pa zaèetek ukaza, ki ga ne ¾elite izvesti. | 242 | argument, ali pa zaÄetek ukaza, ki ga ne želite izvesti. |
| 247 | 243 | ||
| 248 | >> Vtipkajte C-u 100, s èimer ste izbrali ¹tevilèni argument 100, | 244 | >> Vtipkajte C-u 100, s Äimer ste izbrali Å¡tevilÄni argument 100, |
| 249 | zatem pa vtipkajte C-g. Vtipkajte zdaj C-f. Kazalèek se je | 245 | zatem pa vtipkajte C-g. Vtipkajte zdaj C-f. KazalÄek se je |
| 250 | premaknil le za en znak, ker ste ¹tevilèni argument vmes preklicali | 246 | premaknil le za en znak, ker ste Å¡tevilÄni argument vmes preklicali |
| 251 | s C-g. | 247 | s C-g. |
| 252 | 248 | ||
| 253 | Tudi èe ste po nesreèi vtipkali <ESC>, se ga lahko znebite s C-g. | 249 | Tudi Äe ste po nesreÄi vtipkali <ESC>, se ga lahko znebite s C-g. |
| 254 | 250 | ||
| 255 | 251 | ||
| 256 | * ONEMOGOÈENI UKAZI | 252 | * ONEMOGOÄŒENI UKAZI |
| 257 | ------------------- | 253 | ------------------- |
| 258 | 254 | ||
| 259 | Nekaj ukazov v Emacsu je namenoma ,,onemogoèenih``, da bi jih | 255 | Nekaj ukazov v Emacsu je namenoma »onemogoÄenih«, da bi jih |
| 260 | zaèetniki ne izvedli po nesreèi. | 256 | zaÄetniki ne izvedli po nesreÄi. |
| 261 | 257 | ||
| 262 | Èe vtipkate tak onemogoèen ukaz, se bo na zaslonu pojavilo novo okno z | 258 | ÄŒe vtipkate tak onemogoÄen ukaz, se bo na zaslonu pojavilo novo okno z |
| 263 | obvestilom, kateri ukaz ste sku¹ali izvesti, in vas vpra¹alo, èe ga | 259 | obvestilom, kateri ukaz ste skuÅ¡ali izvesti, in vas vpraÅ¡alo, Äe ga |
| 264 | res ¾elite izvesti. | 260 | res želite izvesti. |
| 265 | 261 | ||
| 266 | Èe v resnici ¾elite poskusiti ukaz, pritisnite preslednico kot odgovor | 262 | ÄŒe v resnici želite poskusiti ukaz, pritisnite preslednico kot odgovor |
| 267 | na vpra¹anje. Normalno verjetno ukaza ne ¾elite izvesti, zato na | 263 | na vpraÅ¡anje. Normalno verjetno ukaza ne želite izvesti, zato na |
| 268 | vpra¹anje odgovorite z ,n`. | 264 | vpraÅ¡anje odgovorite z »n«. |
| 269 | 265 | ||
| 270 | >> Vtipkajte C-x C-l (ki je onemogoèen ukaz), | 266 | >> Vtipkajte C-x C-l (ki je onemogoÄen ukaz), |
| 271 | zatem na vpra¹anje odgovorite n. | 267 | zatem na vpraÅ¡anje odgovorite n. |
| 272 | 268 | ||
| 273 | 269 | ||
| 274 | * OKNA | 270 | * OKNA |
| 275 | ------ | 271 | ------ |
| 276 | 272 | ||
| 277 | Emacs lahko prika¾e veè oken in v vsakem svoje besedilo. Kasneje bomo | 273 | Emacs lahko prikaže veÄ Â»oken« in v vsakem svoje besedilo. Kasneje |
| 278 | razlo¾ili, kako uporabljamo veè oken hkrati. Zaenkrat bomo povedali | 274 | bomo razložili, kako uporabljamo veÄ oken hkrati. Zaenkrat bomo |
| 279 | le, kako se znebite dodatnih oken, ki jih lahko odpre vgrajena pomoè ali | 275 | povedali le, kako se znebite dodatnih oken, ki jih lahko odpre |
| 280 | pa izpis kak¹nega drugega programa. Preprosto je: | 276 | vgrajena pomoÄ ali pa izpis kakÅ¡nega drugega programa. Preprosto je: |
| 281 | 277 | ||
| 282 | C-x 1 Eno okno (torej, zaprimo vsa ostala). | 278 | C-x 1 Eno okno (torej, zaprimo vsa ostala). |
| 283 | 279 | ||
| 284 | To je CONTROL-x, ki mu sledi ¹tevka 1. Ukaz C-x 1 raztegne èez cel | 280 | To je CONTROL-x, ki mu sledi Å¡tevka 1. Ukaz C-x 1 raztegne Äez cel |
| 285 | zaslon okno, v katerem se nahaja kazalèek, ostala pa zapre. | 281 | zaslon okno, v katerem se nahaja kazalÄek, ostala pa zapre. |
| 286 | 282 | ||
| 287 | >> Premaknite kazalèek do te vrstice in vtipkajte C-u 0 C-l | 283 | >> Premaknite kazalÄek do te vrstice in vtipkajte C-u 0 C-l |
| 288 | >> Vtipkajte CONTROL-h k CONTROL-f. | 284 | >> Vtipkajte C-h k C-f. |
| 289 | Vidite, kako se je to okno skrèilo in odstopilo prostor oknu, | 285 | Vidite, kako se je to okno skrÄilo in odstopilo prostor oknu, |
| 290 | ki pojasnjuje ukaz CONTROL-f? | 286 | ki pojasnjuje ukaz C-f? |
| 291 | 287 | ||
| 292 | >> Vtipkajte C-x 1 in spodnje okno se bo zaprlo. | 288 | >> Vtipkajte C-x 1 in spodnje okno se bo zaprlo. |
| 293 | 289 | ||
| 294 | Za razliko od ukazov, ki smo se jih nauèili do zdaj, je ta ukaz | 290 | Za razliko od ukazov, ki smo se jih nauÄili do zdaj, je ta ukaz |
| 295 | sestavljen iz dveh znakov. Zaène se z znakom CONTROL-x. Cela vrsta | 291 | sestavljen iz dveh znakov. ZaÄne se z znakom CONTROL-x. Cela vrsta |
| 296 | ukazov se zaène enako, in mnogi od njih zadevajo delo z datotekami, | 292 | ukazov se zaÄne enako, in mnogi od njih zadevajo delo z datotekami, |
| 297 | delovnimi podroèji in podobnim. Vsem tem ukazom je skupno, da se | 293 | delovnimi podroÄji in podobnim. Vsem tem ukazom je skupno, da se |
| 298 | zaènejo s CONTROL-x, ki mu sledi ¹e en, dva ali trije znaki. | 294 | zaÄnejo s CONTROL-x, ki mu sledi Å¡e en, dva ali trije znaki. |
| 299 | 295 | ||
| 300 | 296 | ||
| 301 | * VRIVANJE IN BRISANJE | 297 | * VRIVANJE IN BRISANJE |
| 302 | ---------------------- | 298 | ---------------------- |
| 303 | 299 | ||
| 304 | Èe ¾elite v obstojeèe besedilo vriniti novo, preprosto premaknite | 300 | ÄŒe želite v obstojeÄe besedilo vriniti novo, preprosto premaknite |
| 305 | kazalèek na ¾eljeno mesto in zaènite tipkati. Znake, ki jih lahko | 301 | kazalÄek na želeno mesto in zaÄnite tipkati. Vidne znake, na primer A, |
| 306 | vidite, na primer A, 7, * in podobno, razume Emacs kot del besedila in | 302 | 7, * in podobno, Emacs vrine takoj, ko jih vtipkate. S pritiskom na |
| 307 | jih takoj vrine. S pritiskom na Return (ali Enter) vrinete znak za | 303 | tipko <Return> (ali <Enter>) vrinete znak za skok v novo vrstico. |
| 308 | skok v novo vrstico. | ||
| 309 | |||
| 310 | Zadnji vtipkani znak lahko izbri¹ete s pritiskom na tipko | ||
| 311 | <Delback>. To je tista tipka na tipkovnici, ki jo navadno uporabljate | ||
| 312 | za brisanje nazadnje natipkanega znaka. Navadno je to velika tipka | ||
| 313 | vrstico ali dve nad tipko <Return>, ki je oznaèena z "Backspace", | ||
| 314 | "Delete" ali "Del". | ||
| 315 | 304 | ||
| 316 | Èe imate na tipkovnici tipko "Backspace", je to tipka <Delback>. Naj | 305 | Zadnji vtipkani znak lahko izbriÅ¡ete s pritiskom na tipko <DEL>. Ta |
| 317 | vas ne zmede, èe imate poleg tega ¹e tipko "Delete" - <Delback> je | 306 | tipka je na tipkovnici obiÄajno oznaÄena z »Backspace« - skratka, to |
| 318 | "Backspace". | 307 | je ista tipka, ki jo tudi v drugih programih uporabljate za brisanje |
| 308 | nazadnje natipkanega znaka. | ||
| 319 | 309 | ||
| 320 | Splo¹no <Delback> pobri¹e znak neposredno pred trenutnim polo¾ajem | 310 | Najverjetneje imate na tipkovnici Å¡e tipko »Delete«. Naj vas to ne |
| 321 | kazalèka. | 311 | zmede - z <DEL> mislimo tipko »Backspace«. |
| 322 | 312 | ||
| 323 | >> Vtipkajte zdaj nekaj znakov in jih zatem s tipko <Delback> pobri¹ite. | 313 | >> Poskusite zdaj! Vtipkajte zdaj nekaj znakov in jih zatem s tipko |
| 324 | Niè naj vas ne skrbi, èe se je ta vrstica spremenila. Izvirnika | 314 | <DEL> pobriÅ¡ite. NiÄ naj vas ne skrbi, Äe se je ta vrstica |
| 325 | tega uèbenika ne boste pokvarili -- tole je samo va¹a osebna kopija. | 315 | spremenila. Izvirnika tega uÄbenika ne boste pokvarili -- tole je |
| 316 | samo vaša osebna delovna kopija. | ||
| 326 | 317 | ||
| 327 | Ko vrstica postane predolga za zaslon, se ,,nadaljuje`` v naslednji | 318 | Ko vrstica postane predolga za zaslon, se »nadaljuje« v naslednji |
| 328 | vrstici na zaslonu. Obrnjena po¹evnica (znak ,\`) ali v grafiènih | 319 | vrstici na zaslonu. ÄŒe uporabljate grafiÄno okolje, boste opazili |
| 329 | okoljih zavita pu¹èica ob desnem robu oznaèuje vrstico, ki se | 320 | zaviti puÅ¡Äici ob levem in desnem robu, ki oznaÄujeta vrstico, ki se |
| 330 | nadaljuje v naslednji zaslonski vrstici. | 321 | nadaljuje v naslednji zaslonski vrstici. ÄŒe uporabljate terminalski |
| 322 | vmesnik, je vrstica, ki se nadaljuje v naslednji zaslonski vrstici, | ||
| 323 | oznaÄena z obrnjeno poÅ¡evnico (znak »\«) v skrajnem desnem stolpcu. | ||
| 331 | 324 | ||
| 332 | >> Zdaj zaènite tipkati besedilo, dokler ne dose¾ete desnega roba, in | 325 | >> Zdaj zaÄnite tipkati besedilo, dokler ne dosežete desnega roba, in |
| 333 | ¹e naprej. Opazili boste, da se pojavi znak za nadaljevanje. | 326 | Å¡e naprej. Opazili boste, da se pojavi znak za nadaljevanje. |
| 334 | 327 | ||
| 335 | >> S tipko <Delback> pobri¹ite toliko znakov, da vrstica ne sega | 328 | >> S tipko <DEL> pobriÅ¡ite toliko znakov, da vrstica ne sega |
| 336 | veè èez ¹irino zaslona. Znak za nadaljevanje v naslednji | 329 | veÄ Äez Å¡irino zaslona. Znak za nadaljevanje v naslednji |
| 337 | vrstici je izginil. | 330 | vrstici je izginil. |
| 338 | 331 | ||
| 339 | Znak za novo vrstico lahko pobri¹emo enako kot vsak drug znak. S tem, | 332 | Znak za novo vrstico lahko pobriÅ¡emo enako kot vsak drug znak. S tem, |
| 340 | ko pobri¹emo znak za novo vrstico, zdru¾imo vrstici v eno samo. Èe bo | 333 | ko pobriÅ¡emo znak za novo vrstico, združimo vrstici v eno samo. ÄŒe bo |
| 341 | nova vrstica predolga, da bi cela pri¹la na zaslon, bo razdeljena v | 334 | nova vrstica predolga, da bi cela priÅ¡la na zaslon, bo razdeljena v |
| 342 | veè zaslonskih vrstic. | 335 | veÄ zaslonskih vrstic. |
| 343 | 336 | ||
| 344 | >> Premaknite kazalèek na zaèetek vrstice in pritisnite <Delback>. To | 337 | >> Premaknite kazalÄek na zaÄetek vrstice in pritisnite <DEL>. To |
| 345 | zdru¾i vrstico s prej¹njo. | 338 | združi vrstico s prejÅ¡njo. |
| 346 | 339 | ||
| 347 | >> Pritisnite <Return>. S tem ste ponovno vrinili znak za skok v novo | 340 | >> Pritisnite <Return>. S tem ste ponovno vrinili znak za skok v novo |
| 348 | vrstico, ki ste ga malo prej zbrisali. | 341 | vrstico, ki ste ga malo prej zbrisali. |
| 349 | 342 | ||
| 350 | Spomnimo se, da lahko za veèino ukazov v Emacsu doloèimo, naj se | 343 | Spomnimo se, da lahko za veÄino ukazov v Emacsu doloÄimo, naj se |
| 351 | izvedejo veèkrat zaporedoma; to vkljuèuje tudi vnos teksta. Ponovitev | 344 | izvedejo veÄkrat zaporedoma; to vkljuÄuje tudi vnos teksta. Ponovitev |
| 352 | obièajnega znaka ga veèkrat vrine v besedilo. | 345 | obiÄajnega znaka ga veÄkrat vrine v besedilo. |
| 353 | 346 | ||
| 354 | >> Poskusite zdaj tole: da vnesete osem zvezdic, vtipkajte C-u 8 * | 347 | >> Poskusite zdaj tole: da vnesete osem zvezdic, vtipkajte C-u 8 * |
| 355 | 348 | ||
| 356 | Zdaj ste se nauèili najpreprostej¹i naèin, da v Emacsu nekaj natipkate | 349 | Zdaj ste se nauÄili najpreprostejÅ¡i naÄin, da v Emacsu nekaj natipkate |
| 357 | in popravite. Bri¹ete lahko tudi besede ali vrstice. Tu je povzetek | 350 | in popravite. BriÅ¡ete lahko tudi besede ali vrstice. Tu je povzetek |
| 358 | ukazov za brisanje: | 351 | ukazov za brisanje: |
| 359 | 352 | ||
| 360 | <Delback> pobri¹e znak tik pred kazalèkom (levo od | 353 | <DEL> pobriÅ¡e znak tik pred kazalÄkom (levo od |
| 361 | oznake za kazalèek) | 354 | oznake za kazalÄek) |
| 362 | C-d pobri¹e znak tik za kazalèkom (,pod` oznako | 355 | C-d pobriÅ¡e znak tik za kazalÄkom (»pod« oznako |
| 363 | za kazalèek) | 356 | za kazalÄek) |
| 364 | 357 | ||
| 365 | M-<Delback> pobri¹e besedo tik pred kazalèkom | 358 | M-<DEL> pobriÅ¡e besedo tik pred kazalÄkom |
| 366 | M-d pobri¹e besedo tik za kazalèkom | 359 | M-d pobriÅ¡e besedo tik za kazalÄkom |
| 367 | 360 | ||
| 368 | C-k zavr¾e besedilo desno od kazalèka do konca vrstice | 361 | C-k zavrže besedilo desno od kazalÄka do konca vrstice |
| 369 | M-k zavr¾e besedilo od polo¾aja kazalèka do konca stavka | 362 | M-k zavrže besedilo od položaja kazalÄka do konca stavka |
| 370 | 363 | ||
| 371 | Èrka ,d` je iz angle¹ke besede ,delete` (pobrisati), èrka ,k` pa iz | 364 | ÄŒrka »d« je iz angleÅ¡ke besede »delete« (pobrisati), Ärka »k« pa iz |
| 372 | besede ,kill` (pobiti). Ste opazili, da <Delback> in C-d na eni, ter | 365 | besede »kill« (pobiti). Ste opazili, da <DEL> in C-d na eni, ter |
| 373 | M-<Delback> in M-d na drugi strani nadaljujeta paralelo, ki sta jo zaèela | 366 | M-<DEL> in M-d na drugi strani nadaljujeta paralelo, ki sta jo zaÄela |
| 374 | C-f in M-f (<Delback> pravzaprav ni kontrolni znak, kar pa naj nas ne | 367 | C-f in M-f (<DEL> pravzaprav ni kontrolni znak, kar pa naj nas ne |
| 375 | moti). C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na | 368 | moti). C-k in M-k sta v enakem sorodu s C-e in M-e: prvi deluje na |
| 376 | vrstice, drugi na stavke. | 369 | vrstice, drugi na stavke. |
| 377 | 370 | ||
| 378 | Obstaja tudi splo¹en postopek za brisanje kateregakoli dela delovnega | 371 | Obstaja tudi sploÅ¡en postopek za brisanje kateregakoli dela delovnega |
| 379 | podroèja. Kazalèek postavimo na en konec podroèja, ki ga ¾elimo | 372 | podroÄja. KazalÄek postavimo na en konec podroÄja, ki ga želimo |
| 380 | izbrisati, in pritisnemo C-@ ali C-SPC (SPC je | 373 | izbrisati, in pritisnemo C-@ ali C-<SPC> (<SPC> je preslednica). |
| 381 | preslednica). Katerikoli od obeh ukazov deluje. Premaknite kazalèek na | 374 | Katerikoli od obeh ukazov deluje. Premaknite kazalÄek na drug konec |
| 382 | drug konec podroèja, ki ga ¾elite izbrisati, in pritisnite C-w. S tem | 375 | podroÄja, ki ga želite izbrisati. Med premikanjem Emacs z barvo |
| 383 | ste zavrgli vse besedilo med obema mejama. | 376 | oznaÄuje podroÄje med kazalÄkom in mestom, kjer ste pritisnili |
| 377 | C-<SPC>. KonÄno pritisnite C-w. S tem ste zavrgli vse besedilo med | ||
| 378 | obema mejama. | ||
| 384 | 379 | ||
| 385 | >> Premaknite kazalèek na èrko O, s katero se zaèenja prej¹nji | 380 | >> Premaknite kazalÄek na Ärko O, s katero se zaÄenja prejÅ¡nji |
| 386 | odstavek. | 381 | odstavek. |
| 387 | >> Vtipkajte C-SPC. Emacs prika¾e sporoèilo "Mark set" (slov. Oznaka | 382 | >> Vtipkajte C-SPC. Emacs prikaže sporoÄilo »Mark set« (slov. »oznaka |
| 388 | postavljena) na dnu ekrana. | 383 | postavljena«) na dnu ekrana. |
| 389 | >> Premaknite kazalèek na èrko V v "postavimo" v drugi vrstici istega | 384 | >> Premaknite kazalÄek na Ärko V v »postavimo« v drugi vrstici istega |
| 390 | odstavka. | 385 | odstavka. |
| 391 | >> Vtipkajte C-w. S tem zavr¾emo vse besedilo zaèen¹i z O in vse do | 386 | >> Vtipkajte C-w. S tem zavržemo vse besedilo zaÄenÅ¡i z O in vse do |
| 392 | èrke V. | 387 | Ärke V. |
| 393 | 388 | ||
| 394 | Razlika med tem, èe zavr¾ete cel odstavek besedila (angl. ,,kill``, | 389 | Razlika med tem, Äe zavržete cel odstavek besedila (angl. »kill«, |
| 395 | pobiti) ali pa èe pobri¹ete znak (angl. ,,delete``), je ta, da lahko | 390 | pobiti) ali pa Äe pobriÅ¡ete znak (angl. »delete«), je ta, da lahko |
| 396 | prvega vrnete nazaj z ukazom C-y, drugega pa ne. Na splo¹no ukazi, ki | 391 | prvega povrnete - na katerokoli mesto v besedilu - z ukazom C-y, |
| 397 | lahko povzroèijo veliko ¹kode (pobri¹ejo veliko besedila), shranijo | 392 | drugega pa ne (seveda pa lahko prekliÄete brisanje - glejte nižje). Na |
| 398 | pobrisano besedilo; tisti, ki pobri¹ejo samo posamezni znak, ali samo | 393 | sploÅ¡no ukazi, ki lahko povzroÄijo veliko Å¡kode (pobriÅ¡ejo veliko |
| 399 | prazne vrstice in presledke, pa ne. | 394 | besedila), shranijo pobrisano besedilo; tisti, ki pobrišejo samo |
| 400 | 395 | posamezni znak, ali samo prazne vrstice in presledke, pa ne. | |
| 401 | >> Postavite kazalèek na zaèetek neprazne vrstice. Pritisnite C-k, da | 396 | |
| 402 | pobri¹ete vsebino vrstice. | 397 | >> Postavite kazalÄek na zaÄetek neprazne vrstice. Pritisnite C-k, da |
| 403 | >> ©e enkrat pritisnite C-k. To pobri¹e ¹e znak za novo vrstico. | 398 | pobriÅ¡ete vsebino vrstice. |
| 404 | 399 | >> Še enkrat pritisnite C-k. To pobriše še znak za novo vrstico. | |
| 405 | Ste opazili, da prvi C-k pobri¹e vsebino vrstice, naslednji C-k pa ¹e | 400 | |
| 406 | vrstici samo, s èimer se vse besedilo pod biv¹o vrstico premakne za | 401 | Ste opazili, da prvi C-k pobriÅ¡e vsebino vrstice, naslednji C-k pa Å¡e |
| 407 | eno vrstico navzgor? Ukaz C-k obravnava ¹tevilèni argument malo | 402 | vrstici samo, s Äimer se vse besedilo pod bivÅ¡o vrstico premakne za |
| 408 | drugaèe: pobri¹e toliko in toliko vrstic z vsebinami vred. To ni zgolj | 403 | eno vrstico navzgor? Ukaz C-k obravnava Å¡tevilÄni argument malo |
| 409 | ponovitev. C-u 2 C-k pobri¹e dve polni vrstici besedila, kar je nekaj | 404 | drugaÄe: pobriÅ¡e toliko in toliko vrstic z vsebinami vred. To ni zgolj |
| 410 | drugega, kot èe dvakrat vtipkate C-k. | 405 | ponovitev. C-u 2 C-k pobriÅ¡e dve polni vrstici besedila, kar je nekaj |
| 411 | 406 | drugega, kot Äe dvakrat vtipkate C-k. | |
| 412 | Besedilo, ki ste ga prej pobili, lahko povrnete (angl. ,,yank`` -- | 407 | |
| 408 | Besedilo, ki ste ga prej pobili, lahko povrnete (angl. »yank« - | ||
| 413 | potegniti). Predstavljajte si, kot da potegnete nazaj nekaj, kar vam | 409 | potegniti). Predstavljajte si, kot da potegnete nazaj nekaj, kar vam |
| 414 | je nekdo odnesel. Pobito besedilo lahko potegnete nazaj na isti ali pa | 410 | je nekdo odnesel. Pobito besedilo lahko potegnete nazaj na isti ali pa |
| 415 | na kak¹en drug kraj v besedilu, ali pa celo v kaki drugi | 411 | na kakÅ¡en drug kraj v besedilu, ali pa celo v kaki drugi datoteki. |
| 416 | datoteki. Isto besedilo lahko veèkrat potegnete nazaj, tako da je v | 412 | Isto besedilo lahko veÄkrat potegnete nazaj, tako da je v delovnem |
| 417 | delovnem podroèju poveèterjeno. | 413 | podroÄju poveÄterjeno. Nekateri drugi urejevalniki uporabljajo namesto |
| 414 | »kill« in »yank« izraza »cut« in »paste« (glejte glosar v priroÄniku | ||
| 415 | za Emacs). | ||
| 418 | 416 | ||
| 419 | Ukaz za vraèanje pobitega besedila je C-y. | 417 | Ukaz za vraÄanje pobitega besedila je C-y. |
| 420 | 418 | ||
| 421 | >> Poskusite z ukazom C-y povrniti pobrisano besedilo. | 419 | >> Poskusite z ukazom C-y povrniti pobrisano besedilo. |
| 422 | 420 | ||
| 423 | Èe ste uporabili veè zaporednih ukazov C-k, je vse pobrisano besedilo | 421 | ÄŒe ste uporabili veÄ zaporednih ukazov C-k, je vse pobrisano besedilo |
| 424 | shranjeno skupaj, in en sam C-y bo vrnil vse tako pobrisane vrstice. | 422 | shranjeno skupaj, in en sam C-y bo vrnil vse tako pobrisane vrstice. |
| 425 | 423 | ||
| 426 | >> Poskusite, nekajkrat vtipkajte C-k. | 424 | >> Poskusite, nekajkrat vtipkajte C-k. |
| 427 | 425 | ||
| 428 | Zdaj pa vrnimo pobrisano besedilo: | 426 | Zdaj pa vrnimo pobrisano besedilo: |
| 429 | 427 | ||
| 430 | >> Vtipkajte C-y. Zdaj pa premaknite kazalèek za nekaj vrstic navzdol | 428 | >> Vtipkajte C-y. Zdaj pa premaknite kazalÄek za nekaj vrstic navzdol |
| 431 | in ¹e enkrat vtipkajte C-y. Vidite zdaj, kako se kopira dele | 429 | in Å¡e enkrat vtipkajte C-y. Vidite zdaj, kako se kopira dele |
| 432 | besedila? | 430 | besedila? |
| 433 | 431 | ||
| 434 | Kaj pa, èe ste pobrisali nekaj besedila, ki bi ga radi vrnili, vendar | 432 | Kaj pa, Äe ste pobrisali nekaj besedila, ki bi ga radi vrnili, vendar |
| 435 | ste za iskanim odlomkom pobrisali ¹e nekaj? C-y vrne samo nazadnje | 433 | ste za iskanim odlomkom pobrisali Å¡e nekaj? C-y vrne samo nazadnje |
| 436 | pobrisan odlomek. Vendar tudi prej¹nje besedilo ni izgubljeno. Do | 434 | pobrisan odlomek. Vendar tudi prejÅ¡nje besedilo ni izgubljeno. Do |
| 437 | njega lahko pridete z ukazom M-y. Ko ste vrnili nazadnje zbrisano | 435 | njega lahko pridete z ukazom M-y. Ko ste vrnili nazadnje zbrisano |
| 438 | besedilo s C-y, pritisnite M-y, ki ga zamenja s predzanje pobrisanim | 436 | besedilo s C-y, pritisnite M-y, ki ga zamenja s predzanje pobrisanim |
| 439 | besedilom. Vsak naslednji M-y prika¾e ¹e eno prej. Ko ste konèno | 437 | besedilom. Vsak naslednji M-y prikaže Å¡e eno prej. Ko ste konÄno |
| 440 | pri¹li do iskanega besedila, ni treba napraviti niè posebnega, da bi | 438 | priÅ¡li do iskanega besedila, ni treba napraviti niÄ posebnega, da bi |
| 441 | ga obdr¾ali. Preprosto nadaljujte z urejanjem, in vrnjeno besedilo bo | 439 | ga obdržali. Preprosto nadaljujte z urejanjem, in vrnjeno besedilo bo |
| 442 | ostalo, kamor ste ga odlo¾ili. | 440 | ostalo, kamor ste ga odložili. |
| 443 | 441 | ||
| 444 | Èe pritisnete M-y dovolj velikokrat, se boste vrnili na zaèete, torej | 442 | ÄŒe pritisnete M-y dovolj velikokrat, se boste vrnili na zaÄete, torej |
| 445 | spet na zadnje pobrisano besedilo. | 443 | spet na zadnje pobrisano besedilo. |
| 446 | 444 | ||
| 447 | >> Pobri¹ite vrstico, premaknite se nekam drugam, in pobri¹ite ¹e | 445 | >> PobriÅ¡ite vrstico, premaknite se nekam drugam, in pobriÅ¡ite Å¡e |
| 448 | eno vrstico. | 446 | eno vrstico. |
| 449 | Z ukazom C-y dobite nazaj to drugo vrstico. | 447 | Z ukazom C-y dobite nazaj to drugo vrstico. |
| 450 | Z ukazom M-y pa jo zamenjate s prvo vrstico. | 448 | Z ukazom M-y pa jo zamenjate s prvo vrstico. |
| 451 | Ponovite ukaz M-y ¹e nekajkrat in si oglejte, kaj dobite na | 449 | Ponovite ukaz M-y Å¡e nekajkrat in si oglejte, kaj dobite na |
| 452 | zaslon. Ponavljajte ga, dokler se ne prika¾e ponovno nazadnje | 450 | zaslon. Ponavljajte ga, dokler se ne prikaže ponovno nazadnje |
| 453 | pobrisana vrstica, in ¹e naprej. Èe ¾elite, lahko tudi ukazu | 451 | pobrisana vrstica, in Å¡e naprej. ÄŒe želite, lahko tudi ukazu |
| 454 | M-y podate pozitivno ali negativno ¹tevilo ponovitev. | 452 | M-y podate pozitivno ali negativno Å¡tevilo ponovitev. |
| 455 | 453 | ||
| 456 | 454 | ||
| 457 | * PREKLIC UKAZA (UNDO) | 455 | * PREKLIC UKAZA (UNDO) |
| 458 | ---------------------- | 456 | ---------------------- |
| 459 | 457 | ||
| 460 | Èe ste besedilo spremenili, a ste se kasneje premislili, lahko | 458 | ÄŒe ste besedilo spremenili, a ste se kasneje premislili, lahko |
| 461 | besedilo vrnete v prvotno stanje z ukazom Undo, C-x u. Normalno vrne | 459 | besedilo vrnete v prvotno stanje z ukazom Undo, C-/. |
| 462 | C-x u zadnjo spremembo besedila; èe ukaz ponovimo, preklièemo ¹e | 460 | |
| 463 | predzadnjo spremembo, in vsaka nadaljnja ponovitev se¾e ¹e eno | 461 | ObiÄajno C-/ prekliÄe spremembo besedila, ki jo izvede en ukaz; Äe |
| 462 | ukaz C-/ ponovimo, prekliÄemo Å¡e spremembo, ki jo je izvedel | ||
| 463 | predzadnji ukaz, in vsaka nadaljnja ponovitev C-/ seže še eno | ||
| 464 | spremembo globlje v zgodovino. | 464 | spremembo globlje v zgodovino. |
| 465 | 465 | ||
| 466 | Emacs hrani bolj ali manj celotno zgodovino na¹ih ukazov, z dvema | 466 | Emacs hrani bolj ali manj celotno zgodovino naÅ¡ih ukazov, z dvema |
| 467 | izjemama: ukazov, ki niso napravili nobene spremembe v besedilu | 467 | izjemama: ukazov, ki niso napravili nobene spremembe v besedilu (npr. |
| 468 | (npr. premik kazalèka), ne shranjuje, in zaporedje do 20 vrinjenih | 468 | premik kazalÄka), ne shranjuje, in zaporedje do 20 vrinjenih znakov |
| 469 | znakov shrani kot en sam ukaz. Slednje prihrani nekaj ukazov C-x u, ki | 469 | shrani kot en sam ukaz. Slednje prihrani nekaj ukazov C-/, ki bi jih |
| 470 | bi jih morali vtipkati. | 470 | morali vtipkati. |
| 471 | 471 | ||
| 472 | >> Pobri¹ite to vrstico z ukazom C-k, potem jo priklièite nazaj s C-x u. | 472 | >> PobriÅ¡ite to vrstico z ukazom C-k, potem jo prikliÄite nazaj s C-/. |
| 473 | 473 | ||
| 474 | C-_ je alternativni ukaz za preklic zadnjega ukaza. Deluje enako kot | 474 | C-_ je alternativni ukaz za preklic zadnjega ukaza. Deluje povsem |
| 475 | s C-x u, ga je pa la¾je odtipkati, èe morate ukaz ponoviti veèkrat | 475 | enako kot C-/. Na nekaterih besedilnih terminalih v resnici pritisk |
| 476 | zaporedoma. Te¾ava z ukazom C-_ je, da na nekaterih tipkovnicah ni | 476 | C-/ poÅ¡lje Emacsu ukaz C-_. Å e tretja možnost je C-x u, ki tudi deluje |
| 477 | povsem oèitno, kako ga vtipkati, zato je podvojen ¹e kot C-x u. Na | 477 | povsem enako kot C-/, le z nekaj veÄ tipkanja. |
| 478 | nekaterih terminalih moramo na primer vtipkati /, medtem ko dr¾imo | ||
| 479 | pritisnjeno tipko CONTROL. | ||
| 480 | 478 | ||
| 481 | Èe podamo ukazu C-_ ali C-x u numerièni argument, je to enako, kot èe | 479 | ÄŒe podamo ukazu C-/, C-_ ali C-x u numeriÄni argument, je to enako, |
| 482 | bi ukaz roèno ponovili tolikokrat, kot pravi argument. | 480 | kot Äe bi ukaz roÄno ponovili tolikokrat, kot pravi argument. |
| 483 | 481 | ||
| 484 | Ukaz za brisanje besedila lahko preklièete in besedilo povrnete, | 482 | Ukaz za brisanje besedila lahko prekliÄete in besedilo povrnete, |
| 485 | enako, kot èe bi besedilo pobili. Razlika med brisanjem in pobijanjem | 483 | enako, kot Äe bi besedilo pobili. Razlika med brisanjem in pobijanjem |
| 486 | besedila je le ta, da le slednje lahko potegnete nazaj z ukazom | 484 | besedila je le ta, da le slednje lahko povrnete z ukazom C-y. Preklic |
| 487 | C-y. Preklic ukaza pa velja za eno in drugo. | 485 | ukaza pa velja za eno in drugo. |
| 488 | 486 | ||
| 489 | 487 | ||
| 490 | * DATOTEKE | 488 | * DATOTEKE |
| @@ -493,638 +491,657 @@ C-y. Preklic ukaza pa velja za eno in drugo. | |||
| 493 | Da bi bile spremembe v besedilu trajne, morate besedilo shraniti v | 491 | Da bi bile spremembe v besedilu trajne, morate besedilo shraniti v |
| 494 | datoteko. V nasprotnem primeru jih boste za vedno izgubili tisti hip, | 492 | datoteko. V nasprotnem primeru jih boste za vedno izgubili tisti hip, |
| 495 | ko boste zapustili Emacs. Besedilo postavimo v datoteko tako, da | 493 | ko boste zapustili Emacs. Besedilo postavimo v datoteko tako, da |
| 496 | na disku ,,poi¹èemo`` (angl. find) datoteko, preden zaènemo tipkati | 494 | na disku »poiÅ¡Äemo« (angl. find) datoteko, preden zaÄnemo tipkati |
| 497 | (pravimo tudi, da ,,obi¹èemo`` datoteko). | 495 | (pravimo tudi, da »obiÅ¡Äemo« datoteko). |
| 498 | 496 | ||
| 499 | Poiskati datoteko pomeni, da v Emacsu vidimo vsebino datoteke. To je | 497 | Poiskati datoteko pomeni, da v Emacsu vidimo vsebino datoteke. To je |
| 500 | bolj ali manj tako, kot da z Emacsom urejamo datoteko samo. Vendar pa | 498 | bolj ali manj tako, kot da z Emacsom urejamo datoteko samo. Vendar pa |
| 501 | spremembe ne postanejo trajne, dokler datoteke ne shranimo | 499 | spremembe ne postanejo trajne, dokler datoteke ne shranimo |
| 502 | (angl. save) na disk. Tako imamo mo¾nost, da se izognemo temu, da bi | 500 | (angl. save) na disk. Tako imamo možnost, da se izognemo temu, da bi |
| 503 | nam na pol spremenjene datoteke le¾ale po disku, kadar tega ne | 501 | nam na pol spremenjene datoteke ležale po disku, kadar tega ne |
| 504 | ¾elimo. Ker pa Emacs ohrani izvorno datoteko pod spremenjenim imenom, | 502 | želimo. Ker pa Emacs ohrani izvorno datoteko pod spremenjenim imenom, |
| 505 | lahko prvotno datoteko priklièemo nazaj celo ¹e potem, ko smo datoteko | 503 | lahko prvotno datoteko prikliÄemo nazaj celo Å¡e potem, ko smo datoteko |
| 506 | ¾e shranili na disk. | 504 | že shranili na disk. |
| 507 | 505 | ||
| 508 | V predzadnji vrstici na dnu zaslona vidite vrstico, ki se zaène in | 506 | V predzadnji vrstici na dnu zaslona vidite vrstico, ki se zaÄne z |
| 509 | konèa z vezaji, in vsebuje niz znakov ,,--:-- TUTORIAL``. Ta del | 507 | vezaji, na zaÄetku pa vsebuje niz znakov »--:--- TUTORIAL« ali nekaj |
| 510 | zaslona navadno vsebuje ime datoteke, ki smo jo obiskali. Zdajle je to | 508 | podobnega. Ta del zaslona navadno vsebuje ime datoteke, ki smo jo |
| 511 | ,,TUTORIAL``, va¹a delovna kopija uèbenika Emacsa. Ko boste poiskali | 509 | obiskali. Zdajle je to »TUTORIAL«, vaÅ¡a delovna kopija uÄbenika |
| 512 | kak¹no drugo datoteko, bo na tem mestu pisalo njeno ime. | 510 | Emacsa. Ko boste poiskali kakÅ¡no drugo datoteko, bo na tem mestu |
| 511 | izpisano ime te datoteke. | ||
| 513 | 512 | ||
| 514 | Posebnost ukaza za iskanje datoteke je, da moramo povedati, katero | 513 | Posebnost ukaza za iskanje datoteke je, da moramo povedati, katero |
| 515 | datoteko i¹èemo. Pravimo, da ukaz ,,prebere argument s terminala`` (v | 514 | datoteko iÅ¡Äemo. Pravimo, da ukaz »prebere argument« (v tem primeru je |
| 516 | tem primeru je argument ime datoteke). Ko vtipkate ukaz | 515 | argument ime datoteke). Ko vtipkate ukaz |
| 517 | 516 | ||
| 518 | C-x C-f (poi¹èi datoteko) | 517 | C-x C-f (poiÅ¡Äi datoteko) |
| 519 | 518 | ||
| 520 | vas Emacs povpra¹a po imenu datoteke. Kar vtipkate, se sproti vidi v | 519 | vas Emacs povpraÅ¡a po imenu datoteke. Kar vtipkate, se sproti vidi v |
| 521 | vrstici na dnu zaslona. Temu delovnemu podroèju pravimo pogovorni | 520 | vrstici na dnu zaslona. Temu delovnemu podroÄju pravimo pogovorni |
| 522 | vmesnik (minibuffer), kadar se uporablja za tovrstni vnos. Znotraj | 521 | vmesnik (minibuffer), kadar se uporablja za tovrstni vnos. Znotraj |
| 523 | pogovornega vmesnika lahko uporabljate obièajne ukaze za urejanje, èe | 522 | pogovornega vmesnika lahko uporabljate obiÄajne ukaze za urejanje, Äe |
| 524 | ste se na primer pri tipkanju zmotili. | 523 | ste se na primer pri tipkanju zmotili. |
| 525 | 524 | ||
| 526 | Sredi tipkanja imena datoteke (ali katerega koli drugega opravila v | 525 | Sredi tipkanja imena datoteke (ali katerega koli drugega opravila v |
| 527 | pogovornem vmesniku) lahko ukaz preklièete s C-g. | 526 | pogovornem vmesniku) lahko ukaz prekliÄete s C-g. |
| 528 | 527 | ||
| 529 | >> Vtipkajte C-x C-f, zatem pa ¹e C-g. Zadnji ukaz od treh je | 528 | >> Vtipkajte C-x C-f, zatem pa Å¡e C-g. Zadnji ukaz od treh je |
| 530 | zaprl pogovorni vmesnik in tudi preklical ukaz C-x C-f, ki je | 529 | zaprl pogovorni vmesnik in tudi preklical ukaz C-x C-f, ki je |
| 531 | uporabljal pogovorni vmesnik. Konec z iskanjem datoteke. | 530 | uporabljal pogovorni vmesnik. Konec z iskanjem datoteke. |
| 532 | 531 | ||
| 533 | Ko ste dokonèali ime, ga vnesete s pritiskom na <Return>. S tem se | 532 | Ko ste dokonÄali ime, ga vnesete s pritiskom na <Return>. Pogovorni |
| 534 | po¾ene ukaz C-x C-f in poi¹èe iskano datoteko. Pogovorni vmesnik | 533 | vmesnik izgine, ko je ukaz izveden. |
| 535 | izgine, ko je ukaz izveden. | ||
| 536 | 534 | ||
| 537 | Trenutek kasneje se vsebina datoteke pojavi na zaslonu. Zdaj lahko | 535 | Vsebina datoteke se pojavi na zaslonu. Zdaj lahko dopolnjujete, |
| 538 | dopolnjujete, urejate ali kako drugaèe spreminjate vsebino. Ko ¾elite, | 536 | urejate ali kako drugaÄe spreminjate vsebino. Ko želite, da ostanejo |
| 539 | da ostanejo spremembe trajne, izvedete ukaz: | 537 | spremembe trajne, izvedete ukaz: |
| 540 | 538 | ||
| 541 | C-x C-s (shrani datoteko) | 539 | C-x C-s (shrani datoteko) |
| 542 | 540 | ||
| 543 | Besedilo se s tem shrani iz pomnilnika raèunalnika na datoteko na | 541 | Besedilo se s tem shrani iz pomnilnika raÄunalnika na datoteko na |
| 544 | disk. Ko prviè izvedete ta ukaz, se izvorna datoteka preimenuje, tako | 542 | disk. Ko prviÄ izvedete ta ukaz, se izvorna datoteka preimenuje, tako |
| 545 | da ni izgubljena. Najdete jo pod novim imenom, ki se od starega | 543 | da ni izgubljena. Najdete jo pod novim imenom, ki se od starega |
| 546 | razlikuje po tem, da ima na koncu pripet znak ,,~``. | 544 | razlikuje po tem, da ima na koncu pripet znak »~«. |
| 547 | 545 | ||
| 548 | Ko je Emacs shranil datoteko, izpi¹e njeno ime. Shranjujte raje | 546 | Ko je Emacs shranil datoteko, izpiÅ¡e njeno ime. Shranjujte raje |
| 549 | pogosteje kot ne, da v primeru, èe gre z raèunalnikom kaj narobe, ne | 547 | pogosteje kot ne, da v primeru, Äe gre z raÄunalnikom kaj narobe, ne |
| 550 | izgubite veliko. | 548 | izgubite veliko (oglejte si tudi razdelek o samodejnem shranjevanju |
| 549 | nižje). | ||
| 551 | 550 | ||
| 552 | >> Vtipkajte C-x C-s, s èimer boste shranili svojo kopijo tega | 551 | >> Vtipkajte C-x C-s TUTORIAL <Return>. |
| 553 | uèbenika. Emacs bo v vrstici na dnu zaslona izpisal ,,Wrote | 552 | S tem boste shranili svojo kopijo tega uÄbenika. Emacs bo v vrstici |
| 554 | ...TUTORIAL``. | 553 | na dnu zaslona izpisal »Wrote ...TUTORIAL«. |
| 555 | 554 | ||
| 556 | Poi¹èete lahko lahko ¾e obstojeèo datoteko, da si jo ogledate ali | 555 | PoiÅ¡Äete lahko lahko že obstojeÄo datoteko, da si jo ogledate ali |
| 557 | popravite, ali pa tudi datoteko, ki ¹e ne obstaja. To je naèin, kako z | 556 | popravite, ali pa tudi datoteko, ki Å¡e ne obstaja. To je naÄin, kako z |
| 558 | Emacsom ustvarimo novo datoteko: poi¹èite datoteko z izbranim imenom, | 557 | Emacsom ustvarimo novo datoteko: poiÅ¡Äite datoteko z izbranim imenom, |
| 559 | ki bo sprva prazna, in zaènite pisati. Ko jo boste prviè shranili, bo | 558 | ki bo sprva prazna, in zaÄnite pisati. Ko jo boste prviÄ shranili, bo |
| 560 | Emacs ustvaril datoteko z vne¹enim besedilom. Od tod dalje delate na | 559 | Emacs ustvaril datoteko z vneÅ¡enim besedilom. Od tod dalje delate na |
| 561 | ¾e obstojeèi datoteki. | 560 | že obstojeÄi datoteki. |
| 562 | 561 | ||
| 563 | 562 | ||
| 564 | * DELOVNA PODROÈJA | 563 | * DELOVNA PODROÄŒJA |
| 565 | ------------------ | 564 | ------------------ |
| 566 | 565 | ||
| 567 | Tudi èe ste z ukazom C-x C-f poiskali in odprli drugo datoteko, prva | 566 | Tudi Äe ste z ukazom C-x C-f poiskali in odprli drugo datoteko, prva |
| 568 | ostane v Emacsu. Nanjo se vrnete tako, da jo ¹e enkrat ,,poi¹èete`` z | 567 | ostane v Emacsu. Nanjo se vrnete tako, da jo Å¡e enkrat »poiÅ¡Äete« z |
| 569 | ukazom C-x C-f. Tako imate lahko v Emacsu hkrati kar precej datotek. | 568 | ukazom C-x C-f. Tako imate lahko v Emacsu hkrati kar precej datotek. |
| 570 | 569 | ||
| 571 | >> Ustvarite datoteko z imenom ,,bla`` tako, da vtipkate C-x C-f | 570 | Emacs hrani besedilo vsake datoteke v takoimenovanem »delovnem |
| 572 | bla <Return>. Natipkajte nekaj besedila, ga po potrebi popravite, in | 571 | podroÄju« (angl. buffer). Ko poiÅ¡Äemo datoteko, Emacs ustvari zanjo |
| 573 | shranite v datoteko ,,bla`` z ukazom C-x C-s. Ko ste konèali, se | 572 | novo delovno podroÄje. Vsa obstojeÄa delovna podroÄja v Emacsu vidimo |
| 574 | vrnite v uèbenik z ukazom C-x C-f TUTORIAL <Return>. | ||
| 575 | |||
| 576 | Emacs hrani besedilo vsake datoteke v takoimenovanem ,,delovnem | ||
| 577 | podroèju`` (angl. buffer). Ko poi¹èemo datoteko, Emacs ustvari zanjo | ||
| 578 | novo delovno podroèje. Vsa obstojeèa delovna podroèja v Emacsu vidimo | ||
| 579 | z ukazom: | 573 | z ukazom: |
| 580 | 574 | ||
| 581 | C-x C-b Seznam delovnih podroèij. | 575 | C-x C-b Seznam delovnih podroÄij. |
| 582 | 576 | ||
| 583 | >> Poskusite C-x C-b zdaj. | 577 | >> Poskusite C-x C-b zdaj. |
| 584 | 578 | ||
| 585 | Vidite, da ima vsako delovno podroèje svoje ime, pri nekaterih pa pi¹e | 579 | Vidite, da ima vsako delovno podroÄje svoje ime, pri nekaterih pa piÅ¡e |
| 586 | tudi ime datoteke, katere vsebina se hrani v njem. Vsako besedilo, ki | 580 | tudi ime datoteke, katere vsebina se hrani v njem. Vsako besedilo, ki |
| 587 | ga vidite v katerem od Emacsovih oken, je vedno del kak¹nega delovnega | 581 | ga vidite v katerem od Emacsovih oken, je vedno del kakÅ¡nega delovnega |
| 588 | podroèja. | 582 | podroÄja. |
| 589 | 583 | ||
| 590 | >> Z ukazom C-x 1 se znebite seznama delovnih podroèij. | 584 | >> Z ukazom C-x 1 se znebite seznama delovnih podroÄij. |
| 591 | 585 | ||
| 592 | Tudi èe imate veè delovnih podroèij, pa je vedno le eno od njih | 586 | Tudi Äe imate veÄ delovnih podroÄij, pa je vedno le eno od njih |
| 593 | trenutno dejavno. To je tisto delovno podroèje, ki ga popravljate. Èe | 587 | trenutno dejavno. To je tisto delovno podroÄje, ki ga popravljate. ÄŒe |
| 594 | ¾elite popravljati drugo delovno podroèje, morate ,,preklopiti`` | 588 | želite popravljati drugo delovno podroÄje, morate »preklopiti« |
| 595 | nanj. Èe bi radi preklopili na delovno podroèje, ki pripada kak¹ni | 589 | nanj. ÄŒe bi radi preklopili na delovno podroÄje, ki pripada kakÅ¡ni |
| 596 | datoteki, ¾e poznate en naèin, kako to storiti: ponovno ,,obi¹èete`` | 590 | datoteki, že poznate en naÄin, kako to storiti: ponovno »obiÅ¡Äete« |
| 597 | (odprete) to datoteko z ukazom C-x C-f. Obstaja pa ¹e la¾ji naèin: z | 591 | (odprete) to datoteko z ukazom C-x C-f. Obstaja pa Å¡e lažji naÄin: z |
| 598 | ukazom C-x b. Pri tem ukazu morate navesti ime delovnega podroèja. | 592 | ukazom C-x b. Pri tem ukazu morate navesti ime delovnega podroÄja. |
| 599 | 593 | ||
| 600 | >> Vtipkajte C-x b bla <Return>, s èimer se vrnete v delovno podroèje | 594 | >> Ustvarite datoteko z imenom »bla« tako, da vtipkate C-x C-f bla |
| 601 | ,,bla`` z vsebino datoteke ,,bla``, ki ste jo maloprej | 595 | <Return>. Zatem se vrnite v ta uÄbenik z ukazom C-x C-f TUTORIAL |
| 602 | odprli. Zatem vtipkajte C-x b TUTORIAL <RETURN>, s èimer se vrnete | 596 | <Return>. |
| 603 | nazaj v ta uèbenik. | ||
| 604 | 597 | ||
| 605 | Veèinoma se ime delovnega podroèja kar ujema z imenom datoteke (brez | 598 | VeÄinoma se ime delovnega podroÄja kar ujema z imenom datoteke (brez |
| 606 | poti do datoteke), ne pa vedno. Seznam delovnih podroèij, ki ga | 599 | poti do datoteke), ne pa vedno. Seznam delovnih podroÄij, ki ga |
| 607 | prika¾e ukaz C-x C-b, prika¾e imena vseh delovnih podroèij. | 600 | prikaže ukaz C-x C-b, prikaže imena vseh delovnih podroÄij in |
| 601 | pripadajoÄa imena datotek. | ||
| 608 | 602 | ||
| 609 | Vsako besedilo, ki ga vidite v katerem od Emacsovih oken, je vedno del | 603 | Vsako besedilo, ki ga vidite v katerem od Emacsovih oken, je vedno del |
| 610 | kak¹nega delovnega podroèja. Nekatera delovna podroèja ne pripadajo | 604 | kakÅ¡nega delovnega podroÄja. Nekatera delovna podroÄja ne pripadajo |
| 611 | nobeni datoteki. Podroèje ,,*Buffer List*``, na primer, je ¾e eno | 605 | nobeni datoteki. PodroÄje »*Buffer List*«, na primer, je že eno takih. |
| 612 | takih. To delovno podroèje smo ustvarili ravnokar, ko smo pognali ukaz | 606 | To delovno podroÄje smo ustvarili ravnokar, ko smo pognali ukaz C-x |
| 613 | C-x C-b, in vsebuje seznam delovnih podroèij. Tudi delovno podroèje | 607 | C-b, in vsebuje seznam delovnih podroÄij. Temu delovnemu podroÄju |
| 614 | ,,Messages`` ne pripada nobeni datoteki, ampak vsebuje sporoèila, ki | 608 | TUTORIAL sprva ni pripadala datoteka, zdaj pa mu, ker smo v prejÅ¡njem |
| 615 | jih je Emacs izpisoval v odzivnem podroèju na dnu zaslona. | 609 | razdelku vtipkali C-x C-s in ga shranili v datoteko. |
| 616 | 610 | ||
| 617 | >> Vtipkajte C-x b *Messages* <Return> in si oglejte delovno podroèje | 611 | Tudi delovno podroÄje »Messages« ne pripada nobeni datoteki, ampak |
| 618 | s sporoèili, zatem pa vtipkajte C-x b TUTORIAL <Return> in se tako | 612 | vsebuje sporoÄila, ki jih je Emacs izpisoval v odzivnem podroÄju na |
| 619 | vrnite v uèbenik. | 613 | dnu zaslona. |
| 620 | 614 | ||
| 621 | Èe ste spreminjali besedilo ene datoteke, potem pa poiskali drugo, to | 615 | >> Vtipkajte C-x b *Messages* <Return> in si oglejte delovno podroÄje |
| 616 | s sporoÄili, zatem pa vtipkajte C-x b TUTORIAL <Return> in se tako | ||
| 617 | vrnite v uÄbenik. | ||
| 618 | |||
| 619 | ÄŒe ste spreminjali besedilo ene datoteke, potem pa poiskali drugo, to | ||
| 622 | ne shrani spremeb v prvo datoteko. Te ostanejo znotraj Emacsa, na | 620 | ne shrani spremeb v prvo datoteko. Te ostanejo znotraj Emacsa, na |
| 623 | delovnem podroèju, ki pripada prvi datoteki. Ustvarjenje ali | 621 | delovnem podroÄju, ki pripada prvi datoteki. Ustvarjenje ali |
| 624 | spreminjanje delovnega podroèja druge datoteke nima nobenega vpliva na | 622 | spreminjanje delovnega podroÄja druge datoteke nima nobenega vpliva na |
| 625 | podroèje prve. To je zelo uporabno, pomeni pa tudi, da potrebujemo | 623 | podroÄje prve. To je zelo uporabno, pomeni pa tudi, da potrebujemo |
| 626 | udobno pot, da shranimo delovno podroèje prve datoteke. Nerodno bi | 624 | udobno pot, da shranimo delovno podroÄje prve datoteke. Nerodno bi |
| 627 | bilo preklapljanje na prvo podroèje s C-x C-f, da bi shranili s C-x | 625 | bilo preklapljanje na prvo podroÄje s C-x C-f, da bi shranili s C-x |
| 628 | C-s. Namesto tega imamo: | 626 | C-s. Namesto tega imamo: |
| 629 | 627 | ||
| 630 | C-x s Shrani nekatera delovna podroèja | 628 | C-x s Shrani nekatera delovna podroÄja |
| 631 | 629 | ||
| 632 | Ukaz C-x poi¹èe delovna podroèja, katerih vsebina je bila spremenjena, | 630 | Ukaz C-x poiÅ¡Äe delovna podroÄja, katerih vsebina je bila spremenjena, |
| 633 | odkar je bila zadnjiè shranjena na datoteko. Za vsako tako delovno | 631 | odkar je bila zadnjiÄ shranjena na datoteko. Za vsako tako delovno |
| 634 | podroèje C-x s vpra¹a, èe ga ¾elite shraniti. | 632 | podroÄje C-x s vpraÅ¡a, Äe ga želite shraniti. |
| 635 | 633 | ||
| 636 | 634 | ||
| 637 | * RAZ©IRJEN NABOR UKAZOV | 635 | * RAZÅ IRJEN NABOR UKAZOV |
| 638 | ------------------------ | 636 | ------------------------ |
| 639 | 637 | ||
| 640 | ©e mnogo, mnogo je ukazov Emacsa, ki bi zaslu¾ili, da jih obesimo na | 638 | Å e mnogo, mnogo je ukazov Emacsa, ki bi zaslužili, da jih obesimo na |
| 641 | razne kontrolne in meta znake. Emacs se temu izogne z ukazom X (iz angl. | 639 | razne kontrolne in meta znake. Emacs se temu izogne z ukazom X (iz angl. |
| 642 | eXtend - raz¹iriti), ki uvede ukaz iz raz¹irjenega nabora. Dveh vrst je: | 640 | eXtend - razÅ¡iriti), ki uvede ukaz iz razÅ¡irjenega nabora. Dveh vrst je: |
| 643 | 641 | ||
| 644 | C-x Znakovna raz¹iritev (angl. Character eXtend). | 642 | C-x Znakovna razÅ¡iritev (angl. Character eXtend). |
| 645 | Sledi mu en sam znak. | 643 | Sledi mu en sam znak. |
| 646 | M-x Raz¹iritev s poimenovanim ukazom. Sledi mu dolgo ime | 644 | M-x RazÅ¡iritev s poimenovanim ukazom. Sledi mu dolgo ime |
| 647 | ukaza. | 645 | ukaza. |
| 648 | 646 | ||
| 649 | Tudi ti ukazi so na splo¹no uporabni, ne uporabljamo pa jih tako | 647 | Tudi ti ukazi so na sploÅ¡no uporabni, ne uporabljamo pa jih tako |
| 650 | pogosto kot tiste, ki ste se jih ¾e nauèili. Dva ukaza iz raz¹irjenega | 648 | pogosto kot tiste, ki ste se jih že nauÄili. Dva ukaza iz razÅ¡irjenega |
| 651 | nabora ¾e poznamo: C-x C-f, s katerim poi¹èemo datoteko, in C-x C-s, s | 649 | nabora že poznamo: C-x C-f, s katerim poiÅ¡Äemo datoteko, in C-x C-s, s |
| 652 | katerim datoteko shranimo. ©e en primer je ukaz, s katerim Emacsu | 650 | katerim datoteko shranimo. Å e en primer je ukaz, s katerim Emacsu |
| 653 | povemo, da ¾elimo konèati z delom iz iziti iz Emacsa. Ta ukaz je C-x | 651 | povemo, da želimo konÄati z delom iz iziti iz Emacsa. Ta ukaz je C-x |
| 654 | C-c (ne skrbite: preden konèa, Emacs ponudi, da shrani vse spremenjene | 652 | C-c (ne skrbite: preden konÄa, Emacs ponudi, da shrani vse spremenjene |
| 655 | datoteke). | 653 | datoteke). |
| 656 | 654 | ||
| 657 | Z ukazom C-z Emacs zapustimo samo *zaèasno*, tako da lahko ob vrnitvi | 655 | ÄŒe uporabljate grafiÄni vmesnik, ne potrebujete posebnega ukaza za |
| 658 | nadaljujemo z delom, kjer smo ostali. | 656 | preklop iz Emacsa v katerikoli drug program, ampak to opravite z miško |
| 657 | ali ukazom upravljalnika oken. ÄŒe pa uporabljate besedilni terminal, | ||
| 658 | ki lahko prikazuje le en program naenkrat, morate zaÄasno zapustiti | ||
| 659 | Emacs, da preklopite na drug program. | ||
| 659 | 660 | ||
| 660 | Na sistemih, ki to dopu¹èajo, ukaz C-z izide iz Emacsa v ukazno | 661 | Z ukazom C-z Emacs zapustimo samo *zaÄasno*, tako da lahko ob vrnitvi |
| 661 | lupino, a ga ne konèa - èe uporabljate ukazno lupino C, se lahko | 662 | nadaljujemo z delom, kjer smo ostali. Na sistemih, ki to dopuÅ¡Äajo, |
| 662 | vrnete z ukazom ,fg` ali splo¹neje z ukazom ,,%emacs``. | 663 | ukaz C-z izide iz Emacsa v ukazno lupino, a ga ne konÄa - Äe |
| 664 | uporabljate ukazno lupino C, se lahko vrnete z ukazom »fg« ali | ||
| 665 | splošneje z ukazom »%emacs«. | ||
| 663 | 666 | ||
| 664 | Drugod ukaz C-z po¾ene sekundarno ukazno lupino, tako da lahko | 667 | Drugod ukaz C-z požene sekundarno ukazno lupino, tako da lahko |
| 665 | po¾enete kak¹en drug program in se kasneje vrnete v Emacs. V tem | 668 | poženete kakÅ¡en drug program in se kasneje vrnete v Emacs. V tem |
| 666 | primeru pravzaprav Emacsa ne zapustimo. Ukaz ,,exit`` v ukazni lupini | 669 | primeru pravzaprav Emacsa ne zapustimo. Ukaz »exit« v ukazni lupini |
| 667 | je navadno naèin, da zapremo sekundarno lupino in se vrnemo v Emacs. | 670 | je navadno naÄin, da zapremo sekundarno lupino in se vrnemo v Emacs. |
| 668 | 671 | ||
| 669 | Ukaz C-x C-c uporabimo, èe se nameravamo odjaviti s sistema. To je | 672 | Ukaz C-x C-c uporabimo, Äe se nameravamo odjaviti s sistema. To je |
| 670 | tudi pravilen naèin za izhod iz Emacsa, èe je tega pognal program za | 673 | tudi pravilen naÄin za izhod iz Emacsa, Äe je tega pognal program za |
| 671 | delo s po¹to ali kak drug program, saj ta verjetno ne ve, kaj | 674 | delo s poÅ¡to ali kak drug program. |
| 672 | napraviti z zaèasno prekinjenim Emacsom. V vseh ostalih primerih pa, | ||
| 673 | èe se ne nameravate odjaviti s sistema, uporabite C-z, in se vrnite v | ||
| 674 | Emacs, ko bi radi spet urejali besedilo. | ||
| 675 | 675 | ||
| 676 | Ukazov C-x je veliko. Zaenkrat smo spoznali naslednje: | 676 | Ukazov C-x je veliko. Zaenkrat smo spoznali naslednje: |
| 677 | 677 | ||
| 678 | C-x C-f Poi¹èi datoteko. | 678 | C-x C-f PoiÅ¡Äi datoteko. |
| 679 | C-x C-s Shrani datoteko. | 679 | C-x C-s Shrani datoteko. |
| 680 | C-x C-b Prika¾i seznam delovnih podroèij. | 680 | C-x C-b Prikaži seznam delovnih podroÄij. |
| 681 | C-x C-c Konèaj Emacs. | 681 | C-x C-c KonÄaj Emacs. |
| 682 | C-x 1 Zapri vsa okna razen enega. | 682 | C-x 1 Zapri vsa okna razen enega. |
| 683 | C-x u Preklic zadnjega ukaza. | 683 | C-x u Preklic zadnjega ukaza. |
| 684 | 684 | ||
| 685 | Poimenovani raz¹irjeni ukazi so ukazi, ki se uporabljajo ¹e bolj | 685 | Poimenovani razÅ¡irjeni ukazi so ukazi, ki se uporabljajo Å¡e bolj |
| 686 | poredko, ali pa se uporabljajo samo v nekaterih naèinih dela. Eden | 686 | poredko, ali pa se uporabljajo samo v nekaterih naÄinih dela. Eden |
| 687 | takih je na primer ukaz replace-string, ki po vsem besedilu zamenja en | 687 | takih je na primer ukaz replace-string, ki po vsem besedilu zamenja en |
| 688 | niz znakov z drugim. Ko vtipkate M-x, se to izpi¹e v pogovornem | 688 | niz znakov z drugim. Ko vtipkate M-x, se to izpiÅ¡e v pogovornem |
| 689 | vmesniku na dnu zaslona, Emacs pa èaka, da vtipkate ime ukaza, ki ga | 689 | vmesniku na dnu zaslona, Emacs pa Äaka, da vtipkate ime ukaza, ki ga |
| 690 | ¾elite priklicati; v tem primeru je to ,,replace-string``. Vtipkajte | 690 | želite priklicati; v tem primeru je to »replace-string«. Vtipkajte |
| 691 | samo ,,repl s<TAB>`` in Emacs bo dopolnil ime (<TAB> je tabulatorska | 691 | samo »repl s<TAB>« in Emacs bo dopolnil ime (<TAB> je tabulatorska |
| 692 | tipka; navadno jo najdemo nad tipko Caps Lock ali Shift na levi strani | 692 | tipka; navadno jo najdemo nad tipko Caps Lock ali Shift na levi strani |
| 693 | tipkovnice). Ukaz vnesete s pritiskom na <Return>. | 693 | tipkovnice). Ukaz vnesete s pritiskom na <Return>. |
| 694 | 694 | ||
| 695 | Ukaz replace-string potrebuje dva argumenta -- niz, ki ga ¾elite | 695 | Ukaz replace-string potrebuje dva argumenta -- niz, ki ga želite |
| 696 | zamenjati, in niz, s katerim bi radi zamenjali prvega. Vsakega posebej | 696 | zamenjati, in niz, s katerim bi radi zamenjali prvega. Vsakega posebej |
| 697 | vnesete in zakljuèite s pritiskom na tipko Return. | 697 | vnesete in zakljuÄite s pritiskom na tipko Return. |
| 698 | 698 | ||
| 699 | >> Premaknite kazalèek na prazno vrstico dve vrstici pod to, zatem | 699 | >> Premaknite kazalÄek na prazno vrstico dve vrstici pod to, zatem |
| 700 | vtipkajte M-x repl s<Return>zamenjala<Return>spremenila<Return>. | 700 | vtipkajte M-x repl s<Return>zamenjala<Return>spremenila<Return>. |
| 701 | 701 | ||
| 702 | Opazite, kako se je ta vrstica zamenjala? Vse besede | 702 | Opazite, kako se je ta vrstica zamenjala? Vse besede |
| 703 | z-a-m-e-n-j-a-l-a od tod do konca besedila ste nadomestili z besedo | 703 | z-a-m-e-n-j-a-l-a od tod do konca besedila ste nadomestili z besedo |
| 704 | ,,spremenila``. | 704 | »spremenila«. |
| 705 | 705 | ||
| 706 | 706 | ||
| 707 | * AVTOMATIÈNO SHRANJEVANJE | 707 | * AVTOMATIÄŒNO SHRANJEVANJE |
| 708 | -------------------------- | 708 | -------------------------- |
| 709 | 709 | ||
| 710 | Spremembe v datoteki, ki jih ¹e niste shranili na disk, so izgubljene, | 710 | Spremembe v datoteki, ki jih Å¡e niste shranili na disk, so izgubljene, |
| 711 | èe medtem denimo zmanjka elektrike. Da bi vas zavaroval pred tem, | 711 | Äe medtem denimo zmanjka elektrike. Da bi vas zavaroval pred tem, |
| 712 | Emacs periodièno avtomatièno shrani vse datoteke, ki jih | 712 | Emacs periodiÄno avtomatiÄno shrani vse datoteke, ki jih |
| 713 | urejate. Avtomatièno shranjena datoteka se od izvorne razlikuje po | 713 | urejate. AvtomatiÄno shranjena datoteka se od izvorne razlikuje po |
| 714 | znaku ,#` na zaèetku in koncu imena: èe se je va¹a datoteka imenovala | 714 | znaku »#« na zaÄetku in koncu imena: Äe se je vaÅ¡a datoteka imenovala |
| 715 | ,,hello.c``, se avtomatièno shranjena datoteka imenuje | 715 | »hello.c«, se avtomatiÄno shranjena datoteka imenuje |
| 716 | ,,#hello.c#``. Ko normalno shranite datoteko, avtomatièno shranjena | 716 | »#hello.c#«. Ko normalno shranite datoteko, avtomatiÄno shranjena |
| 717 | datoteka ni veè potrebna, in Emacs jo pobri¹e. | 717 | datoteka ni veÄ potrebna, in Emacs jo pobriÅ¡e. |
| 718 | 718 | ||
| 719 | Èe res pride do izgube podatkov v pomnilniku, lahko povrnete avtomatièno | 719 | ÄŒe res pride do izgube podatkov v pomnilniku, lahko povrnete avtomatiÄno |
| 720 | shranjeno besedilo tako, da normalno poi¹èete datoteko (pravo ime | 720 | shranjeno besedilo tako, da normalno poiÅ¡Äete datoteko (pravo ime |
| 721 | datoteke, ne ime avtomatièno shranjene datoteke), zatem pa vtipkate M-x | 721 | datoteke, ne ime avtomatiÄno shranjene datoteke), zatem pa vtipkate M-x |
| 722 | recover file<Return>. Ko vas vpra¹a za potrditev, vtipkajte yes<Return> | 722 | recover-file <Return>. Ko vas vpraÅ¡a za potrditev, vtipkajte yes<Return> |
| 723 | za nadaljevanje in povrnitev avtomatièno shranjenenih podatkov. | 723 | za nadaljevanje in povrnitev avtomatiÄno shranjenenih podatkov. |
| 724 | 724 | ||
| 725 | 725 | ||
| 726 | * ODZIVNO PODROÈJE | 726 | * ODZIVNO PODROÄŒJE |
| 727 | ------------------ | 727 | ------------------ |
| 728 | 728 | ||
| 729 | Kadar Emacs opazi, da poèasi vtipkavate ukaz, odpre v zadnji vrstici | 729 | Kadar Emacs opazi, da poÄasi vtipkavate ukaz, odpre v zadnji vrstici |
| 730 | na dnu zaslona odzivno podroèje in v njem sproti prikazuje natipkano. | 730 | na dnu zaslona odzivno podroÄje in v njem sproti prikazuje natipkano. |
| 731 | 731 | ||
| 732 | 732 | ||
| 733 | * STATUSNA VRSTICA | 733 | * STATUSNA VRSTICA |
| 734 | ------------------ | 734 | ------------------ |
| 735 | 735 | ||
| 736 | Vrstica nad odzivnim podroèjem je statusna vrstica. Ta ka¾e verjetno | 736 | Vrstica nad odzivnim podroÄjem je statusna vrstica. Ta kaže verjetno |
| 737 | nekaj podobnega kot: | 737 | nekaj podobnega kot: |
| 738 | 738 | ||
| 739 | --:** TUTORIAL (Fundamental)--L670--58%---------------------- | 739 | --:**- TUTORIAL (Fundamental)--L670--58%---------------------- |
| 740 | 740 | ||
| 741 | V njej so izpisani pomembni podatki o stanju Emacsa in besedilu, ki ga | 741 | V njej so izpisani pomembni podatki o stanju Emacsa in besedilu, ki ga |
| 742 | urejate. | 742 | urejate. |
| 743 | 743 | ||
| 744 | Zdaj ¾e veste, kaj pomeni ime datoteke -- to je datoteka, ki ste jo | 744 | Zdaj že veste, kaj pomeni ime datoteke -- to je datoteka, ki ste jo |
| 745 | poiskali. Oznaka --NN%-- pomeni, da je nad vrhom zaslona ¹e NN | 745 | poiskali. Oznaka --NN%-- pomeni, da je nad vrhom zaslona Å¡e NN |
| 746 | odstotkov celotne datoteke. Èe je zaèetek datoteke na zaslonu, bo | 746 | odstotkov celotne datoteke. ÄŒe je zaÄetek datoteke na zaslonu, bo |
| 747 | namesto --00%-- pisalo --Top--. Podobno bo pisalo --Bot--, èe je | 747 | namesto »0%« pisalo »Top«. Podobno bo pisalo »Bot«, Äe je |
| 748 | zadnja vrstica datoteke na zaslonu. Èe je datoteka, ki jo ogledujete, | 748 | zadnja vrstica datoteke na zaslonu. ÄŒe je datoteka, ki jo ogledujete, |
| 749 | tako kratka, da gre vsa na en zaslon, pa bo pisalo --All--. | 749 | tako kratka, da gre vsa na en zaslon, pa bo pisalo »All«. |
| 750 | 750 | ||
| 751 | Èrka L in ¹tevilke za njo ka¾ejo polo¾aj ¹e drugaèe, kot zaporedno | 751 | ÄŒrka L in Å¡tevilke za njo kažejo položaj Å¡e drugaÄe, kot zaporedno |
| 752 | ¹tevilko vrstice, v kateri je kazalèek. | 752 | Å¡tevilko vrstice, v kateri je kazalÄek. |
| 753 | 753 | ||
| 754 | Zvezdice na zaèetku vrstice pomenijo, da ste datoteko ¾e spreminjali. | 754 | Zvezdice na zaÄetku vrstice pomenijo, da ste datoteko že spreminjali. |
| 755 | Tik po tem, ko ste odprli ali shranili datoteko, ni nobenih zvezdic, | 755 | Tik po tem, ko ste odprli ali shranili datoteko, ni nobenih zvezdic, |
| 756 | so samo èrtice. | 756 | so samo Ärtice. |
| 757 | 757 | ||
| 758 | Del statusne vrstice znotraj oklepajev vam pove, v kak¹nem naèinu dela | 758 | Del statusne vrstice znotraj oklepajev vam pove, v kakÅ¡nem naÄinu dela |
| 759 | Emacs. Privzeti naèin je osnovni naèin (Fundamental), v katerem ste | 759 | Emacs. Privzeti naÄin je osnovni naÄin (Fundamental), v katerem ste |
| 760 | sedaj. Fundamental je eden od glavnih naèinov (angl. major | 760 | sedaj. Fundamental je eden od glavnih naÄinov (angl. major |
| 761 | mode). Emacs pozna veliko razliènih glavnih naèinov. Nekateri od njih | 761 | mode). Emacs pozna veliko razliÄnih glavnih naÄinov. Nekateri od njih |
| 762 | so namenjeni pisanju programov, kot na primer Lisp, ali pisanju | 762 | so namenjeni pisanju programov, kot na primer Lisp, ali pisanju |
| 763 | besedil, kot npr. Text. Naenkrat je lahko aktiven le en glavni naèin, | 763 | besedil, kot npr. Text. Naenkrat je lahko aktiven le en glavni naÄin, |
| 764 | njegovo ime pa je vedno izpisano v statusni vrstici, kjer zdaj pi¹e | 764 | njegovo ime pa je vedno izpisano v statusni vrstici, kjer zdaj piÅ¡e |
| 765 | Fundamental. | 765 | Fundamental. |
| 766 | 766 | ||
| 767 | Glavni naèini lahko spremenijo pomen nekaterim ukazom. Obstajajo, | 767 | Glavni naÄini lahko spremenijo pomen nekaterim ukazom. Obstajajo, |
| 768 | denimo, ukazi za pisanje komentarjev v programu, in ker ima vsak | 768 | denimo, ukazi za pisanje komentarjev v programu, in ker ima vsak |
| 769 | programski jezik svoje predstave o tem, kako mora komentar izgledati, | 769 | programski jezik svoje predstave o tem, kako mora komentar izgledati, |
| 770 | mora vsak glavni naèin vnesti komentarje drugaèe. Ker je vsak glavni | 770 | mora vsak glavni naÄin vnesti komentarje drugaÄe. Ker je vsak glavni |
| 771 | naèin ime raz¹irjenega ukaza, lahko tako tudi izbiramo glavni | 771 | naÄin ime razÅ¡irjenega ukaza, lahko tako tudi izbiramo glavni |
| 772 | naèin. Na primer, M-x fundamental-mode vas postavi v naèin | 772 | naÄin. Na primer, M-x fundamental-mode vas postavi v naÄin |
| 773 | Fundamental. | 773 | Fundamental. |
| 774 | 774 | ||
| 775 | Èe nameravate popravljati slovensko (ali angle¹ko) besedilo, kot je na | 775 | ÄŒe nameravate popravljati slovensko (ali angleÅ¡ko) besedilo, kot je na |
| 776 | primer tole, boste verjetno izbrali tekstovni naèin (Text). | 776 | primer tole, boste verjetno izbrali tekstovni naÄin (Text). |
| 777 | >> Vtipkajte M-x text mode<Return>. | 777 | >> Vtipkajte M-x text-mode <Return>. |
| 778 | 778 | ||
| 779 | Brez skrbi, noben od ukazov Emacsa, ki ste se jih nauèili, se s tem ne | 779 | Brez skrbi, noben od ukazov Emacsa, ki ste se jih nauÄili, se s tem ne |
| 780 | spremeni kaj dosti. Lahko pa opazite, da Emacs zdaj jemlje opu¹èaje za | 780 | spremeni kaj dosti. Lahko pa opazite, da Emacs zdaj jemlje opuÅ¡Äaje za |
| 781 | dele besed, ko se premikate z M-f ali M-b. V osnovnem naèinu jih je | 781 | dele besed, ko se premikate z M-f ali M-b. V osnovnem naÄinu jih je |
| 782 | obravnaval kot meje med besedami. | 782 | obravnaval kot meje med besedami. |
| 783 | 783 | ||
| 784 | Glavni naèini navadno poèenjajo majhne spremembe, kot je ta: veèina | 784 | Glavni naÄini navadno poÄenjajo majhne spremembe, kot je ta: veÄina |
| 785 | ukazov ,,opravi isti posel``, vendar pa to poènejo na razlièen naèin. | 785 | ukazov »opravi isti posel«, vendar pa to poÄnejo na razliÄen naÄin. |
| 786 | 786 | ||
| 787 | Dokumentacijo o trenutno aktivnem glavnem naèinu dobite z ukazom C-h m. | 787 | Dokumentacijo o trenutno aktivnem glavnem naÄinu dobite z ukazom C-h m. |
| 788 | 788 | ||
| 789 | >> Uporabite C-u C-v enkrat ali veèkrat, toliko, da bo ta vrstica blizu | 789 | >> Vtipkajte C-l C-l, da postavite to vrstico na vrh zaslona. |
| 790 | vrha zaslona. | 790 | >> Vtipkajte C-h m, da vidite, v Äem se tekstovni naÄin (Text) razlikuje |
| 791 | >> Vtipkajte C-h m, da vidite, v èem se tekstovni naèin (Text) razlikuje | ||
| 792 | od osnovnega (Fundamental). | 791 | od osnovnega (Fundamental). |
| 793 | >> Vtipkajte C-x 1, da umaknete dokumentacijo z zaslona. | 792 | >> Vtipkajte C-x 1, da umaknete dokumentacijo z zaslona. |
| 794 | 793 | ||
| 795 | Glavnim naèinom pravimo glavni naèini zato, ker obstajajo tudi | 794 | Glavnim naÄinom pravimo glavni naÄini zato, ker obstajajo tudi |
| 796 | podnaèini (angl. minor modes). Podnaèini ne nadome¹èajo glavnih | 795 | podnaÄini (angl. minor modes). PodnaÄini ne nadomeÅ¡Äajo glavnih |
| 797 | naèinom, ampak le spreminjajo njihovo obna¹anje. Podnaèine lahko | 796 | naÄinom, ampak le spreminjajo njihovo obnaÅ¡anje. PodnaÄine lahko |
| 798 | aktiviramo ali deaktiviramo neodvisno od glavnega naèina in neodvisno | 797 | aktiviramo ali deaktiviramo neodvisno od glavnega naÄina in neodvisno |
| 799 | od ostalih podnaèinov. Tako lahko ne uporabljate nobenega podnaèina, | 798 | od ostalih podnaÄinov. Tako lahko ne uporabljate nobenega podnaÄina, |
| 800 | en podnaèin, ali kombinacijo veèih podnaèinov. | 799 | en podnaÄin, ali kombinacijo veÄih podnaÄinov. |
| 801 | 800 | ||
| 802 | Podnaèin, ki je zelo uporaben posebno za pisanje besedil, je Auto | 801 | PodnaÄin, ki je zelo uporaben posebno za pisanje besedil, je Auto |
| 803 | Fill. Ko je vklopljen, Emacs med pisanjem avtomatièno deli vrstice na | 802 | Fill. Ko je vklopljen, Emacs med pisanjem avtomatiÄno deli vrstice na |
| 804 | presledkih med besedami, tako da vrstice niso predolge. | 803 | presledkih med besedami, tako da vrstice niso predolge. |
| 805 | 804 | ||
| 806 | Vklopite ga lahko z ukazom M-x auto fill mode<Return>. Ko je | 805 | Vklopite ga lahko z ukazom M-x auto-fill-mode <Return>. Ko je |
| 807 | vklopljen, ga lahko izklopite z istim ukazom, M-x | 806 | vklopljen, ga lahko izklopite z istim ukazom, M-x auto-fill-mode |
| 808 | auto fill mode<Return>. Z istim ukazom torej preklapljamo | 807 | <Return>. Z istim ukazom torej preklapljamo (angl. toggle) med |
| 809 | (angl. toggle) med vklopljenim in izklopljenim stanjem. | 808 | vklopljenim in izklopljenim stanjem. |
| 810 | 809 | ||
| 811 | >> Vtipkajte zdaj M-x auto fill mode<Return>. Potem zaènite tipkati | 810 | >> Vtipkajte zdaj M-x auto-fill-mode <Return>. Potem zaÄnite tipkati |
| 812 | "asdf asdkl sdjf sdjkf"... dokler ne opazite, da je Emacs razbil | 811 | »asdf asdkl sdjf sdjkf«... dokler ne opazite, da je Emacs razbil |
| 813 | vrstico na dve. Med tipkanjem mora biti dovolj presledkov, saj | 812 | vrstico na dve. Med tipkanjem mora biti dovolj presledkov, saj |
| 814 | Auto Fill prelamlja vrstice samo na presledkih. | 813 | Auto Fill prelamlja vrstice samo na presledkih. |
| 815 | 814 | ||
| 816 | ©irina besedila je navadno postavljena na 70 znakov, kar pa lahko | 815 | Å irina besedila je navadno postavljena na 70 znakov, kar pa lahko |
| 817 | spremenite z ukazom C-x f. Novo ¹irino morate podati kot ¹tevilèni | 816 | spremenite z ukazom C-x f. Novo Å¡irino morate podati kot Å¡tevilÄni |
| 818 | argument. | 817 | argument. |
| 819 | 818 | ||
| 820 | >> Vtipkajte C-x f in argument 20. (C-u 2 0 C-x f). Zatem vtipkajte | 819 | >> Vtipkajte C-x f in argument 20. (C-u 2 0 C-x f). Zatem vtipkajte |
| 821 | nekaj besedila in poglejte, èe bo Emacs res delil vrstice pri 20 | 820 | nekaj besedila in poglejte, Äe bo Emacs res delil vrstice pri 20 |
| 822 | znakih. Potem z ukazom C-x f postavite mejo nazaj na 70. | 821 | znakih. Potem z ukazom C-x f postavite mejo nazaj na 70. |
| 823 | 822 | ||
| 824 | Auto Fill deluje le, kadar pi¹ete novo besedilo, ne pa, | 823 | Auto Fill deluje le, kadar piÅ¡ete novo besedilo, ne pa, |
| 825 | kadar popravljate ¾e napisan odstavek. | 824 | kadar popravljate že napisan odstavek. |
| 826 | Tak odstavek lahko poravnate tako, da kazalèek premaknete nekam | 825 | Tak odstavek lahko poravnate tako, da kazalÄek premaknete nekam |
| 827 | znotraj odstavka in uka¾ete M-q (META-q). | 826 | znotraj odstavka in ukažete M-q (META-q). |
| 828 | 827 | ||
| 829 | >> Premaknite kazalèek v prej¹nji odstavek in izvedite M-q. | 828 | >> Premaknite kazalÄek v prejÅ¡nji odstavek in izvedite M-q. |
| 830 | 829 | ||
| 831 | 830 | ||
| 832 | * ISKANJE | 831 | * ISKANJE |
| 833 | --------- | 832 | --------- |
| 834 | 833 | ||
| 835 | Emacs lahko v besedilu poi¹èe niz znakov (zaporedje znakov ali besed), | 834 | Emacs lahko v besedilu poiÅ¡Äe niz znakov (»niz« je zaporedje soslednih |
| 836 | naprej ali nazaj po besedilu. Iskanje spada v skupino ukazov za | 835 | znakov), naprej ali nazaj po besedilu. Iskanje spada v skupino ukazov |
| 837 | premikanje kazalèka, saj premakne kazalèek na kraj v besedilu, kjer je | 836 | za premikanje kazalÄka, saj premakne kazalÄek na kraj v besedilu, kjer |
| 838 | na¹el iskani niz. | 837 | je naÅ¡el iskani niz. |
| 839 | 838 | ||
| 840 | Iskanje v Emacsu je morda nekoliko drugaèno od tistega, ki ste ga | 839 | Iskanje v Emacsu je »inkrementalno«. To pomeni, da se iskanje odvija |
| 841 | navajeni, in sicer je ,,inkrementalno``. To pomeni, da se iskanje | 840 | hkrati s tem, ko tipkate iskani niz. |
| 842 | odvija hkrati s tem, ko tipkate iskani niz. | ||
| 843 | 841 | ||
| 844 | Ukaza za iskanje sta C-s za iskanje naprej po datoteki in C-r za | 842 | Ukaza za iskanje sta C-s za iskanje naprej po datoteki in C-r za |
| 845 | iskanje nazaj po datoteki. POÈAKAJTE! Ne preizku¹ajte jih ¹e ta hip! | 843 | iskanje nazaj po datoteki. POÄŒAKAJTE! Ne preizkuÅ¡ajte jih Å¡e ta hip! |
| 846 | 844 | ||
| 847 | Ko boste natipkali C-s, boste opazili niz ,,I-search`` kot pozivnik | 845 | Ko boste natipkali C-s, boste opazili niz »I-search« kot pozivnik |
| 848 | v pogovornem vmesniku. To vam pove, da je Emacs v inkrementalnem iskanju | 846 | v pogovornem vmesniku. To vam pove, da je Emacs v inkrementalnem iskanju |
| 849 | in vas èaka, da zaènete tipkati, kar i¹èete. <Return> zakljuèi iskanje. | 847 | in vas Äaka, da zaÄnete tipkati, kar iÅ¡Äete. <Return> zakljuÄi iskanje. |
| 850 | 848 | ||
| 851 | >> Pritisnite zdaj C-s. POÈASI, èrko za èrko, vtipkajte besedo | 849 | >> Pritisnite zdaj C-s. POÄŒASI, Ärko za Ärko, vtipkajte besedo |
| 852 | ,,kazalèek``. Za vsako vtipkano èrko se ustavite in si oglejte, kaj | 850 | »kazalÄek«. Za vsako vtipkano Ärko se ustavite in si oglejte, kaj |
| 853 | se je zgodilo s kazalèkom. | 851 | se je zgodilo s kazalÄkom. |
| 854 | >> ©e enkrat pritisnite C-s, da poi¹èete naslednji ,,kazalèek``. | 852 | >> Å e enkrat pritisnite C-s, da poiÅ¡Äete naslednji »kazalÄek«. |
| 855 | >> ©estkrat pritisnite <Delback> in opazujte, kako se premika kazalèek. | 853 | >> Å estkrat pritisnite <DEL> in opazujte, kako se premika kazalÄek. |
| 856 | >> Konèajte iskanje s tipko <Return>. | 854 | >> KonÄajte iskanje s tipko <Return>. |
| 857 | 855 | ||
| 858 | Ste videli, kaj se je zgodilo? Emacs pri inkrementalnem iskanju sku¹a | 856 | Ste videli, kaj se je zgodilo? Emacs pri inkrementalnem iskanju skuÅ¡a |
| 859 | poiskati niz, ki ste ga natipkali do tistega hipa. Da poi¹èete | 857 | poiskati niz, ki ste ga natipkali do tistega hipa. Da poiÅ¡Äete |
| 860 | naslednje mesto, kjer se pojavi ,,kazalèek``, samo ¹e enkrat | 858 | naslednje mesto, kjer se pojavi »kazalÄek«, samo Å¡e enkrat |
| 861 | pritisnete C-s. Èe takega mesta ni, Emacs èivkne in vam sporoèi, da | 859 | pritisnete C-s. ÄŒe takega mesta ni, Emacs Äivkne in vam sporoÄi, da |
| 862 | iskanje ni uspelo. Tudi C-g prekine iskanje. | 860 | iskanje ni uspelo. Tudi C-g prekine iskanje. |
| 863 | 861 | ||
| 864 | OPOZORILO: Na nekaterih sistemih bo s pritiskom na C-s ekran | 862 | ÄŒe sredi inkrementalnega iskanja pritisnete <DEL>, boste opazili, |
| 865 | zmrznil. To je znak, da je operacijski sistem prestregel znak C-s in | 863 | da to pobriÅ¡e zadnji znak v iskanem nizu, kazalÄek pa se premakne |
| 866 | ga interpretiral kot znak za prekinitev toka podatkov, namesto da bi | 864 | nazaj na mesto v besedilu, kjer je našel krajši niz. Na primer, |
| 867 | ga posredoval programu Emacs. Ekran ,,odtajate`` s pritiskom na | 865 | predpostavimo, da ste do zdaj natipkali »ka« in je kazalÄek na |
| 868 | C-q. Potem si oglejte razdelek ,,Spontaneous Entry to Incremental | 866 | mestu, kjer se prviÄ pojavi »ka«. ÄŒe zdaj pritisnete <DEL>, boste |
| 869 | Search`` v priroèniku za nasvet, kako se spopasti s to nev¹eènostjo. | 867 | s tem v pogovornem vmesniku izbrisali »a«, hkrati pa se bo kazalÄek |
| 870 | 868 | postavil na mesto, kjer je prviÄ naÅ¡el »k«, preden ste natipkali Å¡e | |
| 871 | Èe sredi inkrementalnega iskanja pritisnete <Delback>, boste opazili, | 869 | »a«. |
| 872 | da to pobri¹e zadnji znak v iskanem nizu, kazalèek pa se premakne | 870 | |
| 873 | nazaj na mesto v besedilu, kjer je na¹el kraj¹i niz. Na primer, | 871 | ÄŒe sredi iskanja vtipkate katerikoli kontrolni znaki ali metaznak |
| 874 | predpostavimo, da ste do zdaj natipkali ,,ka`` in je kazalèek na | ||
| 875 | mestu, kjer se prviè pojavi ,,ka``. Èe zdaj pritisnete <Delback>, boste | ||
| 876 | s tem v pogovornem vmesniku izbrisali ,a`, hkrati pa se bo kazalèek | ||
| 877 | postavil na mesto, kjer je prviè na¹el ,k`, preden ste natipkali ¹e | ||
| 878 | ,a`. | ||
| 879 | |||
| 880 | Èe sredi iskanja vtipkate katerikoli kontrolni znaki ali metaznak | ||
| 881 | (razen tistih, ki imajo poseben pomen pri iskanju, to sta C-s in C-r), | 872 | (razen tistih, ki imajo poseben pomen pri iskanju, to sta C-s in C-r), |
| 882 | se iskanje prekine. | 873 | se iskanje prekine. |
| 883 | 874 | ||
| 884 | C-s zaène iskati na mestu v datoteki, kjer trenutno stoji kazalèek, in | 875 | C-s zaÄne iskati na mestu v datoteki, kjer trenutno stoji kazalÄek, in |
| 885 | i¹èe do konca datoteke. Èe bi radi iskali proti zaèetku datoteke, | 876 | iÅ¡Äe do konca datoteke. ÄŒe bi radi iskali proti zaÄetku datoteke, |
| 886 | namesto C-s vtipkamo C-r. Vse, kar smo povedali o ukazu C-s, velja | 877 | namesto C-s vtipkamo C-r. Vse, kar smo povedali o ukazu C-s, velja |
| 887 | tudi za C-r, le smer iskanja je obrnjena. | 878 | tudi za C-r, le smer iskanja je obrnjena. |
| 888 | 879 | ||
| 889 | 880 | ||
| 890 | * VEÈ OKEN NA ZASLONU | 881 | * VEÄŒ OKEN NA ZASLONU |
| 891 | --------------------- | 882 | --------------------- |
| 892 | 883 | ||
| 893 | Ena simpatiènih lastnosti Emacsa je, da zna hkrati prikazati veè oken | 884 | Ena simpatiÄnih lastnosti Emacsa je, da zna hkrati prikazati veÄ oken |
| 894 | na ekranu, tudi èe ne delamo v grafiènem naèinu. | 885 | na zaslonu, tudi Äe ne delamo v grafiÄnem naÄinu. (Opozorimo naj, da |
| 886 | Emacs uporablja izraz »okvir« (angl. »frame«) - razložen je v | ||
| 887 | naslednjem razdelku - za tisto, Äemur nekateri drugi programi pravijo | ||
| 888 | »okno« (angl. »window«). PriroÄnik za Emacs vsebuje glosar | ||
| 889 | uporabljenih izrazov.) | ||
| 895 | 890 | ||
| 896 | >> Premaknite kazalèek v to vrstico in vtipkajte C-u 0 C-l (zadnji | 891 | >> Premaknite kazalÄek v to vrstico in vtipkajte C-l C-l. |
| 897 | znak je CONTROL-L, ne CONTROL-1) | ||
| 898 | >> Zdaj vtipkajte C-x 2, da razdelite zaslon na dve okni. | 892 | >> Zdaj vtipkajte C-x 2, da razdelite zaslon na dve okni. |
| 899 | V obeh oknih imate odprt ta priroènik. Kazalèek je ostal v zgornjem | 893 | V obeh oknih imate odprt ta priroÄnik. KazalÄek je ostal v zgornjem |
| 900 | oknu. | 894 | oknu. |
| 901 | >> Pritisnite C-M-v za listanje v spodnjem oknu. | 895 | >> Pritisnite C-M-v za listanje v spodnjem oknu. |
| 902 | (Èe nimate tipke META, tipkajte ESC C-v). | 896 | (ÄŒe nimate tipke META, tipkajte ESC C-v). |
| 903 | >> Vtipkajte C-x o (o kot ,,other``, drugi), da preselite kazalèek v | 897 | >> Vtipkajte C-x o (o kot »other«, drugi), da preselite kazalÄek v |
| 904 | spodnje okno. | 898 | spodnje okno. |
| 905 | >> S C-v in M-v se v spodnjem oknu premikate po vsebini datoteke. | 899 | >> Z ukazoma C-v in M-v se v spodnjem oknu premikate po vsebini |
| 906 | Zgornje okno ¹e vedno ka¾e ta navodila. | 900 | datoteke. Zgornje okno Å¡e vedno kaže ta navodila. |
| 907 | >> Ponovni C-x o vas vrne v zgornje okno. Kazalèek se je vrnil na | 901 | >> Ponovni C-x o vas vrne v zgornje okno. KazalÄek se je vrnil na |
| 908 | mesto, kjer je bil, preden smo skoèili v spodnje okno. | 902 | mesto, kjer je bil, preden smo skoÄili v spodnje okno. |
| 909 | 903 | ||
| 910 | Z ukazom C-x o lahko preklapljamo med okni. Vsako okno si zapomni, kje | 904 | Z ukazom C-x o lahko preklapljamo med okni. Izbrano okno, torej tisto, |
| 911 | v oknu je ostal kazalèek, samo trenutno aktivno okno pa kazalèek tudi | 905 | v katerem urejamo besedilo, je tisto z zelo opaznim kazalÄkom, ki |
| 912 | v resnici prika¾e. Vsi obièajni ukazi za urejanje, ki smo se jih | 906 | utripa, kadar ne tipkamo. Tudi ostala okna pa si zapomnijo, kje je |
| 913 | nauèili, veljajo za aktivno okno. | 907 | ostal kazalÄek. ÄŒe poganjate Emacs v grafiÄnem naÄinu, je položaj |
| 908 | kazalÄka v teh oknih prikazan kot ne-utripajoÄ Ärtni pravokotnik. | ||
| 914 | 909 | ||
| 915 | Ukaz C-M-v je zelo uporaben, kadar urejamo besedilo v enem oknu, | 910 | Ukaz C-M-v je zelo uporaben, kadar urejamo besedilo v enem oknu, |
| 916 | drugega pa uporabljamo samo za pomoè. Kazalèek ostaja ves èas v oknu, | 911 | drugega pa uporabljamo samo za pomoÄ. Ne da bi zapustili izbrano okno, |
| 917 | v katerem urejamo, po vsebini spodnjega okna pa se vseeno lahko | 912 | se lahko premikamo po vsebini drugega okna z ukazon C-M-v. |
| 918 | premikamo, ne da bi morali venomer skakati iz enega okna v drugega. | ||
| 919 | 913 | ||
| 920 | C-M-v je primer znaka CONTROL-META. Èe imate v resnici tipko META (na | 914 | C-M-v je primer znaka CONTROL-META. ÄŒe imate v resnici tipko META (na |
| 921 | PC navadno levi Alt), lahko vtipkate C-M-v tako, da dr¾ite pritisnjeni | 915 | PC navadno levi Alt), lahko vtipkate C-M-v tako, da držite pritisnjeni |
| 922 | tako CONTROL kot META, medtem ko vtipkate v. Ni pomembno, katero od | 916 | tako CONTROL kot META, medtem ko vtipkate v. Ni pomembno, katero od |
| 923 | tipk, CONTROL ali META, pritisnete prvo, saj obe delujeta ¹ele, ko | 917 | tipk, CONTROL ali META, pritisnete prvo, saj obe delujeta Å¡ele, ko |
| 924 | pritisnete znak, ki sledi (v zgornjem primeru ,v`). | 918 | pritisnete znak, ki sledi (v zgornjem primeru »v«). |
| 925 | 919 | ||
| 926 | Nasprotno pa je vrstni red pritiskanja pomemben, èe nimate tipke META | 920 | Nasprotno pa je vrstni red pritiskanja pomemben, Äe nimate tipke META |
| 927 | in namesto nje uporabljate ESC. V tem primeru morate najprej | 921 | in namesto nje uporabljate <ESC>. V tem primeru morate najprej |
| 928 | pritisniti ESC, potem pa Control-v. Obratna kombinacija, CONTROL-ESC v | 922 | pritisniti <ESC>, potem pa Control-v. Obratna kombinacija, |
| 929 | ne deluje. To je zato, ker je ESC znak sam po sebi, ne pa modifikator, | 923 | CONTROL-<ESC> ne deluje. To je zato, ker je <ESC> znak sam po sebi, ne |
| 930 | kot sta CONTROL in META. | 924 | pa modifikator, kot sta CONTROL in META. |
| 931 | 925 | ||
| 932 | >> V zgornjem oknu vtipkajte C-x 1, da se znebite spodnjega okna. | 926 | >> V zgornjem oknu vtipkajte C-x 1, da se znebite spodnjega okna. |
| 933 | 927 | ||
| 934 | (Èe bi vtipkali C-x 1 v spodnjem oknu, bi se znebili | 928 | (ÄŒe bi vtipkali C-x 1 v spodnjem oknu, bi se znebili |
| 935 | zgornjega. Razmi¹ljajte o tem ukazu kot ,,Obdr¾i samo eno okno, in | 929 | zgornjega. RazmiÅ¡ljajte o tem ukazu kot »Obdrži samo eno okno, in |
| 936 | sicer tisto, v katerem sem zdaj.``) | 930 | sicer tisto, v katerem sem zdaj.«) |
| 937 | 931 | ||
| 938 | Seveda ni nujno, da obe okni ka¾eta isto delovno podroèje. Èe v enem | 932 | Seveda ni nujno, da obe okni kažeta isto delovno podroÄje. ÄŒe v enem |
| 939 | oknu izvedete C-x C-f in poi¹èete novo datoteko, se vsebina drugega | 933 | oknu izvedete C-x C-f in poiÅ¡Äete novo datoteko, se vsebina drugega |
| 940 | okna ne spremeni. V vsakem oknu lahko neodvisno obdelujete drugo | 934 | okna ne spremeni. V vsakem oknu lahko neodvisno obdelujete drugo |
| 941 | datoteko. | 935 | datoteko. |
| 942 | 936 | ||
| 943 | Pa ¹e ena pot, kako v dveh oknih prika¾ete dve razlièni datoteki: | 937 | Pa Å¡e ena pot, kako v dveh oknih prikažete dve razliÄni datoteki: |
| 944 | 938 | ||
| 945 | >> Vtipkajte C-x 4 C-f, in na pozivnik vtipkajte ime ene va¹ih | 939 | >> Vtipkajte C-x 4 C-f, in na pozivnik vtipkajte ime ene vaÅ¡ih |
| 946 | datotek. Konèajte z <Return>. Odpre se ¹e eno okno in izbrana | 940 | datotek. KonÄajte z <Return>. Odpre se Å¡e eno okno in izbrana |
| 947 | datoteka se pojavi v drugem oknu. Tudi kazalèek se preseli v drugo | 941 | datoteka se pojavi v drugem oknu. Tudi kazalÄek se preseli v drugo |
| 948 | okno. | 942 | okno. |
| 949 | 943 | ||
| 950 | >> Vtipkajte C-x o, da se vrnete nazaj v zgornje okno, in C-x 1, da | 944 | >> Vtipkajte C-x o, da se vrnete nazaj v zgornje okno, in C-x 1, da |
| 951 | zaprete spodnje okno. | 945 | zaprete spodnje okno. |
| 952 | 946 | ||
| 953 | 947 | ||
| 948 | * VEČ HKRATNIH OKVIROV | ||
| 949 | ---------------------- | ||
| 950 | |||
| 951 | Emacs lahko ustvari tudi veÄ Â»okvirov«. Okvir je zbirka oken, skupaj z | ||
| 952 | menuji, drsniki, pogovornim vmesnikom ipd. V grafiÄnem naÄinu je | ||
| 953 | Emacsov »okvir« tisto, Äemur veÄina drugih programov pravi »okno«. ÄŒe | ||
| 954 | delate v grafiÄnem naÄinu, je lahko veÄ okvirov hkrati prikazanih na | ||
| 955 | zaslonu. V besedilnem terminalu imamo seveda na voljo le en okvir. | ||
| 956 | |||
| 957 | >> Vtipkajte M-x make-frame <Return> | ||
| 958 | Opazite, kako se je na zaslonu pojavil nov okvir. | ||
| 959 | |||
| 960 | Vse, kar ste poÄeli v prvotnem okviru, lahko poÄnete tudi v novem. | ||
| 961 | Prvi okvir ni v niÄemer poseben. | ||
| 962 | |||
| 963 | >> Vtipkajte M-x delete-frame <Return> | ||
| 964 | Ukaz izbriše izbrani okvir. | ||
| 965 | |||
| 966 | Okvir lahko izbriÅ¡ete tudi z obiÄajnim naÄinom, ki ga ponuja grafiÄni | ||
| 967 | sistem - pogosto s klikom na simbol »X« v enem od zgornjih kotov okna. | ||
| 968 | ÄŒe zaprete zadnji okvir, s tem obenem zaprete tudi Emacs. | ||
| 969 | |||
| 970 | |||
| 954 | * REKURZIVNI NIVOJI UREJANJA | 971 | * REKURZIVNI NIVOJI UREJANJA |
| 955 | ---------------------------- | 972 | ---------------------------- |
| 956 | 973 | ||
| 957 | Vèasih boste pri¹li v nekaj, èemur se pravi ,,rekurzivni nivo | 974 | VÄasih boste priÅ¡li v nekaj, Äemur se pravi »rekurzivni nivo |
| 958 | urejanja``. To se vidi po tem, da v statusni vrstici oglati oklepaji | 975 | urejanja«. To se vidi po tem, da v statusni vrstici oglati oklepaji |
| 959 | oklepajo ime glavnega naèina. V osnovnem naèinu bi, na primer, videli | 976 | oklepajo ime glavnega naÄina. V osnovnem naÄinu bi, na primer, videli |
| 960 | [(Fundamental)] namesto (Fundamental). | 977 | [(Fundamental)] namesto (Fundamental). |
| 961 | 978 | ||
| 962 | Iz rekurzivnega nivoja urejanja se re¹ite, èe vtipkate ESC ESC ESC. To | 979 | Iz rekurzivnega nivoja urejanja se reÅ¡ite, Äe vtipkate ESC ESC ESC. To |
| 963 | zaporedje je vsenamenski ukaz ,,pojdi ven``. Uporabite ga lahko tudi | 980 | zaporedje je vsenamenski ukaz »pojdi ven«. Uporabite ga lahko tudi |
| 964 | za ukinjanje odveènih oken, ali vrnitev iz pogovornega vmesnika. | 981 | za ukinjanje odveÄnih oken, ali vrnitev iz pogovornega vmesnika. |
| 965 | 982 | ||
| 966 | >> Pritisnite M-x, da odprete pogovorni vmesnik, zatem pa vtipkajte | 983 | >> Pritisnite M-x, da odprete pogovorni vmesnik, zatem pa vtipkajte |
| 967 | ESC ESC ESC, da pridete ven iz njega. | 984 | ESC ESC ESC, da pridete ven iz njega. |
| 968 | 985 | ||
| 969 | Z ukazom C-g ne morete iz rekurzivnega nivoja urejanja, ker C-g | 986 | Z ukazom C-g ne morete iz rekurzivnega nivoja urejanja, ker C-g |
| 970 | preklièe ukaze ali argumente ZNOTRAJ rekurzivnega nivoja. | 987 | prekliÄe ukaze ali argumente ZNOTRAJ rekurzivnega nivoja. |
| 971 | 988 | ||
| 972 | 989 | ||
| 973 | * DODATNA POMOÈ | 990 | * DODATNA POMOÄŒ |
| 974 | --------------- | 991 | --------------- |
| 975 | 992 | ||
| 976 | V tem uvodu smo posku¹ali zbrati dovolj informacij, da lahko zaènete | 993 | V tem uvodu smo poskuÅ¡ali zbrati dovolj informacij, da lahko zaÄnete |
| 977 | Emacs uporabljati. Emacs ponuja toliko, da bi bilo nemogoèe vse to | 994 | Emacs uporabljati. Emacs ponuja toliko, da bi bilo nemogoÄe vse to |
| 978 | zbrati tukaj. Verjetno pa bi se vseeno radi nauèili kaj o ¹tevilnih | 995 | zbrati tukaj. Verjetno pa bi se vseeno radi nauÄili kaj o Å¡tevilnih |
| 979 | koristnih mo¾nostih, ki jih ¹e ne poznate. Emacs ima ¾e vgrajene | 996 | koristnih možnostih, ki jih Å¡e ne poznate. Emacs ima že vgrajene |
| 980 | veliko dokumentacije, do katere lahko pridete s pritiskom na CONTROL-h | 997 | veliko dokumentacije, do katere lahko pridete s pritiskom na CONTROL-h |
| 981 | (h kot ,,help``, pomoè). | 998 | (h kot »help«, pomoÄ). |
| 982 | 999 | ||
| 983 | Za pomoè pritisnete C-h, potem pa vtipkate znak, ki pove, kak¹no pomoè | 1000 | Za pomoÄ pritisnete C-h, potem pa vtipkate znak, ki pove, kakÅ¡no pomoÄ |
| 984 | ¾elite. Èe ste poplnoma izgubljeni, vtipkajte C-h ? in Emacs vam bo | 1001 | želite. ÄŒe ste poplnoma izgubljeni, vtipkajte C-h ? in Emacs vam bo |
| 985 | povedal, kak¹na pomoè je sploh na voljo. Èe ste vtipkali C-h, pa ste | 1002 | povedal, kakÅ¡na pomoÄ je sploh na voljo. ÄŒe ste vtipkali C-h, pa ste |
| 986 | si premislili, lahko ukaz preklièete s C-g. | 1003 | si premislili, lahko ukaz prekliÄete s C-g. |
| 987 | 1004 | ||
| 988 | (Na nekaterih sistemih se znak C-h preslika v kaj drugega. To ni | 1005 | (ÄŒe C-h ne prikaže sporoÄila o pomoÄi na dnu zaslona, poskusite |
| 989 | dobro, in v takem primeru se prito¾ite sistemskemu vzdr¾evalcu. Medtem | 1006 | namesto tega pritisniti tipko F1 ali pa vtipkajte M-x help <Return>.) |
| 990 | pa, èe C-h ne prika¾e sporoèila o pomoèi na dnu zaslona, namesto tega | ||
| 991 | poskusite pritisniti tipko F1 ali pa vtipkajte M-x help <Return>.) | ||
| 992 | 1007 | ||
| 993 | Najosnovnej¹i tip pomoèi prika¾e C-h c. Pritisnite C-h, tipko c, zatem | 1008 | NajosnovnejÅ¡i tip pomoÄi prikaže C-h c. Pritisnite C-h, tipko c, zatem |
| 994 | pa ukazni znak ali zaporedje ukaznih znakov, in Emacs bo izpisal | 1009 | pa ukazni znak ali zaporedje ukaznih znakov, in Emacs bo izpisal |
| 995 | kratek opis ukaza. | 1010 | kratek opis ukaza. |
| 996 | 1011 | ||
| 997 | >> Vtipkajte C-h c C-p. | 1012 | >> Vtipkajte C-h c C-p. |
| 998 | Izpi¹e se nekaj takega kot | 1013 | IzpiÅ¡e se nekaj takega kot |
| 999 | 1014 | ||
| 1000 | C-p runs the command previous-line | 1015 | C-p runs the command previous-line |
| 1001 | 1016 | ||
| 1002 | Ukaz je izpisal ime funkcije, ki izvede ukaz. Imena funkcij | 1017 | Ukaz je izpisal ime funkcije, ki izvede ukaz. Ker so navadno imena |
| 1003 | uporabljamo, kadar pi¹emo prilagoditve in raz¹iritve Emacsa. Ker pa so | 1018 | funkcij izbrana tako, da kaj povedo o tem, kaj funkcija poÄne, bo |
| 1004 | navadno imena funkcij izbrana tako, da kaj povedo o tem, kaj funkcija | 1019 | verjetno to tudi dovolj za kratko osvežitev, Äe ste se z ukazom že |
| 1005 | poène, bo verjetno to tudi dovolj za kratko osve¾itev, èe ste se z | 1020 | kdaj sreÄali. |
| 1006 | ukazom ¾e kdaj sreèali. | ||
| 1007 | 1021 | ||
| 1008 | Ukazu C-h lahko sledi tudi zaporedje znakov, kot na primer C-x C-s, | 1022 | Ukazu C-h lahko sledi tudi zaporedje znakov, kot na primer C-x C-s, |
| 1009 | ali, èe nimate tipke META, <Esc>v. | 1023 | ali, Äe nimate tipke META, <Esc>v. |
| 1010 | 1024 | ||
| 1011 | Za veè informacij o ukazu vtipkajte C-h k namesto C-h c. | 1025 | Za veÄ informacij o ukazu vtipkajte C-h k namesto C-h c. |
| 1012 | 1026 | ||
| 1013 | >> Vtipkajte C-h k C-p. | 1027 | >> Vtipkajte C-h k C-p. |
| 1014 | 1028 | ||
| 1015 | To odpre novo okno in v njem prika¾e dokumentacijo o funkciji, obenem | 1029 | To odpre novo okno in v njem prikaže dokumentacijo o funkciji, obenem |
| 1016 | z njenim imenom. Ko ste opravili, vtipkajte C-x 1, da se znebite okna | 1030 | z njenim imenom. Ko ste opravili, vtipkajte C-x 1, da se znebite okna |
| 1017 | z pomoèjo. Tega seveda ni potrebno napraviti takoj, ampak lahko | 1031 | z pomoÄjo. Tega ni potrebno napraviti ta hip. Namesto tega lahko |
| 1018 | urejate, medtem ko imate odprto okno s pomoèjo, in ga zaprete, ko ste | 1032 | urejate, medtem ko imate odprto okno s pomoÄjo, in ga zaprete, ko ste |
| 1019 | konèali. | 1033 | konÄali. |
| 1020 | 1034 | ||
| 1021 | Sledi ¹e nekaj uporabnih mo¾nosti, ki jih ponuja pomoè: | 1035 | Sledi Å¡e nekaj uporabnih možnosti, ki jih ponuja pomoÄ: |
| 1022 | 1036 | ||
| 1023 | C-h f Opi¹i funkcijo. Kot argument morate podati ime | 1037 | C-h f OpiÅ¡i funkcijo. Kot argument morate podati ime |
| 1024 | funkcije. | 1038 | funkcije. |
| 1025 | 1039 | ||
| 1026 | >> Poskusite C-h f previous-line<Return>. | 1040 | >> Poskusite C-h f previous-line <Return>. |
| 1027 | To izpi¹e vse podatke, ki jih ima Emacs o funkciji, ki izvede ukaz C-p. | 1041 | To izpiÅ¡e vse podatke, ki jih ima Emacs o funkciji, ki izvede ukaz C-p. |
| 1028 | 1042 | ||
| 1029 | Podoben ukaz C-h v izpi¹e dokumentacijo za spremenljivke, s katerimi | 1043 | Podoben ukaz C-h v izpiÅ¡e dokumentacijo za spremenljivke, vkljuÄno s |
| 1030 | lahko nastavite obna¹anje Emacsa. Ob pozivniku morate vpisati ime | 1044 | tistimi, s katerimi lahko nastavite obnaÅ¡anje Emacsa. Ob pozivniku |
| 1031 | spremenljivke. | 1045 | morate vpisati ime spremenljivke. |
| 1032 | 1046 | ||
| 1033 | C-h a Apropos. Vtipkajte kljuèno besedo in Emacs bo izpisal | 1047 | C-h a Apropos. Vtipkajte kljuÄno besedo in Emacs bo izpisal |
| 1034 | vse ukaze, ki vsebujejo to kljuèno besedo. Vse te | 1048 | vse ukaze, ki vsebujejo to kljuÄno besedo. Vse te |
| 1035 | ukaze lahko priklièete z META-x. Pri nekaterih ukazih | 1049 | ukaze lahko prikliÄete z META-x. Pri nekaterih ukazih |
| 1036 | bo Apropos izpisal tudi eno ali dvoznakovno | 1050 | bo Apropos izpisal tudi eno ali dvoznakovno |
| 1037 | zaporedje, s katerim dose¾ete isti uèinek. | 1051 | zaporedje, s katerim dosežete isti uÄinek. |
| 1038 | 1052 | ||
| 1039 | >> Vtipkajte C-h a file<Return>. | 1053 | >> Vtipkajte C-h a file <Return>. |
| 1040 | 1054 | ||
| 1041 | To odpre novo okno, v katerem so vsa dolga imena ukazov, ki vsebujejo | 1055 | To odpre novo okno, v katerem so vsa dolga imena ukazov, ki vsebujejo |
| 1042 | ,,file`` v imenu. Izvedete jih lahko z M-x. Pri nekaterih se izpi¹e | 1056 | »file« v imenu. Izvedete jih lahko z M-x. Pri nekaterih se izpiÅ¡e |
| 1043 | tudi kratek ukaz, npr. C-x C-f ali C-x C-w pri ukazih find-file in | 1057 | tudi kratek ukaz, npr. C-x C-f ali C-x C-w pri ukazih find-file in |
| 1044 | write-file. | 1058 | write-file. |
| 1045 | 1059 | ||
| 1046 | >> Pritisnite C-M-v, da se sprehajate po oknu s pomoèjo. Poskusite | 1060 | >> Pritisnite C-M-v, da se sprehajate po oknu s pomoÄjo. Poskusite |
| 1047 | nekajkrat. | 1061 | nekajkrat. |
| 1048 | 1062 | ||
| 1049 | >> Vtipkajte C-x 1, da zaprete okno s pomoèjo. | 1063 | >> Vtipkajte C-x 1, da zaprete okno s pomoÄjo. |
| 1050 | 1064 | ||
| 1051 | C-h i Priroèniki z navodili za uporabo (tkim. datoteke | 1065 | C-h i PriroÄniki z navodili za uporabo (tkim. datoteke |
| 1052 | "info"). Ta ukaz vas prestavi v posebno delovno | 1066 | »info«). Ta ukaz vas prestavi v posebno delovno |
| 1053 | podroèje, imenovano "info". V njem lahko prebirate | 1067 | podroÄje, imenovano »*info*«. V njem lahko prebirate |
| 1054 | priroènike za programe, ki so name¹èeni v sistemu. Z | 1068 | priroÄnike za programe, ki so nameÅ¡Äeni v sistemu. Z |
| 1055 | ukazom m emacs<Return> denimo dobite priroènik za | 1069 | ukazom m emacs<Return> denimo dobite priroÄnik za |
| 1056 | urejevalnik Emacs. Èe sistema Info ¹e niste | 1070 | urejevalnik Emacs. ÄŒe sistema Info Å¡e niste |
| 1057 | uporabljali, vtipkajte ? in Emacs vas bo popeljal na | 1071 | uporabljali, vtipkajte ? in Emacs vas bo popeljal na |
| 1058 | vódeni izlet po naèinu Info in mo¾nostih, ki jih | 1072 | vódeni izlet po naÄinu Info in možnostih, ki jih |
| 1059 | ponuja. Ko boste zakljuèili z branjem tega prvega | 1073 | ponuja. Ko boste zakljuÄili z branjem tega prvega |
| 1060 | berila, bo priroènik za Emacs v sistemu Info va¹ | 1074 | berila, bo priroÄnik za Emacs v sistemu Info vaÅ¡ |
| 1061 | glavni vir dokumentacije. | 1075 | glavni vir dokumentacije. |
| 1062 | 1076 | ||
| 1063 | 1077 | ||
| 1064 | * DRUGE MO®NOSTI | 1078 | * DRUGE MOŽNOSTI |
| 1065 | ---------------- | 1079 | ---------------- |
| 1066 | 1080 | ||
| 1067 | ©e veè se lahko nauèite o Emacsu z branjem priroènika, bodisi | 1081 | Å e veÄ se lahko nauÄite o Emacsu z branjem priroÄnika, bodisi |
| 1068 | natisnjenega, bodisi na zaslonu v sistemu Info (uporabite menu Help | 1082 | natisnjenega, bodisi znotraj samega Emacsa (uporabite menu Help ali |
| 1069 | ali vtipkajte F10 h r). Dve mo¾nosti, ki vam bosta morda posebej v¹eè, | 1083 | vtipkajte C-h r). Dve možnosti, ki vam bosta morda posebej vÅ¡eÄ, sta |
| 1070 | sta samodejno zakljuèevanje vrstice, s katerim prihranite nekaj | 1084 | samodejno zakljuÄevanje vrstice, s katerim prihranite nekaj tipkanja, |
| 1071 | tipkanja, in dired, s katerim poenostavimo delo z datotekami. | 1085 | in dired, s katerim poenostavimo delo z datotekami. |
| 1072 | 1086 | ||
| 1073 | Samodejno zakljuèevanje vrstic je naèin, s katerim prihranimo nekaj | 1087 | Samodejno zakljuÄevanje vrstic je naÄin, s katerim prihranimo nekaj |
| 1074 | tipkanja. Èe ¾elite denimo preklopiti v delovno podroèje *Messages*, | 1088 | tipkanja. ÄŒe želite denimo preklopiti v delovno podroÄje *Messages*, |
| 1075 | je dovolj, da vtipkate C-x b *M<Tab> in Emacs bo sam dopolnil | 1089 | je dovolj, da vtipkate C-x b *M<Tab> in Emacs bo sam dopolnil |
| 1076 | preostanek imena delovnega podroèja. Samodejno zakljuèevanje je | 1090 | preostanek imena delovnega podroÄja. Samodejno zakljuÄevanje deluje |
| 1077 | opisano v sistemu Info v priroèniku za Emacs, razdelek ,,Completion``. | 1091 | tudi za imena ukazov in imena datotek. Samodejno zakljuÄevanje je |
| 1092 | opisano v priroÄniku za Emacs, razdelek »Completion«. | ||
| 1078 | 1093 | ||
| 1079 | Dired omogoèa izpis seznama datotek v imeniku (in po mo¾nosti tudi | 1094 | Dired omogoÄa izpis seznama datotek v imeniku (in po možnosti tudi |
| 1080 | podimenikih), premikanje po seznamu, obiskovanje (odpiranje), | 1095 | podimenikih), premikanje po seznamu, obiskovanje (odpiranje), |
| 1081 | preimenovanje, brisanje in druge operacije z datotekami. Dired je | 1096 | preimenovanje, brisanje in druge operacije z datotekami. Dired je |
| 1082 | opisav v sistemu Info v priroèniku za Emacs, razdelek ,,Dired``. | 1097 | opisav v priroÄniku za Emacs, razdelek »Dired«. |
| 1083 | 1098 | ||
| 1084 | Priroènik opisuje tudi mnoge druge mo¾nosti Emacsa. | 1099 | PriroÄnik opisuje tudi mnoge druge možnosti Emacsa. |
| 1085 | 1100 | ||
| 1086 | 1101 | ||
| 1087 | * ZAKLJUÈEK | 1102 | * ZAKLJUÄŒEK |
| 1088 | ----------- | 1103 | ----------- |
| 1089 | 1104 | ||
| 1090 | Zapomnite si, da Emacs zapustite z ukazom C-x C-c. Èe bi radi samo | 1105 | Emacs zapustite z ukazom C-x C-c. |
| 1091 | zaèasno skoèili v ukazno lupino in se kasneje vrnili v Emacs, pa | ||
| 1092 | storite to z ukazom C-z. | ||
| 1093 | 1106 | ||
| 1094 | Ta uèbenik je napisan z namenom, da bi bil razumljiv vsem novincem v | 1107 | Ta uÄbenik je napisan z namenom, da bi bil razumljiv vsem novincem v |
| 1095 | Emacsu. Èe se vam kaj ne zdi jasno napisano, ne valite krivde nase - | 1108 | Emacsu. ÄŒe se vam kaj ne zdi jasno napisano, ne valite krivde nase - |
| 1096 | prito¾ite se! | 1109 | pritožite se! |
| 1097 | 1110 | ||
| 1098 | 1111 | ||
| 1099 | * RAZMNO®EVANJE IN RAZ©IRJANJE | 1112 | * RAZMNOŽEVANJE IN RAZÅ IRJANJE |
| 1100 | ------------------------------ | 1113 | ------------------------------ |
| 1101 | 1114 | ||
| 1102 | Angle¹ki izvirnik tega uvoda v Emacs je naslednik dolge vrste tovrstnih | 1115 | AngleÅ¡ki izvirnik tega uvoda v Emacs je naslednik dolge vrste tovrstnih |
| 1103 | besedil, zaèen¹i s tistim, ki ga je Stuart Cracraft napisal za izvorni | 1116 | besedil, zaÄenÅ¡i s tistim, ki ga je Stuart Cracraft napisal za izvorni |
| 1104 | Emacs. V sloven¹èino ga je prevedel Primo¾ Peterlin. | 1117 | Emacs. V slovenÅ¡Äino ga je prevedel Primož Peterlin. |
| 1105 | 1118 | ||
| 1106 | To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo | 1119 | To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo |
| 1107 | razmno¾evanje in raz¹irjanje je dovoljeno pod naslednjimi pogoji: | 1120 | razmnoževanje in razÅ¡irjanje je dovoljeno pod naslednjimi pogoji: |
| 1121 | |||
| 1122 | Copyright © 1985, 1996, 1998, 2001-2012 Free Software Foundation, Inc. | ||
| 1108 | 1123 | ||
| 1109 | Copyright (C) 1985, 1996, 1998, 2001-2012 Free Software Foundation, Inc. | 1124 | Ta datoteka je del paketa GNU Emacs. |
| 1110 | 1125 | ||
| 1111 | Dovoljeno je izdelovati in raz¹irjati neokrnjene kopije tega spisa | 1126 | GNU Emacs je prost program; lahko ga redistribuirate in/ali prirejate |
| 1112 | v kakr¹nikoli obliki pod pogojem, da je ohranjena navedba o | 1127 | po pogojih, doloÄenih v dovoljenju za rabo »GNU General Public License«, |
| 1113 | avtorstvu in to dovoljenje, ter da distributer dovoljuje prejemniku | 1128 | izdanem pri Free Software Foundation, bodisi 3. izdaje tega dovoljenja, |
| 1114 | nadaljnje raz¹irjanje pod pogoji, navedenimi v tem dovoljenju. | 1129 | bodisi katerekoli kasnejÅ¡e izdaje, ki je na voljo. |
| 1115 | 1130 | ||
| 1116 | Pod pogoji iz prej¹njega odstavka je dovoljeno raz¹irjati | 1131 | GNU Emacs je ponujen v dobri veri, da je uporaben, vendar zanj NI |
| 1117 | spremenjene verzije tega spisa ali njegovih delov, èe je jasno | 1132 | NOBENEGA JAMSTVA, niti implicitnih jamstev PRIMERNOSTI ZA PRODAJO |
| 1118 | oznaèeno, kdo je nazadnje vnesel spremembe. | 1133 | ali USTREZNOSTI ZA DOLOÄŒEN NAMEN. Podrobnosti so na voljo v »GNU |
| 1134 | General Public License«. | ||
| 1119 | 1135 | ||
| 1120 | Pogoji za razmno¾evanje in raz¹irjanje samega Emacsa so malo drugaèni, | 1136 | Kopijo »GNU General Public License« bi morali prejeti skupaj s paketom |
| 1121 | a v istem duhu. Prosimo, preberite datoteko COPYING in potem dajte | 1137 | GNU Emacs. ÄŒe je niste, je na voljo na <http://www.gnu.org/licenses/>. |
| 1122 | kopijo programa GNU Emacs svojim prijateljem. Pomagajte zatreti | 1138 | |
| 1123 | obstrukcionizem (,,lastni¹tvo``) v programju tako, da uporabljate, | 1139 | Prosimo, preberite datoteko COPYING in potem ponudite kopijo programa |
| 1124 | pi¹ete in delite prosto programje! | 1140 | GNU Emacs svojim prijateljem. Pomagajte zatreti obstrukcionizem |
| 1141 | (»lastništvo«) v programju tako, da uporabljate, pišete in delite | ||
| 1142 | prosto programje! | ||
| 1125 | 1143 | ||
| 1126 | ;;; Local Variables: | 1144 | ;;; Local Variables: |
| 1127 | ;;; coding: iso-latin-2 | 1145 | ;;; coding: utf-8 |
| 1128 | ;;; sentence-end-double-space: nil | 1146 | ;;; sentence-end-double-space: nil |
| 1129 | ;;; End: | 1147 | ;;; End: |
| 1130 | |||
diff --git a/etc/tutorials/TUTORIAL.translators b/etc/tutorials/TUTORIAL.translators index 64780687bb1..3ec948eb79a 100644 --- a/etc/tutorials/TUTORIAL.translators +++ b/etc/tutorials/TUTORIAL.translators | |||
| @@ -2,8 +2,8 @@ This file contains the list of translators and maintainers of the | |||
| 2 | tutorial. | 2 | tutorial. |
| 3 | 3 | ||
| 4 | * TUTORIAL.bg: | 4 | * TUTORIAL.bg: |
| 5 | Author: Ognyan Kulev <ogi@fmi.uni-sofia.bg> | 5 | Author: Ognyan Kulev <ogi@tower.3.bg> |
| 6 | Maintainer: Ognyan Kulev <ogi@fmi.uni-sofia.bg> | 6 | Maintainer: Ognyan Kulev <ogi@tower.3.bg> |
| 7 | 7 | ||
| 8 | * TUTORIAL.cn: | 8 | * TUTORIAL.cn: |
| 9 | Author: Sun Yijiang <sunyijiang@gmail.com> | 9 | Author: Sun Yijiang <sunyijiang@gmail.com> |
| @@ -75,8 +75,8 @@ Author: Miroslav Vaško <vasko@debian.cz> | |||
| 75 | Maintainer: Maintainer needed. | 75 | Maintainer: Maintainer needed. |
| 76 | 76 | ||
| 77 | * TUTORIAL.sl: | 77 | * TUTORIAL.sl: |
| 78 | Author: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> | 78 | Author: Primož Peterlin <primozz.peterlin@gmail.com> |
| 79 | Maintainer: Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si> | 79 | Maintainer: Primož Peterlin <primozz.peterlin@gmail.com> |
| 80 | 80 | ||
| 81 | * TUTORIAL.sv: | 81 | * TUTORIAL.sv: |
| 82 | Author: Mats Lidell <matsl@contactor.se> | 82 | Author: Mats Lidell <matsl@contactor.se> |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2813d80d9ff..97281db4c7c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,136 @@ | |||
| 1 | 2012-01-23 Mike Lamb <mrlamb@gmail.com> (tiny change) | ||
| 2 | |||
| 3 | * eshell/esh-util.el (eshell-read-hosts-file): | ||
| 4 | Skip comment lines. (Bug#10549) | ||
| 5 | |||
| 6 | * eshell/em-unix.el (pcomplete/ssh): Remove. (Bug#10548) | ||
| 7 | |||
| 8 | 2012-01-23 Juanma Barranquero <lekktu@gmail.com> | ||
| 9 | |||
| 10 | * subr.el (display-delayed-warnings): Doc fix. | ||
| 11 | (collapse-delayed-warnings): New function to collapse identical | ||
| 12 | adjacent warnings. | ||
| 13 | (delayed-warnings-hook): Add it. | ||
| 14 | |||
| 15 | 2012-01-22 Michael Albinus <michael.albinus@gmx.de> | ||
| 16 | |||
| 17 | * net/tramp.el (tramp-action-login): Set connection property "login-as". | ||
| 18 | |||
| 19 | * net/tramp-cache.el (tramp-dump-connection-properties): Do not dump | ||
| 20 | properties, when "login-as" is set. | ||
| 21 | |||
| 22 | * net/tramp-sh.el (tramp-methods): Add user spec to "pscp" and "psftp". | ||
| 23 | (tramp-default-user-alist): Don't add "pscp". | ||
| 24 | (tramp-do-copy-or-rename-file-out-of-band): Use connection | ||
| 25 | property "login-as", if set. (Bug#10530) | ||
| 26 | |||
| 27 | 2012-01-21 Michael Albinus <michael.albinus@gmx.de> | ||
| 28 | |||
| 29 | * net/tramp-sh.el (tramp-default-user-alist): Don't add "plink", | ||
| 30 | "plink1" and "psftp". (Bug#10530) | ||
| 31 | |||
| 32 | 2012-01-21 Kenichi Handa <handa@m17n.org> | ||
| 33 | |||
| 34 | * international/mule-cmds.el (prefer-coding-system): Show a | ||
| 35 | warning message if the default value of file-name-coding-system | ||
| 36 | was not changed. | ||
| 37 | |||
| 38 | 2012-01-21 Jérémy Compostella <jeremy.compostella@gmail.com> | ||
| 39 | |||
| 40 | * windmove.el (windmove-reference-loc): Fix | ||
| 41 | windmove-reference-loc miscalculation. | ||
| 42 | |||
| 43 | 2012-01-21 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 44 | |||
| 45 | * calc/calc-units.el (math-put-default-units): Don't use "1" as a | ||
| 46 | default unit. | ||
| 47 | |||
| 48 | 2012-01-21 Glenn Morris <rgm@gnu.org> | ||
| 49 | |||
| 50 | * international/mule.el (auto-coding-alist): Add .tbz. | ||
| 51 | |||
| 52 | * files.el (local-enable-local-variables): Doc fix. | ||
| 53 | (inhibit-local-variables-regexps): Rename from | ||
| 54 | inhibit-first-line-modes-regexps. Keep old name as obsolete alias. | ||
| 55 | Doc fix. Add some extensions from auto-coding-alist. | ||
| 56 | (inhibit-local-variables-suffixes): | ||
| 57 | Rename from inhibit-first-line-modes-suffixes. Doc fix. | ||
| 58 | (inhibit-local-variables-p): | ||
| 59 | New function, extracted from set-auto-mode-1. | ||
| 60 | (set-auto-mode): Doc fix. Respect inhibit-local-variables-regexps. | ||
| 61 | (set-auto-mode-1): Doc fix. Use inhibit-local-variables-p. | ||
| 62 | (hack-local-variables): Doc fix. Make the mode-only case | ||
| 63 | respect enable-local-variables and friends. | ||
| 64 | Respect inhibit-local-variables-regexps for file-locals, but | ||
| 65 | not for directory-locals. | ||
| 66 | (set-visited-file-name): | ||
| 67 | Take account of inhibit-local-variables-regexps. | ||
| 68 | Whether it applies may change as the file name is changed. | ||
| 69 | * jka-cmpr-hook.el (jka-compr-install): | ||
| 70 | * jka-compr.el (jka-compr-uninstall): | ||
| 71 | Update for inhibit-first-line-modes-suffixes name change. | ||
| 72 | |||
| 73 | 2012-01-20 Martin Rudalics <rudalics@gmx.at> | ||
| 74 | |||
| 75 | * help-macro.el (make-help-screen): Temporarily restore original | ||
| 76 | binding for minor-mode-map-alist (Bug#10454). | ||
| 77 | |||
| 78 | 2012-01-19 Julien Danjou <julien@danjou.info> | ||
| 79 | |||
| 80 | * color.el (color-name-to-rgb): Use the white color to find the max | ||
| 81 | color component value and return correctly computed values. | ||
| 82 | (color-name-to-rgb): Add missing float conversion for max value. | ||
| 83 | |||
| 84 | 2012-01-19 Martin Rudalics <rudalics@gmx.at> | ||
| 85 | |||
| 86 | * window.el (window--state-get-1, window-state-get): Do not use | ||
| 87 | special state value for window-persistent-parameters. Rename | ||
| 88 | argument IGNORE to WRITABLE. Rewrite doc-string. | ||
| 89 | (window--state-put-2): Reset all window parameters to nil before | ||
| 90 | assigning values of persistent parameters. | ||
| 91 | |||
| 92 | 2012-01-18 Alan Mackenzie <acm@muc.de> | ||
| 93 | |||
| 94 | Eliminate sluggishness and hangs in fontification of "semicolon | ||
| 95 | deserts". | ||
| 96 | |||
| 97 | * progmodes/cc-engine.el (c-state-nonlit-pos-interval): change | ||
| 98 | value 10000 -> 3000. | ||
| 99 | (c-state-safe-place): Reformulate so it doesn't stack up an | ||
| 100 | infinite number of wrong entries in c-state-nonlit-pos-cache. | ||
| 101 | (c-determine-limit-get-base, c-determine-limit): New functions to | ||
| 102 | determine backward search limits disregarding literals. | ||
| 103 | (c-find-decl-spots): Amend commenting. | ||
| 104 | (c-cheap-inside-bracelist-p): New function which detects "={". | ||
| 105 | |||
| 106 | * progmodes/cc-fonts.el | ||
| 107 | (c-make-font-lock-BO-decl-search-function): Give a limit to a | ||
| 108 | backward search. | ||
| 109 | (c-font-lock-declarations): Fix an occurrence of point being | ||
| 110 | undefined. Check additionally for point being in a bracelist or | ||
| 111 | near a macro invocation without a semicolon so as to avoid a | ||
| 112 | fruitless time consuming search for a declarator. Give a more | ||
| 113 | precise search limit for declarators using the new | ||
| 114 | c-determine-limit. | ||
| 115 | |||
| 116 | 2012-01-18 Glenn Morris <rgm@gnu.org> | ||
| 117 | |||
| 118 | * files.el (auto-mode-alist, inhibit-first-line-modes-regexps) | ||
| 119 | (set-auto-mode): Doc fixes. | ||
| 120 | |||
| 121 | 2012-01-17 Glenn Morris <rgm@gnu.org> | ||
| 122 | |||
| 123 | * isearch.el (search-nonincremental-instead): Fix doc typo. | ||
| 124 | |||
| 125 | * dired.el (dired-insert-directory): Handle newlines in directory name. | ||
| 126 | (dired-build-subdir-alist): Unescape newlines in directory name. | ||
| 127 | |||
| 128 | 2012-01-17 Michael Albinus <michael.albinus@gmx.de> | ||
| 129 | |||
| 130 | * net/tramp.el (tramp-local-end-of-line): New defcustom. | ||
| 131 | (tramp-action-login, tramp-action-yesno, tramp-action-yn) | ||
| 132 | (tramp-action-terminal): Use it. (Bug#10530) | ||
| 133 | |||
| 1 | 2012-01-16 Stefan Monnier <monnier@iro.umontreal.ca> | 134 | 2012-01-16 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 135 | ||
| 3 | * minibuffer.el (completion--replace): Strip properties (bug#10062). | 136 | * minibuffer.el (completion--replace): Strip properties (bug#10062). |
| @@ -34,6 +167,17 @@ | |||
| 34 | 167 | ||
| 35 | * dired.el (dired-get-filename): Fix 'verbatim case of previous change. | 168 | * dired.el (dired-get-filename): Fix 'verbatim case of previous change. |
| 36 | 169 | ||
| 170 | 2012-01-13 Alan Mackenzie <acm@muc.de> | ||
| 171 | |||
| 172 | Fix filling for when filladapt mode is enabled. | ||
| 173 | |||
| 174 | * progmodes/cc-cmds.el (c-fill-paragraph): In the invocation of | ||
| 175 | c-mask-paragraph, pass in `fill-paragraph' rather than | ||
| 176 | `fill-region-as-paragraph'. (This is a reversion of a previous | ||
| 177 | change.) | ||
| 178 | * progmodes/cc-mode.el (c-basic-common-init): Make | ||
| 179 | fill-paragraph-handle-comment buffer local and set it to nil. | ||
| 180 | |||
| 37 | 2012-01-13 Glenn Morris <rgm@gnu.org> | 181 | 2012-01-13 Glenn Morris <rgm@gnu.org> |
| 38 | 182 | ||
| 39 | * dired.el (dired-switches-escape-p): New function. | 183 | * dired.el (dired-switches-escape-p): New function. |
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el index 8f4c79e3f0a..dcbf845c371 100644 --- a/lisp/calc/calc-units.el +++ b/lisp/calc/calc-units.el | |||
| @@ -415,18 +415,19 @@ If EXPR is nil, return nil." | |||
| 415 | 415 | ||
| 416 | (defun math-put-default-units (expr) | 416 | (defun math-put-default-units (expr) |
| 417 | "Put the units in EXPR in the default units table." | 417 | "Put the units in EXPR in the default units table." |
| 418 | (let* ((units (math-get-units expr)) | 418 | (let ((units (math-get-units expr))) |
| 419 | (standard-units (math-get-standard-units expr)) | 419 | (unless (eq units 1) |
| 420 | (let* ((standard-units (math-get-standard-units expr)) | ||
| 420 | (default-units (gethash | 421 | (default-units (gethash |
| 421 | standard-units | 422 | standard-units |
| 422 | math-default-units-table))) | 423 | math-default-units-table))) |
| 423 | (cond | 424 | (cond |
| 424 | ((not default-units) | 425 | ((not default-units) |
| 425 | (puthash standard-units (list units) math-default-units-table)) | 426 | (puthash standard-units (list units) math-default-units-table)) |
| 426 | ((not (equal units (car default-units))) | 427 | ((not (equal units (car default-units))) |
| 427 | (puthash standard-units | 428 | (puthash standard-units |
| 428 | (list units (car default-units)) | 429 | (list units (car default-units)) |
| 429 | math-default-units-table))))) | 430 | math-default-units-table))))))) |
| 430 | 431 | ||
| 431 | 432 | ||
| 432 | (defun calc-convert-units (&optional old-units new-units) | 433 | (defun calc-convert-units (&optional old-units new-units) |
diff --git a/lisp/cedet/semantic/wisent/js-wy.el b/lisp/cedet/semantic/wisent/js-wy.el index b8d3240aef1..05346b02c8d 100644 --- a/lisp/cedet/semantic/wisent/js-wy.el +++ b/lisp/cedet/semantic/wisent/js-wy.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; semantic/wisent/js-wy.el --- Generated parser support file | 1 | ;;; semantic/wisent/js-wy.el --- Generated parser support file |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc. |
| 4 | ;; Copyright (C) 1998-2011 Ecma International | 4 | ;; Copyright (C) 1998-2011 Ecma International. |
| 5 | 5 | ||
| 6 | ;; This file is part of GNU Emacs. | 6 | ;; This file is part of GNU Emacs. |
| 7 | 7 | ||
diff --git a/lisp/cedet/semantic/wisent/python-wy.el b/lisp/cedet/semantic/wisent/python-wy.el index cb0f37c8f16..e8229dcd9ea 100644 --- a/lisp/cedet/semantic/wisent/python-wy.el +++ b/lisp/cedet/semantic/wisent/python-wy.el | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | ;;; semantic/wisent/python-wy.el --- Generated parser support file | 1 | ;;; semantic/wisent/python-wy.el --- Generated parser support file |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2004, 2007, 2010-2012 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2007, 2010-2012 Free Software Foundation, Inc. |
| 4 | ;; Copyright (C) 2001-2010 Python Software Foundation | 4 | ;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, |
| 5 | ;; 2009, 2010 Python Software Foundation; All Rights Reserved | ||
| 5 | 6 | ||
| 6 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 7 | 8 | ||
diff --git a/lisp/color.el b/lisp/color.el index ff7f0eee4e6..6fab613ba69 100644 --- a/lisp/color.el +++ b/lisp/color.el | |||
| @@ -53,7 +53,10 @@ numbers, (RED GREEN BLUE), each between 0.0 and 1.0 inclusive. | |||
| 53 | Optional arg FRAME specifies the frame where the color is to be | 53 | Optional arg FRAME specifies the frame where the color is to be |
| 54 | displayed. If FRAME is omitted or nil, use the selected frame. | 54 | displayed. If FRAME is omitted or nil, use the selected frame. |
| 55 | If FRAME cannot display COLOR, return nil." | 55 | If FRAME cannot display COLOR, return nil." |
| 56 | (mapcar (lambda (x) (/ x 65535.0)) (color-values color frame))) | 56 | ;; `colors-values' maximum value is either 65535 or 65280 depending on the |
| 57 | ;; display system. So we use a white conversion to get the max value. | ||
| 58 | (let ((valmax (float (car (color-values "#ffffff"))))) | ||
| 59 | (mapcar (lambda (x) (/ x valmax)) (color-values color frame)))) | ||
| 57 | 60 | ||
| 58 | (defun color-rgb-to-hex (red green blue) | 61 | (defun color-rgb-to-hex (red green blue) |
| 59 | "Return hexadecimal notation for the color RED GREEN BLUE. | 62 | "Return hexadecimal notation for the color RED GREEN BLUE. |
diff --git a/lisp/dired.el b/lisp/dired.el index f1a778ad05a..57f67ca7c8c 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -1172,7 +1172,22 @@ see `dired-use-ls-dired' for more details.") | |||
| 1172 | "\\015" | 1172 | "\\015" |
| 1173 | (text-properties-at (match-beginning 0))) | 1173 | (text-properties-at (match-beginning 0))) |
| 1174 | nil t)) | 1174 | nil t)) |
| 1175 | (set-marker end nil))) | 1175 | (set-marker end nil)) |
| 1176 | ;; Replace any newlines in DIR with literal "\n"s, for the sake | ||
| 1177 | ;; of the header line. To disambiguate a literal "\n" in the | ||
| 1178 | ;; actual dirname, we also replace "\" with "\\". | ||
| 1179 | ;; Personally, I think this should always be done, irrespective | ||
| 1180 | ;; of the value of dired-actual-switches, because: | ||
| 1181 | ;; i) Dired simply does not work with an unescaped newline in | ||
| 1182 | ;; the directory name used in the header (bug=10469#28), and | ||
| 1183 | ;; ii) "\" is always replaced with "\\" in the listing, so doing | ||
| 1184 | ;; it in the header as well makes things consistent. | ||
| 1185 | ;; But at present it is only done if "-b" is in ls-switches, | ||
| 1186 | ;; because newlines in dirnames are uncommon, and people may | ||
| 1187 | ;; have gotten used to seeing unescaped "\" in the headers. | ||
| 1188 | ;; Note: adjust dired-build-subdir-alist if you change this. | ||
| 1189 | (setq dir (replace-regexp-in-string "\\\\" "\\\\" dir nil t) | ||
| 1190 | dir (replace-regexp-in-string "\n" "\\n" dir nil t))) | ||
| 1176 | (dired-insert-set-properties opoint (point)) | 1191 | (dired-insert-set-properties opoint (point)) |
| 1177 | ;; If we used --dired and it worked, the lines are already indented. | 1192 | ;; If we used --dired and it worked, the lines are already indented. |
| 1178 | ;; Otherwise, indent them. | 1193 | ;; Otherwise, indent them. |
| @@ -2541,12 +2556,31 @@ instead of `dired-actual-switches'." | |||
| 2541 | (delete-region (point) (match-end 1)) | 2556 | (delete-region (point) (match-end 1)) |
| 2542 | (insert new-dir-name)) | 2557 | (insert new-dir-name)) |
| 2543 | (setq count (1+ count)) | 2558 | (setq count (1+ count)) |
| 2559 | ;; Undo any escaping of newlines and \ by dired-insert-directory. | ||
| 2560 | ;; Convert "n" preceded by odd number of \ to newline, and \\ to \. | ||
| 2561 | (when (and (dired-switches-escape-p switches) | ||
| 2562 | (string-match-p "\\\\" new-dir-name)) | ||
| 2563 | (let (temp res) | ||
| 2564 | (mapc (lambda (char) | ||
| 2565 | (cond ((equal char ?\\) | ||
| 2566 | (if temp | ||
| 2567 | (setq res (concat res "\\") | ||
| 2568 | temp nil) | ||
| 2569 | (setq temp "\\"))) | ||
| 2570 | ((and temp (equal char ?n)) | ||
| 2571 | (setq res (concat res "\n") | ||
| 2572 | temp nil)) | ||
| 2573 | (t | ||
| 2574 | (setq res (concat res temp (char-to-string char)) | ||
| 2575 | temp nil)))) | ||
| 2576 | new-dir-name) | ||
| 2577 | (setq new-dir-name res))) | ||
| 2544 | (dired-alist-add-1 new-dir-name | 2578 | (dired-alist-add-1 new-dir-name |
| 2545 | ;; Place a sub directory boundary between lines. | 2579 | ;; Place a sub directory boundary between lines. |
| 2546 | (save-excursion | 2580 | (save-excursion |
| 2547 | (goto-char (match-beginning 0)) | 2581 | (goto-char (match-beginning 0)) |
| 2548 | (beginning-of-line) | 2582 | (beginning-of-line) |
| 2549 | (point-marker))))) | 2583 | (point-marker))))) |
| 2550 | (if (and (> count 1) (called-interactively-p 'interactive)) | 2584 | (if (and (> count 1) (called-interactively-p 'interactive)) |
| 2551 | (message "Buffer includes %d directories" count))) | 2585 | (message "Buffer includes %d directories" count))) |
| 2552 | ;; We don't need to sort it because it is in buffer order per | 2586 | ;; We don't need to sort it because it is in buffer order per |
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index f24180b5c7f..296e2ee8b24 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el | |||
| @@ -792,8 +792,6 @@ external command." | |||
| 792 | (funcall (or (pcomplete-find-completion-function (pcomplete-arg 1)) | 792 | (funcall (or (pcomplete-find-completion-function (pcomplete-arg 1)) |
| 793 | pcomplete-default-completion-function))) | 793 | pcomplete-default-completion-function))) |
| 794 | 794 | ||
| 795 | (defalias 'pcomplete/ssh 'pcomplete/rsh) | ||
| 796 | |||
| 797 | (defvar block-size) | 795 | (defvar block-size) |
| 798 | (defvar by-bytes) | 796 | (defvar by-bytes) |
| 799 | (defvar dereference-links) | 797 | (defvar dereference-links) |
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el index f111fd91230..8218e91ddc7 100644 --- a/lisp/eshell/esh-util.el +++ b/lisp/eshell/esh-util.el | |||
| @@ -483,7 +483,7 @@ list." | |||
| 483 | (insert-file-contents eshell-hosts-file) | 483 | (insert-file-contents eshell-hosts-file) |
| 484 | (goto-char (point-min)) | 484 | (goto-char (point-min)) |
| 485 | (while (re-search-forward | 485 | (while (re-search-forward |
| 486 | "^\\(\\S-+\\)\\s-+\\(\\S-+\\)\\(\\s-*\\(\\S-+\\)\\)?" nil t) | 486 | "^\\([^#[:space:]]+\\)\\s-+\\(\\S-+\\)\\(\\s-*\\(\\S-+\\)\\)?" nil t) |
| 487 | (if (match-string 1) | 487 | (if (match-string 1) |
| 488 | (add-to-list 'hosts (match-string 1))) | 488 | (add-to-list 'hosts (match-string 1))) |
| 489 | (if (match-string 2) | 489 | (if (match-string 2) |
diff --git a/lisp/files.el b/lisp/files.el index f15c523400d..7a72775ac3f 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -510,14 +510,36 @@ and ignores this variable." | |||
| 510 | (other :tag "Query" other)) | 510 | (other :tag "Query" other)) |
| 511 | :group 'find-file) | 511 | :group 'find-file) |
| 512 | 512 | ||
| 513 | ;; This is an odd variable IMO. | ||
| 514 | ;; You might wonder why it is needed, when we could just do: | ||
| 515 | ;; (set (make-local-variable 'enable-local-variables) nil) | ||
| 516 | ;; These two are not precisely the same. | ||
| 517 | ;; Setting this variable does not cause -*- mode settings to be | ||
| 518 | ;; ignored, whereas setting enable-local-variables does. | ||
| 519 | ;; Only three places in Emacs use this variable: tar and arc modes, | ||
| 520 | ;; and rmail. The first two don't need it. They already use | ||
| 521 | ;; inhibit-local-variables-regexps, which is probably enough, and | ||
| 522 | ;; could also just set enable-local-variables locally to nil. | ||
| 523 | ;; Them setting it has the side-effect that dir-locals cannot apply to | ||
| 524 | ;; eg tar files (?). FIXME Is this appropriate? | ||
| 525 | ;; AFAICS, rmail is the only thing that needs this, and the only | ||
| 526 | ;; reason it uses it is for BABYL files (which are obsolete). | ||
| 527 | ;; These contain "-*- rmail -*-" in the first line, which rmail wants | ||
| 528 | ;; to respect, so that find-file on a BABYL file will switch to | ||
| 529 | ;; rmail-mode automatically (this is nice, but hardly essential, | ||
| 530 | ;; since most people are used to explicitly running a command to | ||
| 531 | ;; access their mail; M-x gnus etc). Rmail files may happen to | ||
| 532 | ;; contain Local Variables sections in messages, which Rmail wants to | ||
| 533 | ;; ignore. So AFAICS the only reason this variable exists is for a | ||
| 534 | ;; minor convenience feature for handling of an obsolete Rmail file format. | ||
| 513 | (defvar local-enable-local-variables t | 535 | (defvar local-enable-local-variables t |
| 514 | "Like `enable-local-variables' but meant for buffer-local bindings. | 536 | "Like `enable-local-variables' but meant for buffer-local bindings. |
| 515 | The meaningful values are nil and non-nil. The default is non-nil. | 537 | The meaningful values are nil and non-nil. The default is non-nil. |
| 516 | If a major mode sets this to nil, buffer-locally, then any local | 538 | If a major mode sets this to nil, buffer-locally, then any local |
| 517 | variables list in the file will be ignored. | 539 | variables list in a file visited in that mode will be ignored. |
| 518 | 540 | ||
| 519 | This variable does not affect the use of major modes | 541 | This variable does not affect the use of major modes specified |
| 520 | specified in a -*- line.") | 542 | in a -*- line.") |
| 521 | 543 | ||
| 522 | (defcustom enable-local-eval 'maybe | 544 | (defcustom enable-local-eval 'maybe |
| 523 | "Control processing of the \"variable\" `eval' in a file's local variables. | 545 | "Control processing of the \"variable\" `eval' in a file's local variables. |
| @@ -2405,9 +2427,6 @@ If the element has the form (REGEXP FUNCTION NON-NIL), then after | |||
| 2405 | calling FUNCTION (if it's not nil), we delete the suffix that matched | 2427 | calling FUNCTION (if it's not nil), we delete the suffix that matched |
| 2406 | REGEXP and search the list again for another match. | 2428 | REGEXP and search the list again for another match. |
| 2407 | 2429 | ||
| 2408 | If the file name matches `inhibit-first-line-modes-regexps', | ||
| 2409 | then `auto-mode-alist' is not processed. | ||
| 2410 | |||
| 2411 | The extensions whose FUNCTION is `archive-mode' should also | 2430 | The extensions whose FUNCTION is `archive-mode' should also |
| 2412 | appear in `auto-coding-alist' with `no-conversion' coding system. | 2431 | appear in `auto-coding-alist' with `no-conversion' coding system. |
| 2413 | 2432 | ||
| @@ -2478,16 +2497,55 @@ of a script, mode MODE is enabled. | |||
| 2478 | 2497 | ||
| 2479 | See also `auto-mode-alist'.") | 2498 | See also `auto-mode-alist'.") |
| 2480 | 2499 | ||
| 2481 | (defvar inhibit-first-line-modes-regexps | 2500 | (define-obsolete-variable-alias 'inhibit-first-line-modes-regexps |
| 2482 | (mapcar 'purecopy '("\\.tar\\'" "\\.tgz\\'" "\\.tiff?\\'" | 2501 | 'inhibit-file-local-variables-regexps "24.1") |
| 2483 | "\\.gif\\'" "\\.png\\'" "\\.jpe?g\\'")) | 2502 | |
| 2484 | "List of regexps; if one matches a file name, don't look for `-*-'.") | 2503 | ;; TODO really this should be a list of modes (eg tar-mode), not regexps, |
| 2485 | 2504 | ;; because we are duplicating info from auto-mode-alist. | |
| 2486 | (defvar inhibit-first-line-modes-suffixes nil | 2505 | ;; TODO many elements of this list are also in auto-coding-alist. |
| 2487 | "List of regexps for what to ignore, for `inhibit-first-line-modes-regexps'. | 2506 | (defvar inhibit-local-variables-regexps |
| 2488 | When checking `inhibit-first-line-modes-regexps', we first discard | 2507 | (mapcar 'purecopy '("\\.tar\\'" "\\.t[bg]z\\'" |
| 2508 | "\\.arc\\'" "\\.zip\\'" "\\.lzh\\'" "\\.lha\\'" | ||
| 2509 | "\\.zoo\\'" "\\.[jew]ar\\'" "\\.xpi\\'" "\\.rar\\'" | ||
| 2510 | "\\.7z\\'" | ||
| 2511 | "\\.sx[dmicw]\\'" "\\.odt\\'" | ||
| 2512 | "\\.tiff?\\'" "\\.gif\\'" "\\.png\\'" "\\.jpe?g\\'")) | ||
| 2513 | "List of regexps matching file names in which to ignore local variables. | ||
| 2514 | This includes `-*-' lines as well as trailing \"Local Variables\" sections. | ||
| 2515 | Files matching this list are typically binary file formats. | ||
| 2516 | They may happen to contain sequences that look like local variable | ||
| 2517 | specifications, but are not really, or they may be containers for | ||
| 2518 | member files with their own local variable sections, which are | ||
| 2519 | not appropriate for the containing file. | ||
| 2520 | See also `inhibit-local-variables-suffixes'.") | ||
| 2521 | |||
| 2522 | (define-obsolete-variable-alias 'inhibit-first-line-modes-suffixes | ||
| 2523 | 'inhibit-local-variables-suffixes "24.1") | ||
| 2524 | |||
| 2525 | (defvar inhibit-local-variables-suffixes nil | ||
| 2526 | "List of regexps matching suffixes to remove from file names. | ||
| 2527 | When checking `inhibit-local-variables-regexps', we first discard | ||
| 2489 | from the end of the file name anything that matches one of these regexps.") | 2528 | from the end of the file name anything that matches one of these regexps.") |
| 2490 | 2529 | ||
| 2530 | ;; TODO explicitly add case-fold-search t? | ||
| 2531 | (defun inhibit-local-variables-p () | ||
| 2532 | "Return non-nil if file local variables should be ignored. | ||
| 2533 | This checks the file (or buffer) name against `inhibit-local-variables-regexps' | ||
| 2534 | and `inhibit-local-variables-suffixes'." | ||
| 2535 | (let ((temp inhibit-local-variables-regexps) | ||
| 2536 | (name (if buffer-file-name | ||
| 2537 | (file-name-sans-versions buffer-file-name) | ||
| 2538 | (buffer-name)))) | ||
| 2539 | (while (let ((sufs inhibit-local-variables-suffixes)) | ||
| 2540 | (while (and sufs (not (string-match (car sufs) name))) | ||
| 2541 | (setq sufs (cdr sufs))) | ||
| 2542 | sufs) | ||
| 2543 | (setq name (substring name 0 (match-beginning 0)))) | ||
| 2544 | (while (and temp | ||
| 2545 | (not (string-match (car temp) name))) | ||
| 2546 | (setq temp (cdr temp))) | ||
| 2547 | temp)) | ||
| 2548 | |||
| 2491 | (defvar auto-mode-interpreter-regexp | 2549 | (defvar auto-mode-interpreter-regexp |
| 2492 | (purecopy "#![ \t]?\\([^ \t\n]*\ | 2550 | (purecopy "#![ \t]?\\([^ \t\n]*\ |
| 2493 | /bin/env[ \t]\\)?\\([^ \t\n]+\\)") | 2551 | /bin/env[ \t]\\)?\\([^ \t\n]+\\)") |
| @@ -2550,21 +2608,24 @@ Also applies to `magic-fallback-mode-alist'.") | |||
| 2550 | (defun set-auto-mode (&optional keep-mode-if-same) | 2608 | (defun set-auto-mode (&optional keep-mode-if-same) |
| 2551 | "Select major mode appropriate for current buffer. | 2609 | "Select major mode appropriate for current buffer. |
| 2552 | 2610 | ||
| 2553 | To find the right major mode, this function checks for a -*- mode tag, | 2611 | To find the right major mode, this function checks for a -*- mode tag |
| 2554 | checks for a `mode:' entry in the Local Variables section of the file, | 2612 | checks for a `mode:' entry in the Local Variables section of the file, |
| 2555 | checks if it uses an interpreter listed in `interpreter-mode-alist', | 2613 | checks if it uses an interpreter listed in `interpreter-mode-alist', |
| 2556 | matches the buffer beginning against `magic-mode-alist', | 2614 | matches the buffer beginning against `magic-mode-alist', |
| 2557 | compares the filename against the entries in `auto-mode-alist', | 2615 | compares the filename against the entries in `auto-mode-alist', |
| 2558 | then matches the buffer beginning against `magic-fallback-mode-alist'. | 2616 | then matches the buffer beginning against `magic-fallback-mode-alist'. |
| 2559 | 2617 | ||
| 2560 | If `enable-local-variables' is nil, this function does not check for | 2618 | If `enable-local-variables' is nil, or if the file name matches |
| 2561 | any mode: tag anywhere in the file. | 2619 | `inhibit-local-variables-regexps', this function does not check |
| 2620 | for any mode: tag anywhere in the file. If `local-enable-local-variables' | ||
| 2621 | is nil, then the only mode: tag that can be relevant is a -*- one. | ||
| 2562 | 2622 | ||
| 2563 | If the optional argument KEEP-MODE-IF-SAME is non-nil, then we | 2623 | If the optional argument KEEP-MODE-IF-SAME is non-nil, then we |
| 2564 | set the major mode only if that would change it. In other words | 2624 | set the major mode only if that would change it. In other words |
| 2565 | we don't actually set it to the same mode the buffer already has." | 2625 | we don't actually set it to the same mode the buffer already has." |
| 2566 | ;; Look for -*-MODENAME-*- or -*- ... mode: MODENAME; ... -*- | 2626 | ;; Look for -*-MODENAME-*- or -*- ... mode: MODENAME; ... -*- |
| 2567 | (let (end done mode modes) | 2627 | (let ((try-locals (not (inhibit-local-variables-p))) |
| 2628 | end done mode modes) | ||
| 2568 | ;; Once we drop the deprecated feature where mode: is also allowed to | 2629 | ;; Once we drop the deprecated feature where mode: is also allowed to |
| 2569 | ;; specify minor-modes (ie, there can be more than one "mode:"), we can | 2630 | ;; specify minor-modes (ie, there can be more than one "mode:"), we can |
| 2570 | ;; remove this section and just let (hack-local-variables t) handle it. | 2631 | ;; remove this section and just let (hack-local-variables t) handle it. |
| @@ -2572,7 +2633,9 @@ we don't actually set it to the same mode the buffer already has." | |||
| 2572 | (save-excursion | 2633 | (save-excursion |
| 2573 | (goto-char (point-min)) | 2634 | (goto-char (point-min)) |
| 2574 | (skip-chars-forward " \t\n") | 2635 | (skip-chars-forward " \t\n") |
| 2636 | ;; Note by design local-enable-local-variables does not matter here. | ||
| 2575 | (and enable-local-variables | 2637 | (and enable-local-variables |
| 2638 | try-locals | ||
| 2576 | (setq end (set-auto-mode-1)) | 2639 | (setq end (set-auto-mode-1)) |
| 2577 | (if (save-excursion (search-forward ":" end t)) | 2640 | (if (save-excursion (search-forward ":" end t)) |
| 2578 | ;; Find all specifications for the `mode:' variable | 2641 | ;; Find all specifications for the `mode:' variable |
| @@ -2603,8 +2666,12 @@ we don't actually set it to the same mode the buffer already has." | |||
| 2603 | (or (set-auto-mode-0 mode keep-mode-if-same) | 2666 | (or (set-auto-mode-0 mode keep-mode-if-same) |
| 2604 | ;; continuing would call minor modes again, toggling them off | 2667 | ;; continuing would call minor modes again, toggling them off |
| 2605 | (throw 'nop nil)))))) | 2668 | (throw 'nop nil)))))) |
| 2669 | ;; hack-local-variables checks local-enable-local-variables etc, but | ||
| 2670 | ;; we might as well be explicit here for the sake of clarity. | ||
| 2606 | (and (not done) | 2671 | (and (not done) |
| 2607 | enable-local-variables | 2672 | enable-local-variables |
| 2673 | local-enable-local-variables | ||
| 2674 | try-locals | ||
| 2608 | (setq mode (hack-local-variables t)) | 2675 | (setq mode (hack-local-variables t)) |
| 2609 | (not (memq mode modes)) ; already tried and failed | 2676 | (not (memq mode modes)) ; already tried and failed |
| 2610 | (if (not (functionp mode)) | 2677 | (if (not (functionp mode)) |
| @@ -2714,38 +2781,24 @@ same, do nothing and return nil." | |||
| 2714 | (defun set-auto-mode-1 () | 2781 | (defun set-auto-mode-1 () |
| 2715 | "Find the -*- spec in the buffer. | 2782 | "Find the -*- spec in the buffer. |
| 2716 | Call with point at the place to start searching from. | 2783 | Call with point at the place to start searching from. |
| 2717 | If one is found, set point to the beginning | 2784 | If one is found, set point to the beginning and return the position |
| 2718 | and return the position of the end. | 2785 | of the end. Otherwise, return nil; may change point. |
| 2719 | Otherwise, return nil; point may be changed." | 2786 | The variable `inhibit-local-variables-regexps' can cause a -*- spec to |
| 2787 | be ignored; but `enable-local-variables' and `local-enable-local-variables' | ||
| 2788 | have no effect." | ||
| 2720 | (let (beg end) | 2789 | (let (beg end) |
| 2721 | (and | 2790 | (and |
| 2722 | ;; Don't look for -*- if this file name matches any | 2791 | ;; Don't look for -*- if this file name matches any |
| 2723 | ;; of the regexps in inhibit-first-line-modes-regexps. | 2792 | ;; of the regexps in inhibit-local-variables-regexps. |
| 2724 | (let ((temp inhibit-first-line-modes-regexps) | 2793 | (not (inhibit-local-variables-p)) |
| 2725 | (name (if buffer-file-name | ||
| 2726 | (file-name-sans-versions buffer-file-name) | ||
| 2727 | (buffer-name)))) | ||
| 2728 | (while (let ((sufs inhibit-first-line-modes-suffixes)) | ||
| 2729 | (while (and sufs (not (string-match (car sufs) name))) | ||
| 2730 | (setq sufs (cdr sufs))) | ||
| 2731 | sufs) | ||
| 2732 | (setq name (substring name 0 (match-beginning 0)))) | ||
| 2733 | (while (and temp | ||
| 2734 | (not (string-match (car temp) name))) | ||
| 2735 | (setq temp (cdr temp))) | ||
| 2736 | (not temp)) | ||
| 2737 | |||
| 2738 | (search-forward "-*-" (line-end-position | 2794 | (search-forward "-*-" (line-end-position |
| 2739 | ;; If the file begins with "#!" | 2795 | ;; If the file begins with "#!" (exec |
| 2740 | ;; (exec interpreter magic), look | 2796 | ;; interpreter magic), look for mode frobs |
| 2741 | ;; for mode frobs in the first two | 2797 | ;; in the first two lines. You cannot |
| 2742 | ;; lines. You cannot necessarily | 2798 | ;; necessarily put them in the first line |
| 2743 | ;; put them in the first line of | 2799 | ;; of such a file without screwing up the |
| 2744 | ;; such a file without screwing up | 2800 | ;; interpreter invocation. The same holds |
| 2745 | ;; the interpreter invocation. | 2801 | ;; for '\" in man pages (preprocessor |
| 2746 | ;; The same holds for | ||
| 2747 | ;; '\" | ||
| 2748 | ;; in man pages (preprocessor | ||
| 2749 | ;; magic for the `man' program). | 2802 | ;; magic for the `man' program). |
| 2750 | (and (looking-at "^\\(#!\\|'\\\\\"\\)") 2)) t) | 2803 | (and (looking-at "^\\(#!\\|'\\\\\"\\)") 2)) t) |
| 2751 | (progn | 2804 | (progn |
| @@ -3090,19 +3143,41 @@ Uses `hack-local-variables-apply' to apply the variables. | |||
| 3090 | If MODE-ONLY is non-nil, all we do is check whether a \"mode:\" | 3143 | If MODE-ONLY is non-nil, all we do is check whether a \"mode:\" |
| 3091 | is specified, and return the corresponding mode symbol, or nil. | 3144 | is specified, and return the corresponding mode symbol, or nil. |
| 3092 | In this case, we try to ignore minor-modes, and only return a | 3145 | In this case, we try to ignore minor-modes, and only return a |
| 3093 | major-mode." | 3146 | major-mode. |
| 3147 | |||
| 3148 | If `enable-local-variables' or `local-enable-local-variables' is nil, | ||
| 3149 | this function does nothing. If `inhibit-local-variables-regexps' | ||
| 3150 | applies to the file in question, the file is not scanned for | ||
| 3151 | local variables, but directory-local variables may still be applied." | ||
| 3152 | ;; We don't let inhibit-local-variables-p influence the value of | ||
| 3153 | ;; enable-local-variables, because then it would affect dir-local | ||
| 3154 | ;; variables. We don't want to search eg tar files for file local | ||
| 3155 | ;; variable sections, but there is no reason dir-locals cannot apply | ||
| 3156 | ;; to them. The real meaning of inhibit-local-variables-p is "do | ||
| 3157 | ;; not scan this file for local variables". | ||
| 3094 | (let ((enable-local-variables | 3158 | (let ((enable-local-variables |
| 3095 | (and local-enable-local-variables enable-local-variables)) | 3159 | (and local-enable-local-variables enable-local-variables)) |
| 3096 | result) | 3160 | result) |
| 3097 | (unless mode-only | 3161 | (unless mode-only |
| 3098 | (setq file-local-variables-alist nil) | 3162 | (setq file-local-variables-alist nil) |
| 3099 | (report-errors "Directory-local variables error: %s" | 3163 | (report-errors "Directory-local variables error: %s" |
| 3164 | ;; Note this is a no-op if enable-local-variables is nil. | ||
| 3100 | (hack-dir-local-variables))) | 3165 | (hack-dir-local-variables))) |
| 3101 | (when (or mode-only enable-local-variables) | 3166 | ;; This entire function is basically a no-op if enable-local-variables |
| 3102 | ;; If MODE-ONLY is non-nil, and the prop line specifies a mode, | 3167 | ;; is nil. All it does is set file-local-variables-alist to nil. |
| 3103 | ;; then we're done, and have no need to scan further. | 3168 | (when enable-local-variables |
| 3104 | (unless (and (setq result (hack-local-variables-prop-line mode-only)) | 3169 | ;; This part used to ignore enable-local-variables when mode-only |
| 3105 | mode-only) | 3170 | ;; was non-nil. That was inappropriate, eg consider the |
| 3171 | ;; (artificial) example of: | ||
| 3172 | ;; (setq local-enable-local-variables nil) | ||
| 3173 | ;; Open a file foo.txt that contains "mode: sh". | ||
| 3174 | ;; It correctly opens in text-mode. | ||
| 3175 | ;; M-x set-visited-file name foo.c, and it incorrectly stays in text-mode. | ||
| 3176 | (unless (or (inhibit-local-variables-p) | ||
| 3177 | ;; If MODE-ONLY is non-nil, and the prop line specifies a | ||
| 3178 | ;; mode, then we're done, and have no need to scan further. | ||
| 3179 | (and (setq result (hack-local-variables-prop-line mode-only)) | ||
| 3180 | mode-only)) | ||
| 3106 | ;; Look for "Local variables:" line in last page. | 3181 | ;; Look for "Local variables:" line in last page. |
| 3107 | (save-excursion | 3182 | (save-excursion |
| 3108 | (goto-char (point-max)) | 3183 | (goto-char (point-max)) |
| @@ -3192,14 +3267,13 @@ major-mode." | |||
| 3192 | (indirect-variable var)) | 3267 | (indirect-variable var)) |
| 3193 | val) result) | 3268 | val) result) |
| 3194 | (error nil))))) | 3269 | (error nil))))) |
| 3195 | (forward-line 1))))))))) | 3270 | (forward-line 1)))))))) |
| 3196 | ;; Now we've read all the local variables. | 3271 | ;; Now we've read all the local variables. |
| 3197 | ;; If MODE-ONLY is non-nil, return whether the mode was specified. | 3272 | ;; If MODE-ONLY is non-nil, return whether the mode was specified. |
| 3198 | (cond (mode-only result) | 3273 | (if mode-only result |
| 3199 | ;; Otherwise, set the variables. | 3274 | ;; Otherwise, set the variables. |
| 3200 | (enable-local-variables | 3275 | (hack-local-variables-filter result nil) |
| 3201 | (hack-local-variables-filter result nil) | 3276 | (hack-local-variables-apply))))) |
| 3202 | (hack-local-variables-apply))))) | ||
| 3203 | 3277 | ||
| 3204 | (defun hack-local-variables-apply () | 3278 | (defun hack-local-variables-apply () |
| 3205 | "Apply the elements of `file-local-variables-alist'. | 3279 | "Apply the elements of `file-local-variables-alist'. |
| @@ -3611,7 +3685,7 @@ the old visited file has been renamed to the new name FILENAME." | |||
| 3611 | (interactive "FSet visited file name: ") | 3685 | (interactive "FSet visited file name: ") |
| 3612 | (if (buffer-base-buffer) | 3686 | (if (buffer-base-buffer) |
| 3613 | (error "An indirect buffer cannot visit a file")) | 3687 | (error "An indirect buffer cannot visit a file")) |
| 3614 | (let (truename) | 3688 | (let (truename old-try-locals) |
| 3615 | (if filename | 3689 | (if filename |
| 3616 | (setq filename | 3690 | (setq filename |
| 3617 | (if (string-equal filename "") | 3691 | (if (string-equal filename "") |
| @@ -3636,7 +3710,8 @@ the old visited file has been renamed to the new name FILENAME." | |||
| 3636 | (progn | 3710 | (progn |
| 3637 | (and filename (lock-buffer filename)) | 3711 | (and filename (lock-buffer filename)) |
| 3638 | (unlock-buffer))) | 3712 | (unlock-buffer))) |
| 3639 | (setq buffer-file-name filename) | 3713 | (setq old-try-locals (not (inhibit-local-variables-p)) |
| 3714 | buffer-file-name filename) | ||
| 3640 | (if filename ; make buffer name reflect filename. | 3715 | (if filename ; make buffer name reflect filename. |
| 3641 | (let ((new-name (file-name-nondirectory buffer-file-name))) | 3716 | (let ((new-name (file-name-nondirectory buffer-file-name))) |
| 3642 | (setq default-directory (file-name-directory buffer-file-name)) | 3717 | (setq default-directory (file-name-directory buffer-file-name)) |
| @@ -3656,59 +3731,63 @@ the old visited file has been renamed to the new name FILENAME." | |||
| 3656 | (setq buffer-file-number | 3731 | (setq buffer-file-number |
| 3657 | (if filename | 3732 | (if filename |
| 3658 | (nthcdr 10 (file-attributes buffer-file-name)) | 3733 | (nthcdr 10 (file-attributes buffer-file-name)) |
| 3659 | nil))) | 3734 | nil)) |
| 3660 | ;; write-file-functions is normally used for things like ftp-find-file | 3735 | ;; write-file-functions is normally used for things like ftp-find-file |
| 3661 | ;; that visit things that are not local files as if they were files. | 3736 | ;; that visit things that are not local files as if they were files. |
| 3662 | ;; Changing to visit an ordinary local file instead should flush the hook. | 3737 | ;; Changing to visit an ordinary local file instead should flush the hook. |
| 3663 | (kill-local-variable 'write-file-functions) | 3738 | (kill-local-variable 'write-file-functions) |
| 3664 | (kill-local-variable 'local-write-file-hooks) | 3739 | (kill-local-variable 'local-write-file-hooks) |
| 3665 | (kill-local-variable 'revert-buffer-function) | 3740 | (kill-local-variable 'revert-buffer-function) |
| 3666 | (kill-local-variable 'backup-inhibited) | 3741 | (kill-local-variable 'backup-inhibited) |
| 3667 | ;; If buffer was read-only because of version control, | 3742 | ;; If buffer was read-only because of version control, |
| 3668 | ;; that reason is gone now, so make it writable. | 3743 | ;; that reason is gone now, so make it writable. |
| 3669 | (if vc-mode | 3744 | (if vc-mode |
| 3670 | (setq buffer-read-only nil)) | 3745 | (setq buffer-read-only nil)) |
| 3671 | (kill-local-variable 'vc-mode) | 3746 | (kill-local-variable 'vc-mode) |
| 3672 | ;; Turn off backup files for certain file names. | 3747 | ;; Turn off backup files for certain file names. |
| 3673 | ;; Since this is a permanent local, the major mode won't eliminate it. | 3748 | ;; Since this is a permanent local, the major mode won't eliminate it. |
| 3674 | (and buffer-file-name | 3749 | (and buffer-file-name |
| 3675 | backup-enable-predicate | 3750 | backup-enable-predicate |
| 3676 | (not (funcall backup-enable-predicate buffer-file-name)) | 3751 | (not (funcall backup-enable-predicate buffer-file-name)) |
| 3677 | (progn | 3752 | (progn |
| 3678 | (make-local-variable 'backup-inhibited) | 3753 | (make-local-variable 'backup-inhibited) |
| 3679 | (setq backup-inhibited t))) | 3754 | (setq backup-inhibited t))) |
| 3680 | (let ((oauto buffer-auto-save-file-name)) | 3755 | (let ((oauto buffer-auto-save-file-name)) |
| 3681 | ;; If auto-save was not already on, turn it on if appropriate. | 3756 | ;; If auto-save was not already on, turn it on if appropriate. |
| 3682 | (if (not buffer-auto-save-file-name) | 3757 | (if (not buffer-auto-save-file-name) |
| 3683 | (and buffer-file-name auto-save-default | 3758 | (and buffer-file-name auto-save-default |
| 3684 | (auto-save-mode t)) | 3759 | (auto-save-mode t)) |
| 3685 | ;; If auto save is on, start using a new name. | 3760 | ;; If auto save is on, start using a new name. |
| 3686 | ;; We deliberately don't rename or delete the old auto save | 3761 | ;; We deliberately don't rename or delete the old auto save |
| 3687 | ;; for the old visited file name. This is because perhaps | 3762 | ;; for the old visited file name. This is because perhaps |
| 3688 | ;; the user wants to save the new state and then compare with the | 3763 | ;; the user wants to save the new state and then compare with the |
| 3689 | ;; previous state from the auto save file. | 3764 | ;; previous state from the auto save file. |
| 3690 | (setq buffer-auto-save-file-name | 3765 | (setq buffer-auto-save-file-name |
| 3691 | (make-auto-save-file-name))) | 3766 | (make-auto-save-file-name))) |
| 3692 | ;; Rename the old auto save file if any. | 3767 | ;; Rename the old auto save file if any. |
| 3693 | (and oauto buffer-auto-save-file-name | 3768 | (and oauto buffer-auto-save-file-name |
| 3694 | (file-exists-p oauto) | 3769 | (file-exists-p oauto) |
| 3695 | (rename-file oauto buffer-auto-save-file-name t))) | 3770 | (rename-file oauto buffer-auto-save-file-name t))) |
| 3696 | (and buffer-file-name | 3771 | (and buffer-file-name |
| 3697 | (not along-with-file) | 3772 | (not along-with-file) |
| 3698 | (set-buffer-modified-p t)) | 3773 | (set-buffer-modified-p t)) |
| 3699 | ;; Update the major mode, if the file name determines it. | 3774 | ;; Update the major mode, if the file name determines it. |
| 3700 | (condition-case nil | 3775 | (condition-case nil |
| 3701 | ;; Don't change the mode if it is special. | 3776 | ;; Don't change the mode if it is special. |
| 3702 | (or (not change-major-mode-with-file-name) | 3777 | (or (not change-major-mode-with-file-name) |
| 3703 | (get major-mode 'mode-class) | 3778 | (get major-mode 'mode-class) |
| 3704 | ;; Don't change the mode if the local variable list specifies it. | 3779 | ;; Don't change the mode if the local variable list specifies it. |
| 3705 | (hack-local-variables t) | 3780 | ;; The file name can influence whether the local variables apply. |
| 3706 | ;; TODO consider making normal-mode handle this case. | 3781 | (and old-try-locals |
| 3707 | (let ((old major-mode)) | 3782 | ;; h-l-v also checks it, but might as well be explcit. |
| 3708 | (set-auto-mode t) | 3783 | (not (inhibit-local-variables-p)) |
| 3709 | (or (eq old major-mode) | 3784 | (hack-local-variables t)) |
| 3710 | (hack-local-variables)))) | 3785 | ;; TODO consider making normal-mode handle this case. |
| 3711 | (error nil))) | 3786 | (let ((old major-mode)) |
| 3787 | (set-auto-mode t) | ||
| 3788 | (or (eq old major-mode) | ||
| 3789 | (hack-local-variables)))) | ||
| 3790 | (error nil)))) | ||
| 3712 | 3791 | ||
| 3713 | (defun write-file (filename &optional confirm) | 3792 | (defun write-file (filename &optional confirm) |
| 3714 | "Write current buffer into file FILENAME. | 3793 | "Write current buffer into file FILENAME. |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index c7358779818..8e790962c34 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2012-01-21 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * mm-decode.el (mm-interactively-view-part): Fix prompt. | ||
| 4 | |||
| 1 | 2012-01-10 Teodor Zlatanov <tzz@lifelogs.com> | 5 | 2012-01-10 Teodor Zlatanov <tzz@lifelogs.com> |
| 2 | 6 | ||
| 3 | * nntp.el (nntp-send-authinfo): Query `auth-source-search' with the | 7 | * nntp.el (nntp-send-authinfo): Query `auth-source-search' with the |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 10e0fa2861c..dd3eb6c9d96 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -1353,7 +1353,7 @@ Use CMD as the process." | |||
| 1353 | (mailcap-mime-info type 'all))) | 1353 | (mailcap-mime-info type 'all))) |
| 1354 | (method (let ((minibuffer-local-completion-map | 1354 | (method (let ((minibuffer-local-completion-map |
| 1355 | mm-viewer-completion-map)) | 1355 | mm-viewer-completion-map)) |
| 1356 | (completing-read "Viewer" methods)))) | 1356 | (completing-read "Viewer: " methods)))) |
| 1357 | (when (string= method "") | 1357 | (when (string= method "") |
| 1358 | (error "No method given")) | 1358 | (error "No method given")) |
| 1359 | (if (string-match "^[^% \t]+$" method) | 1359 | (if (string-match "^[^% \t]+$" method) |
diff --git a/lisp/help-macro.el b/lisp/help-macro.el index 0bd6f3c4798..112c72778bc 100644 --- a/lisp/help-macro.el +++ b/lisp/help-macro.el | |||
| @@ -184,9 +184,12 @@ and then returns." | |||
| 184 | (when config | 184 | (when config |
| 185 | (set-window-configuration config) | 185 | (set-window-configuration config) |
| 186 | (setq config nil)) | 186 | (setq config nil)) |
| 187 | ;; `defn' must make sure that its frame is | 187 | ;; Temporarily rebind `minor-mode-map-alist' |
| 188 | ;; selected, so we won't iconify it below. | 188 | ;; to `new-minor-mode-map-alist' (Bug#10454). |
| 189 | (call-interactively defn) | 189 | (let ((minor-mode-map-alist new-minor-mode-map-alist)) |
| 190 | ;; `defn' must make sure that its frame is | ||
| 191 | ;; selected, so we won't iconify it below. | ||
| 192 | (call-interactively defn)) | ||
| 190 | (when new-frame | 193 | (when new-frame |
| 191 | ;; Do not iconify the selected frame. | 194 | ;; Do not iconify the selected frame. |
| 192 | (unless (eq new-frame (selected-frame)) | 195 | (unless (eq new-frame (selected-frame)) |
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index cbe548c2ccf..378cbc9badd 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el | |||
| @@ -418,7 +418,10 @@ To prefer, for instance, utf-8, say the following: | |||
| 418 | (if (memq eol-type '(0 1 2)) | 418 | (if (memq eol-type '(0 1 2)) |
| 419 | (setq base | 419 | (setq base |
| 420 | (coding-system-change-eol-conversion base eol-type))) | 420 | (coding-system-change-eol-conversion base eol-type))) |
| 421 | (set-default-coding-systems base))) | 421 | (set-default-coding-systems base) |
| 422 | (if (called-interactively-p 'interactive) | ||
| 423 | (or (eq base default-file-name-coding-system) | ||
| 424 | (message "The default value of `file-name-coding-system' was not changed because the specified coding system is not suitable for file names."))))) | ||
| 422 | 425 | ||
| 423 | (defvar sort-coding-systems-predicate nil | 426 | (defvar sort-coding-systems-predicate nil |
| 424 | "If non-nil, a predicate function to sort coding systems. | 427 | "If non-nil, a predicate function to sort coding systems. |
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 17163071d3f..d4dd4e4cf24 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el | |||
| @@ -1668,6 +1668,7 @@ in-place." | |||
| 1668 | 1668 | ||
| 1669 | ;;; FILE I/O | 1669 | ;;; FILE I/O |
| 1670 | 1670 | ||
| 1671 | ;; TODO many elements of this list are also in inhibit-local-variables-regexps. | ||
| 1671 | (defcustom auto-coding-alist | 1672 | (defcustom auto-coding-alist |
| 1672 | ;; .exe and .EXE are added to support archive-mode looking at DOS | 1673 | ;; .exe and .EXE are added to support archive-mode looking at DOS |
| 1673 | ;; self-extracting exe archives. | 1674 | ;; self-extracting exe archives. |
| @@ -1677,7 +1678,7 @@ arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|7z\\|\ | |||
| 1677 | ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" | 1678 | ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" |
| 1678 | . no-conversion-multibyte) | 1679 | . no-conversion-multibyte) |
| 1679 | ("\\.\\(exe\\|EXE\\)\\'" . no-conversion) | 1680 | ("\\.\\(exe\\|EXE\\)\\'" . no-conversion) |
| 1680 | ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion) | 1681 | ("\\.\\(sx[dmicw]\\|odt\\|tar\\|t[bg]z\\)\\'" . no-conversion) |
| 1681 | ("\\.\\(gz\\|Z\\|bz\\|bz2\\|xz\\|gpg\\)\\'" . no-conversion) | 1682 | ("\\.\\(gz\\|Z\\|bz\\|bz2\\|xz\\|gpg\\)\\'" . no-conversion) |
| 1682 | ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion) | 1683 | ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion) |
| 1683 | ("\\.pdf\\'" . no-conversion) | 1684 | ("\\.pdf\\'" . no-conversion) |
diff --git a/lisp/isearch.el b/lisp/isearch.el index a6cc69be9a6..ce759116860 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -102,7 +102,7 @@ in Isearch mode is always downcased." | |||
| 102 | :group 'isearch) | 102 | :group 'isearch) |
| 103 | 103 | ||
| 104 | (defcustom search-nonincremental-instead t | 104 | (defcustom search-nonincremental-instead t |
| 105 | "If non-nil, do a nonincremental search instead if exiting immediately. | 105 | "If non-nil, do a nonincremental search instead of exiting immediately. |
| 106 | Actually, `isearch-edit-string' is called to let you enter the search | 106 | Actually, `isearch-edit-string' is called to let you enter the search |
| 107 | string, and RET terminates editing and does a nonincremental search." | 107 | string, and RET terminates editing and does a nonincremental search." |
| 108 | :type 'boolean | 108 | :type 'boolean |
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el index d09e64634c3..600ed549731 100644 --- a/lisp/jka-cmpr-hook.el +++ b/lisp/jka-cmpr-hook.el | |||
| @@ -119,7 +119,7 @@ based on the filename itself and `jka-compr-compression-info-list'." | |||
| 119 | (defun jka-compr-install () | 119 | (defun jka-compr-install () |
| 120 | "Install jka-compr. | 120 | "Install jka-compr. |
| 121 | This adds entries to `file-name-handler-alist' and `auto-mode-alist' | 121 | This adds entries to `file-name-handler-alist' and `auto-mode-alist' |
| 122 | and `inhibit-first-line-modes-suffixes'." | 122 | and `inhibit-local-variables-suffixes'." |
| 123 | 123 | ||
| 124 | (setq jka-compr-file-name-handler-entry | 124 | (setq jka-compr-file-name-handler-entry |
| 125 | (cons (jka-compr-build-file-regexp) 'jka-compr-handler)) | 125 | (cons (jka-compr-build-file-regexp) 'jka-compr-handler)) |
| @@ -145,12 +145,12 @@ and `inhibit-first-line-modes-suffixes'." | |||
| 145 | ;; are chosen right according to the file names | 145 | ;; are chosen right according to the file names |
| 146 | ;; sans `.gz'. | 146 | ;; sans `.gz'. |
| 147 | (push (list (jka-compr-info-regexp x) nil 'jka-compr) auto-mode-alist) | 147 | (push (list (jka-compr-info-regexp x) nil 'jka-compr) auto-mode-alist) |
| 148 | ;; Also add these regexps to | 148 | ;; Also add these regexps to inhibit-local-variables-suffixes, |
| 149 | ;; inhibit-first-line-modes-suffixes, so that a | 149 | ;; so that a -*- line in the first file of a compressed tar file, |
| 150 | ;; -*- line in the first file of a compressed tar | 150 | ;; or a Local Variables section in a member file at the end of |
| 151 | ;; file doesn't override tar-mode. | 151 | ;; the tar file don't override tar-mode. |
| 152 | (push (jka-compr-info-regexp x) | 152 | (push (jka-compr-info-regexp x) |
| 153 | inhibit-first-line-modes-suffixes))) | 153 | inhibit-local-variables-suffixes))) |
| 154 | (setq auto-mode-alist | 154 | (setq auto-mode-alist |
| 155 | (append auto-mode-alist jka-compr-mode-alist-additions)) | 155 | (append auto-mode-alist jka-compr-mode-alist-additions)) |
| 156 | 156 | ||
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 786e4292d5f..8a8d7cdbb52 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el | |||
| @@ -657,16 +657,15 @@ It is not recommended to set this variable permanently to anything but nil.") | |||
| 657 | (defun jka-compr-uninstall () | 657 | (defun jka-compr-uninstall () |
| 658 | "Uninstall jka-compr. | 658 | "Uninstall jka-compr. |
| 659 | This removes the entries in `file-name-handler-alist' and `auto-mode-alist' | 659 | This removes the entries in `file-name-handler-alist' and `auto-mode-alist' |
| 660 | and `inhibit-first-line-modes-suffixes' that were added | 660 | and `inhibit-local-variables-suffixes' that were added |
| 661 | by `jka-compr-installed'." | 661 | by `jka-compr-installed'." |
| 662 | ;; Delete from inhibit-first-line-modes-suffixes | 662 | ;; Delete from inhibit-local-variables-suffixes what jka-compr-install added. |
| 663 | ;; what jka-compr-install added. | ||
| 664 | (mapc | 663 | (mapc |
| 665 | (function (lambda (x) | 664 | (function (lambda (x) |
| 666 | (and (jka-compr-info-strip-extension x) | 665 | (and (jka-compr-info-strip-extension x) |
| 667 | (setq inhibit-first-line-modes-suffixes | 666 | (setq inhibit-local-variables-suffixes |
| 668 | (delete (jka-compr-info-regexp x) | 667 | (delete (jka-compr-info-regexp x) |
| 669 | inhibit-first-line-modes-suffixes))))) | 668 | inhibit-local-variables-suffixes))))) |
| 670 | jka-compr-compression-info-list--internal) | 669 | jka-compr-compression-info-list--internal) |
| 671 | 670 | ||
| 672 | (let* ((fnha (cons nil file-name-handler-alist)) | 671 | (let* ((fnha (cons nil file-name-handler-alist)) |
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el index 03a5fe5b88e..d222dd1011d 100644 --- a/lisp/net/tramp-cache.el +++ b/lisp/net/tramp-cache.el | |||
| @@ -243,7 +243,7 @@ PROPERTY is set persistent when KEY is a vector." | |||
| 243 | (aset key 3 nil)) | 243 | (aset key 3 nil)) |
| 244 | (let ((hash (or (gethash key tramp-cache-data) | 244 | (let ((hash (or (gethash key tramp-cache-data) |
| 245 | (puthash key (make-hash-table :test 'equal) | 245 | (puthash key (make-hash-table :test 'equal) |
| 246 | tramp-cache-data)))) | 246 | tramp-cache-data)))) |
| 247 | (puthash property value hash) | 247 | (puthash property value hash) |
| 248 | (setq tramp-cache-data-changed t) | 248 | (setq tramp-cache-data-changed t) |
| 249 | (tramp-message key 7 "%s %s" property value) | 249 | (tramp-message key 7 "%s %s" property value) |
| @@ -329,10 +329,15 @@ KEY identifies the connection, it is either a process or a vector." | |||
| 329 | tramp-cache-data-changed | 329 | tramp-cache-data-changed |
| 330 | (stringp tramp-persistency-file-name)) | 330 | (stringp tramp-persistency-file-name)) |
| 331 | (let ((cache (copy-hash-table tramp-cache-data))) | 331 | (let ((cache (copy-hash-table tramp-cache-data))) |
| 332 | ;; Remove temporary data. | 332 | ;; Remove temporary data. If there is the key "login-as", we |
| 333 | ;; don't save either, because all other properties might | ||
| 334 | ;; depend on the login name, and we want to give the | ||
| 335 | ;; possibility to use another login name later on. | ||
| 333 | (maphash | 336 | (maphash |
| 334 | (lambda (key value) | 337 | (lambda (key value) |
| 335 | (if (and (vectorp key) (not (tramp-file-name-localname key))) | 338 | (if (and (vectorp key) |
| 339 | (not (tramp-file-name-localname key)) | ||
| 340 | (not (gethash "login-as" value))) | ||
| 336 | (progn | 341 | (progn |
| 337 | (remhash "process-name" value) | 342 | (remhash "process-name" value) |
| 338 | (remhash "process-buffer" value) | 343 | (remhash "process-buffer" value) |
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 2478253841f..38e19730a6d 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el | |||
| @@ -380,7 +380,7 @@ detected as prompt when being sent on echoing hosts, therefore.") | |||
| 380 | (tramp-remote-shell "/bin/sh") | 380 | (tramp-remote-shell "/bin/sh") |
| 381 | (tramp-remote-shell-args ("-c")) | 381 | (tramp-remote-shell-args ("-c")) |
| 382 | (tramp-copy-program "pscp") | 382 | (tramp-copy-program "pscp") |
| 383 | (tramp-copy-args (("-P" "%p") ("-scp") ("-p" "%k") | 383 | (tramp-copy-args (("-l" "%u") ("-P" "%p") ("-scp") ("-p" "%k") |
| 384 | ("-q") ("-r"))) | 384 | ("-q") ("-r"))) |
| 385 | (tramp-copy-keep-date t) | 385 | (tramp-copy-keep-date t) |
| 386 | (tramp-copy-recursive t) | 386 | (tramp-copy-recursive t) |
| @@ -394,7 +394,7 @@ detected as prompt when being sent on echoing hosts, therefore.") | |||
| 394 | (tramp-remote-shell "/bin/sh") | 394 | (tramp-remote-shell "/bin/sh") |
| 395 | (tramp-remote-shell-args ("-c")) | 395 | (tramp-remote-shell-args ("-c")) |
| 396 | (tramp-copy-program "pscp") | 396 | (tramp-copy-program "pscp") |
| 397 | (tramp-copy-args (("-P" "%p") ("-sftp") ("-p" "%k") | 397 | (tramp-copy-args (("-l" "%u") ("-P" "%p") ("-sftp") ("-p" "%k") |
| 398 | ("-q") ("-r"))) | 398 | ("-q") ("-r"))) |
| 399 | (tramp-copy-keep-date t) | 399 | (tramp-copy-keep-date t) |
| 400 | (tramp-copy-recursive t) | 400 | (tramp-copy-recursive t) |
| @@ -419,13 +419,12 @@ detected as prompt when being sent on echoing hosts, therefore.") | |||
| 419 | `(,(concat "\\`" (regexp-opt '("su" "sudo" "ksu")) "\\'") | 419 | `(,(concat "\\`" (regexp-opt '("su" "sudo" "ksu")) "\\'") |
| 420 | nil "root")) | 420 | nil "root")) |
| 421 | ;; Do not add "ssh" based methods, otherwise ~/.ssh/config would be ignored. | 421 | ;; Do not add "ssh" based methods, otherwise ~/.ssh/config would be ignored. |
| 422 | ;; Do not add "plink" based methods, they ask interactively for the user. | ||
| 422 | ;;;###tramp-autoload | 423 | ;;;###tramp-autoload |
| 423 | (add-to-list 'tramp-default-user-alist | 424 | (add-to-list 'tramp-default-user-alist |
| 424 | `(,(concat | 425 | `(,(concat |
| 425 | "\\`" | 426 | "\\`" |
| 426 | (regexp-opt | 427 | (regexp-opt '("rcp" "remcp" "rsh" "telnet" "krlogin" "fcp")) |
| 427 | '("rcp" "remcp" "rsh" "telnet" "krlogin" | ||
| 428 | "plink" "plink1" "pscp" "psftp" "fcp")) | ||
| 429 | "\\'") | 428 | "\\'") |
| 430 | nil ,(user-login-name))) | 429 | nil ,(user-login-name))) |
| 431 | 430 | ||
| @@ -2281,8 +2280,10 @@ The method used must be an out-of-band method." | |||
| 2281 | ;; Set variables for computing the prompt for reading | 2280 | ;; Set variables for computing the prompt for reading |
| 2282 | ;; password. | 2281 | ;; password. |
| 2283 | (setq tramp-current-method (tramp-file-name-method v) | 2282 | (setq tramp-current-method (tramp-file-name-method v) |
| 2284 | tramp-current-user (tramp-file-name-user v) | 2283 | tramp-current-user (or (tramp-file-name-user v) |
| 2285 | tramp-current-host (tramp-file-name-real-host v)) | 2284 | (tramp-get-connection-property |
| 2285 | v "login-as" nil)) | ||
| 2286 | tramp-current-host (tramp-file-name-real-host v)) | ||
| 2286 | 2287 | ||
| 2287 | ;; Expand hops. Might be necessary for gateway methods. | 2288 | ;; Expand hops. Might be necessary for gateway methods. |
| 2288 | (setq v (car (tramp-compute-multi-hops v))) | 2289 | (setq v (car (tramp-compute-multi-hops v))) |
| @@ -2309,8 +2310,15 @@ The method used must be an out-of-band method." | |||
| 2309 | (setq port (string-to-number (match-string 2 host)) | 2310 | (setq port (string-to-number (match-string 2 host)) |
| 2310 | host (string-to-number (match-string 1 host)))) | 2311 | host (string-to-number (match-string 1 host)))) |
| 2311 | 2312 | ||
| 2313 | ;; Check for user. There might be an interactive setting. | ||
| 2314 | (setq user (or (tramp-file-name-user v) | ||
| 2315 | (tramp-get-connection-property v "login-as" nil))) | ||
| 2316 | |||
| 2312 | ;; Compose copy command. | 2317 | ;; Compose copy command. |
| 2313 | (setq spec (format-spec-make | 2318 | (setq host (or host "") |
| 2319 | user (or user "") | ||
| 2320 | port (or port "") | ||
| 2321 | spec (format-spec-make | ||
| 2314 | ?h host ?u user ?p port | 2322 | ?h host ?u user ?p port |
| 2315 | ?t (tramp-get-connection-property | 2323 | ?t (tramp-get-connection-property |
| 2316 | (tramp-get-connection-process v) "temp-file" "") | 2324 | (tramp-get-connection-process v) "temp-file" "") |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index afb7ab4312b..f13315bc662 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -460,6 +460,12 @@ usually suffice.") | |||
| 460 | "Regexp which matches `tramp-echo-mark' as it gets echoed by | 460 | "Regexp which matches `tramp-echo-mark' as it gets echoed by |
| 461 | the remote shell.") | 461 | the remote shell.") |
| 462 | 462 | ||
| 463 | (defcustom tramp-local-end-of-line | ||
| 464 | (if (memq system-type '(windows-nt)) "\r\n" "\n") | ||
| 465 | "*String used for end of line in local processes." | ||
| 466 | :group 'tramp | ||
| 467 | :type 'string) | ||
| 468 | |||
| 463 | (defcustom tramp-rsh-end-of-line "\n" | 469 | (defcustom tramp-rsh-end-of-line "\n" |
| 464 | "*String used for end of line in rsh connections. | 470 | "*String used for end of line in rsh connections. |
| 465 | I don't think this ever needs to be changed, so please tell me about it | 471 | I don't think this ever needs to be changed, so please tell me about it |
| @@ -1902,7 +1908,7 @@ Falls back to normal file name handler if no Tramp file name handler exists." | |||
| 1902 | ;; operations shall return at least a default value | 1908 | ;; operations shall return at least a default value |
| 1903 | ;; in order to give the user a chance to correct the | 1909 | ;; in order to give the user a chance to correct the |
| 1904 | ;; file name in the minibuffer. | 1910 | ;; file name in the minibuffer. |
| 1905 | ;; We cannot use 'debug as error handler. In order | 1911 | ;; We cannot use `debug' as error handler. In order |
| 1906 | ;; to get a full backtrace, one could apply | 1912 | ;; to get a full backtrace, one could apply |
| 1907 | ;; (setq debug-on-error t debug-on-signal t) | 1913 | ;; (setq debug-on-error t debug-on-signal t) |
| 1908 | (error | 1914 | (error |
| @@ -3109,14 +3115,16 @@ beginning of local filename are not substituted." | |||
| 3109 | (defun tramp-action-login (proc vec) | 3115 | (defun tramp-action-login (proc vec) |
| 3110 | "Send the login name." | 3116 | "Send the login name." |
| 3111 | (when (not (stringp tramp-current-user)) | 3117 | (when (not (stringp tramp-current-user)) |
| 3112 | (save-window-excursion | 3118 | (setq tramp-current-user |
| 3113 | (let ((enable-recursive-minibuffers t)) | 3119 | (with-connection-property vec "login-as" |
| 3114 | (pop-to-buffer (tramp-get-connection-buffer vec)) | 3120 | (save-window-excursion |
| 3115 | (setq tramp-current-user (read-string (match-string 0)))))) | 3121 | (let ((enable-recursive-minibuffers t)) |
| 3116 | (tramp-message vec 3 "Sending login name `%s'" tramp-current-user) | 3122 | (pop-to-buffer (tramp-get-connection-buffer vec)) |
| 3123 | (read-string (match-string 0))))))) | ||
| 3117 | (with-current-buffer (tramp-get-connection-buffer vec) | 3124 | (with-current-buffer (tramp-get-connection-buffer vec) |
| 3118 | (tramp-message vec 6 "\n%s" (buffer-string))) | 3125 | (tramp-message vec 6 "\n%s" (buffer-string))) |
| 3119 | (tramp-send-string vec tramp-current-user)) | 3126 | (tramp-message vec 3 "Sending login name `%s'" tramp-current-user) |
| 3127 | (tramp-send-string vec (concat tramp-current-user tramp-local-end-of-line))) | ||
| 3120 | 3128 | ||
| 3121 | (defun tramp-action-password (proc vec) | 3129 | (defun tramp-action-password (proc vec) |
| 3122 | "Query the user for a password." | 3130 | "Query the user for a password." |
| @@ -3148,7 +3156,7 @@ See also `tramp-action-yn'." | |||
| 3148 | (throw 'tramp-action 'permission-denied)) | 3156 | (throw 'tramp-action 'permission-denied)) |
| 3149 | (with-current-buffer (tramp-get-connection-buffer vec) | 3157 | (with-current-buffer (tramp-get-connection-buffer vec) |
| 3150 | (tramp-message vec 6 "\n%s" (buffer-string))) | 3158 | (tramp-message vec 6 "\n%s" (buffer-string))) |
| 3151 | (tramp-send-string vec "yes")))) | 3159 | (tramp-send-string vec (concat "yes" tramp-local-end-of-line))))) |
| 3152 | 3160 | ||
| 3153 | (defun tramp-action-yn (proc vec) | 3161 | (defun tramp-action-yn (proc vec) |
| 3154 | "Ask the user for confirmation using `y-or-n-p'. | 3162 | "Ask the user for confirmation using `y-or-n-p'. |
| @@ -3162,7 +3170,7 @@ See also `tramp-action-yesno'." | |||
| 3162 | (throw 'tramp-action 'permission-denied)) | 3170 | (throw 'tramp-action 'permission-denied)) |
| 3163 | (with-current-buffer (tramp-get-connection-buffer vec) | 3171 | (with-current-buffer (tramp-get-connection-buffer vec) |
| 3164 | (tramp-message vec 6 "\n%s" (buffer-string))) | 3172 | (tramp-message vec 6 "\n%s" (buffer-string))) |
| 3165 | (tramp-send-string vec "y")))) | 3173 | (tramp-send-string vec (concat "y" tramp-local-end-of-line))))) |
| 3166 | 3174 | ||
| 3167 | (defun tramp-action-terminal (proc vec) | 3175 | (defun tramp-action-terminal (proc vec) |
| 3168 | "Tell the remote host which terminal type to use. | 3176 | "Tell the remote host which terminal type to use. |
| @@ -3170,7 +3178,7 @@ The terminal type can be configured with `tramp-terminal-type'." | |||
| 3170 | (tramp-message vec 5 "Setting `%s' as terminal type." tramp-terminal-type) | 3178 | (tramp-message vec 5 "Setting `%s' as terminal type." tramp-terminal-type) |
| 3171 | (with-current-buffer (tramp-get-connection-buffer vec) | 3179 | (with-current-buffer (tramp-get-connection-buffer vec) |
| 3172 | (tramp-message vec 6 "\n%s" (buffer-string))) | 3180 | (tramp-message vec 6 "\n%s" (buffer-string))) |
| 3173 | (tramp-send-string vec tramp-terminal-type)) | 3181 | (tramp-send-string vec (concat tramp-terminal-type tramp-local-end-of-line))) |
| 3174 | 3182 | ||
| 3175 | (defun tramp-action-process-alive (proc vec) | 3183 | (defun tramp-action-process-alive (proc vec) |
| 3176 | "Check, whether a process has finished." | 3184 | "Check, whether a process has finished." |
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index 76b9f304164..509bb203f78 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el | |||
| @@ -4382,11 +4382,8 @@ Optional prefix ARG means justify paragraph as well." | |||
| 4382 | (let ((fill-paragraph-function | 4382 | (let ((fill-paragraph-function |
| 4383 | ;; Avoid infinite recursion. | 4383 | ;; Avoid infinite recursion. |
| 4384 | (if (not (eq fill-paragraph-function 'c-fill-paragraph)) | 4384 | (if (not (eq fill-paragraph-function 'c-fill-paragraph)) |
| 4385 | fill-paragraph-function)) | 4385 | fill-paragraph-function))) |
| 4386 | (start-point (point-marker))) | 4386 | (c-mask-paragraph t nil 'fill-paragraph arg)) |
| 4387 | (c-mask-paragraph | ||
| 4388 | t nil (lambda () (fill-region-as-paragraph (point-min) (point-max) arg))) | ||
| 4389 | (goto-char start-point)) | ||
| 4390 | ;; Always return t. This has the effect that if filling isn't done | 4387 | ;; Always return t. This has the effect that if filling isn't done |
| 4391 | ;; above, it isn't done at all, and it's therefore effectively | 4388 | ;; above, it isn't done at all, and it's therefore effectively |
| 4392 | ;; disabled in normal code. | 4389 | ;; disabled in normal code. |
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 2e0294341da..25344fe96a7 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -2074,7 +2074,7 @@ comment at the start of cc-engine.el for more info." | |||
| 2074 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 2074 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 2075 | ;; We maintain a simple cache of positions which aren't in a literal, so as to | 2075 | ;; We maintain a simple cache of positions which aren't in a literal, so as to |
| 2076 | ;; speed up testing for non-literality. | 2076 | ;; speed up testing for non-literality. |
| 2077 | (defconst c-state-nonlit-pos-interval 10000) | 2077 | (defconst c-state-nonlit-pos-interval 3000) |
| 2078 | ;; The approximate interval between entries in `c-state-nonlit-pos-cache'. | 2078 | ;; The approximate interval between entries in `c-state-nonlit-pos-cache'. |
| 2079 | 2079 | ||
| 2080 | (defvar c-state-nonlit-pos-cache nil) | 2080 | (defvar c-state-nonlit-pos-cache nil) |
| @@ -2129,7 +2129,7 @@ comment at the start of cc-engine.el for more info." | |||
| 2129 | (widen) | 2129 | (widen) |
| 2130 | (save-excursion | 2130 | (save-excursion |
| 2131 | (let ((c c-state-nonlit-pos-cache) | 2131 | (let ((c c-state-nonlit-pos-cache) |
| 2132 | pos npos lit) | 2132 | pos npos lit macro-beg) |
| 2133 | ;; Trim the cache to take account of buffer changes. | 2133 | ;; Trim the cache to take account of buffer changes. |
| 2134 | (while (and c (> (car c) c-state-nonlit-pos-cache-limit)) | 2134 | (while (and c (> (car c) c-state-nonlit-pos-cache-limit)) |
| 2135 | (setq c (cdr c))) | 2135 | (setq c (cdr c))) |
| @@ -2139,16 +2139,32 @@ comment at the start of cc-engine.el for more info." | |||
| 2139 | (setq c (cdr c))) | 2139 | (setq c (cdr c))) |
| 2140 | (setq pos (or (car c) (point-min))) | 2140 | (setq pos (or (car c) (point-min))) |
| 2141 | 2141 | ||
| 2142 | (while (<= (setq npos (+ pos c-state-nonlit-pos-interval)) | 2142 | (while |
| 2143 | here) | 2143 | ;; Add an element to `c-state-nonlit-pos-cache' each iteration. |
| 2144 | (setq lit (car (cddr (c-state-pp-to-literal pos npos)))) | 2144 | (and |
| 2145 | (setq pos (or (cdr lit) npos)) ; end of literal containing npos. | 2145 | (<= (setq npos (+ pos c-state-nonlit-pos-interval)) here) |
| 2146 | (progn | ||
| 2147 | (setq lit (car (cddr (c-state-pp-to-literal pos npos)))) | ||
| 2148 | (cond | ||
| 2149 | ((null lit) | ||
| 2150 | (setq pos npos) | ||
| 2151 | t) | ||
| 2152 | ((<= (cdr lit) here) | ||
| 2153 | (setq pos (cdr lit)) | ||
| 2154 | t) | ||
| 2155 | (t | ||
| 2156 | (setq pos (car lit)) | ||
| 2157 | nil)))) | ||
| 2158 | |||
| 2146 | (goto-char pos) | 2159 | (goto-char pos) |
| 2147 | (when (and (c-beginning-of-macro) (/= (point) pos)) | 2160 | (when (and (c-beginning-of-macro) (/= (point) pos)) |
| 2148 | (c-syntactic-end-of-macro) | 2161 | (setq macro-beg (point)) |
| 2149 | (or (eobp) (forward-char)) | 2162 | (c-syntactic-end-of-macro) |
| 2150 | (setq pos (point))) | 2163 | (or (eobp) (forward-char)) |
| 2151 | (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache))) | 2164 | (setq pos (if (<= (point) here) |
| 2165 | (point) | ||
| 2166 | macro-beg))) | ||
| 2167 | (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache))) | ||
| 2152 | 2168 | ||
| 2153 | (if (> pos c-state-nonlit-pos-cache-limit) | 2169 | (if (> pos c-state-nonlit-pos-cache-limit) |
| 2154 | (setq c-state-nonlit-pos-cache-limit pos)) | 2170 | (setq c-state-nonlit-pos-cache-limit pos)) |
| @@ -4351,6 +4367,78 @@ comment at the start of cc-engine.el for more info." | |||
| 4351 | (t 'c))) ; Assuming the range is valid. | 4367 | (t 'c))) ; Assuming the range is valid. |
| 4352 | range)) | 4368 | range)) |
| 4353 | 4369 | ||
| 4370 | (defsubst c-determine-limit-get-base (start try-size) | ||
| 4371 | ;; Get a "safe place" approximately TRY-SIZE characters before START. | ||
| 4372 | ;; This doesn't preserve point. | ||
| 4373 | (let* ((pos (max (- start try-size) (point-min))) | ||
| 4374 | (base (c-state-safe-place pos)) | ||
| 4375 | (s (parse-partial-sexp base pos))) | ||
| 4376 | (if (or (nth 4 s) (nth 3 s)) ; comment or string | ||
| 4377 | (nth 8 s) | ||
| 4378 | (point)))) | ||
| 4379 | |||
| 4380 | (defun c-determine-limit (how-far-back &optional start try-size) | ||
| 4381 | ;; Return a buffer position HOW-FAR-BACK non-literal characters from START | ||
| 4382 | ;; (default point). This is done by going back further in the buffer then | ||
| 4383 | ;; searching forward for literals. The position found won't be in a | ||
| 4384 | ;; literal. We start searching for the sought position TRY-SIZE (default | ||
| 4385 | ;; twice HOW-FAR-BACK) bytes back from START. This function must be fast. | ||
| 4386 | ;; :-) | ||
| 4387 | (save-excursion | ||
| 4388 | (let* ((start (or start (point))) | ||
| 4389 | (try-size (or try-size (* 2 how-far-back))) | ||
| 4390 | (base (c-determine-limit-get-base start try-size)) | ||
| 4391 | (pos base) | ||
| 4392 | |||
| 4393 | (s (parse-partial-sexp pos pos)) ; null state. | ||
| 4394 | stack elt size | ||
| 4395 | (count 0)) | ||
| 4396 | (while (< pos start) | ||
| 4397 | ;; Move forward one literal each time round this loop. | ||
| 4398 | ;; Move forward to the start of a comment or string. | ||
| 4399 | (setq s (parse-partial-sexp | ||
| 4400 | pos | ||
| 4401 | start | ||
| 4402 | nil ; target-depth | ||
| 4403 | nil ; stop-before | ||
| 4404 | s ; state | ||
| 4405 | 'syntax-table)) ; stop-comment | ||
| 4406 | |||
| 4407 | ;; Gather details of the non-literal-bit - starting pos and size. | ||
| 4408 | (setq size (- (if (or (nth 4 s) (nth 3 s)) | ||
| 4409 | (nth 8 s) | ||
| 4410 | (point)) | ||
| 4411 | pos)) | ||
| 4412 | (if (> size 0) | ||
| 4413 | (setq stack (cons (cons pos size) stack))) | ||
| 4414 | |||
| 4415 | ;; Move forward to the end of the comment/string. | ||
| 4416 | (if (or (nth 4 s) (nth 3 s)) | ||
| 4417 | (setq s (parse-partial-sexp | ||
| 4418 | (point) | ||
| 4419 | start | ||
| 4420 | nil ; target-depth | ||
| 4421 | nil ; stop-before | ||
| 4422 | s ; state | ||
| 4423 | 'syntax-table))) ; stop-comment | ||
| 4424 | (setq pos (point))) | ||
| 4425 | |||
| 4426 | ;; Now try and find enough non-literal characters recorded on the stack. | ||
| 4427 | ;; Go back one recorded literal each time round this loop. | ||
| 4428 | (while (and (< count how-far-back) | ||
| 4429 | stack) | ||
| 4430 | (setq elt (car stack) | ||
| 4431 | stack (cdr stack)) | ||
| 4432 | (setq count (+ count (cdr elt)))) | ||
| 4433 | |||
| 4434 | ;; Have we found enough yet? | ||
| 4435 | (cond | ||
| 4436 | ((>= count how-far-back) | ||
| 4437 | (+ (car elt) (- count how-far-back))) | ||
| 4438 | ((eq base (point-min)) | ||
| 4439 | (point-min)) | ||
| 4440 | (t | ||
| 4441 | (c-determine-limit (- how-far-back count) base try-size)))))) | ||
| 4354 | 4442 | ||
| 4355 | ;; `c-find-decl-spots' and accompanying stuff. | 4443 | ;; `c-find-decl-spots' and accompanying stuff. |
| 4356 | 4444 | ||
| @@ -4487,13 +4575,14 @@ comment at the start of cc-engine.el for more info." | |||
| 4487 | ;; Call CFD-FUN for each possible spot for a declaration, cast or | 4575 | ;; Call CFD-FUN for each possible spot for a declaration, cast or |
| 4488 | ;; label from the point to CFD-LIMIT. | 4576 | ;; label from the point to CFD-LIMIT. |
| 4489 | ;; | 4577 | ;; |
| 4490 | ;; CFD-FUN is called with point at the start of the spot. It's | 4578 | ;; CFD-FUN is called with point at the start of the spot. It's passed two |
| 4491 | ;; passed two arguments: The first is the end position of the token | 4579 | ;; arguments: The first is the end position of the token preceding the spot, |
| 4492 | ;; preceding the spot, or 0 for the implicit match at bob. The | 4580 | ;; or 0 for the implicit match at bob. The second is a flag that is t when |
| 4493 | ;; second is a flag that is t when the match is inside a macro. If | 4581 | ;; the match is inside a macro. Point should be moved forward by at least |
| 4494 | ;; CFD-FUN adds `c-decl-end' properties somewhere below the current | 4582 | ;; one token. |
| 4495 | ;; spot, it should return non-nil to ensure that the next search | 4583 | ;; |
| 4496 | ;; will find them. | 4584 | ;; If CFD-FUN adds `c-decl-end' properties somewhere below the current spot, |
| 4585 | ;; it should return non-nil to ensure that the next search will find them. | ||
| 4497 | ;; | 4586 | ;; |
| 4498 | ;; Such a spot is: | 4587 | ;; Such a spot is: |
| 4499 | ;; o The first token after bob. | 4588 | ;; o The first token after bob. |
| @@ -4867,7 +4956,8 @@ comment at the start of cc-engine.el for more info." | |||
| 4867 | (goto-char cfd-continue-pos) | 4956 | (goto-char cfd-continue-pos) |
| 4868 | (if (= cfd-continue-pos cfd-limit) | 4957 | (if (= cfd-continue-pos cfd-limit) |
| 4869 | (setq cfd-match-pos cfd-limit) | 4958 | (setq cfd-match-pos cfd-limit) |
| 4870 | (c-find-decl-prefix-search))))) | 4959 | (c-find-decl-prefix-search))))) ; Moves point, sets cfd-continue-pos, |
| 4960 | ; cfd-match-pos, etc. | ||
| 4871 | 4961 | ||
| 4872 | 4962 | ||
| 4873 | ;; A cache for found types. | 4963 | ;; A cache for found types. |
| @@ -8047,6 +8137,23 @@ comment at the start of cc-engine.el for more info." | |||
| 8047 | next-open-brace (c-pull-open-brace paren-state))) | 8137 | next-open-brace (c-pull-open-brace paren-state))) |
| 8048 | open-brace)) | 8138 | open-brace)) |
| 8049 | 8139 | ||
| 8140 | (defun c-cheap-inside-bracelist-p (paren-state) | ||
| 8141 | ;; Return the position of the L-brace if point is inside a brace list | ||
| 8142 | ;; initialization of an array, etc. This is an approximate function, | ||
| 8143 | ;; designed for speed over accuracy. It will not find every bracelist, but | ||
| 8144 | ;; a non-nil result is reliable. We simply search for "= {" (naturally with | ||
| 8145 | ;; syntactic whitespace allowed). PAREN-STATE is the normal thing that it | ||
| 8146 | ;; is everywhere else. | ||
| 8147 | (let (b-pos) | ||
| 8148 | (save-excursion | ||
| 8149 | (while | ||
| 8150 | (and (setq b-pos (c-pull-open-brace paren-state)) | ||
| 8151 | (progn (goto-char b-pos) | ||
| 8152 | (c-backward-sws) | ||
| 8153 | (c-backward-token-2) | ||
| 8154 | (not (looking-at "="))))) | ||
| 8155 | b-pos))) | ||
| 8156 | |||
| 8050 | (defun c-inside-bracelist-p (containing-sexp paren-state) | 8157 | (defun c-inside-bracelist-p (containing-sexp paren-state) |
| 8051 | ;; return the buffer position of the beginning of the brace list | 8158 | ;; return the buffer position of the beginning of the brace list |
| 8052 | ;; statement if we're inside a brace list, otherwise return nil. | 8159 | ;; statement if we're inside a brace list, otherwise return nil. |
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index e7d00815708..2d116e1ecdc 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el | |||
| @@ -446,10 +446,12 @@ | |||
| 446 | ;; `parse-sexp-lookup-properties' (when it exists). | 446 | ;; `parse-sexp-lookup-properties' (when it exists). |
| 447 | (parse-sexp-lookup-properties | 447 | (parse-sexp-lookup-properties |
| 448 | (cc-eval-when-compile | 448 | (cc-eval-when-compile |
| 449 | (boundp 'parse-sexp-lookup-properties)))) | 449 | (boundp 'parse-sexp-lookup-properties))) |
| 450 | (BOD-limit | ||
| 451 | (c-determine-limit 1000))) | ||
| 450 | (goto-char | 452 | (goto-char |
| 451 | (let ((here (point))) | 453 | (let ((here (point))) |
| 452 | (if (eq (car (c-beginning-of-decl-1)) 'same) | 454 | (if (eq (car (c-beginning-of-decl-1 BOD-limit)) 'same) |
| 453 | (point) | 455 | (point) |
| 454 | here))) | 456 | here))) |
| 455 | ,(c-make-font-lock-search-form regexp highlights)) | 457 | ,(c-make-font-lock-search-form regexp highlights)) |
| @@ -1240,6 +1242,7 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1240 | ;; it finds any. That's necessary so that we later will | 1242 | ;; it finds any. That's necessary so that we later will |
| 1241 | ;; stop inside them to fontify types there. | 1243 | ;; stop inside them to fontify types there. |
| 1242 | (c-parse-and-markup-<>-arglists t) | 1244 | (c-parse-and-markup-<>-arglists t) |
| 1245 | lbrace ; position of some {. | ||
| 1243 | ;; The font-lock package in Emacs is known to clobber | 1246 | ;; The font-lock package in Emacs is known to clobber |
| 1244 | ;; `parse-sexp-lookup-properties' (when it exists). | 1247 | ;; `parse-sexp-lookup-properties' (when it exists). |
| 1245 | (parse-sexp-lookup-properties | 1248 | (parse-sexp-lookup-properties |
| @@ -1351,7 +1354,6 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1351 | (or (looking-at c-typedef-key) | 1354 | (or (looking-at c-typedef-key) |
| 1352 | (goto-char start-pos))) | 1355 | (goto-char start-pos))) |
| 1353 | 1356 | ||
| 1354 | ;; Now analyze the construct. | ||
| 1355 | ;; In QT, "more" is an irritating keyword that expands to nothing. | 1357 | ;; In QT, "more" is an irritating keyword that expands to nothing. |
| 1356 | ;; We skip over it to prevent recognition of "more slots: <symbol>" | 1358 | ;; We skip over it to prevent recognition of "more slots: <symbol>" |
| 1357 | ;; as a bitfield declaration. | 1359 | ;; as a bitfield declaration. |
| @@ -1360,6 +1362,8 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1360 | (concat "\\(more\\)\\([^" c-symbol-chars "]\\|$\\)"))) | 1362 | (concat "\\(more\\)\\([^" c-symbol-chars "]\\|$\\)"))) |
| 1361 | (goto-char (match-end 1)) | 1363 | (goto-char (match-end 1)) |
| 1362 | (c-forward-syntactic-ws)) | 1364 | (c-forward-syntactic-ws)) |
| 1365 | |||
| 1366 | ;; Now analyze the construct. | ||
| 1363 | (setq decl-or-cast (c-forward-decl-or-cast-1 | 1367 | (setq decl-or-cast (c-forward-decl-or-cast-1 |
| 1364 | match-pos context last-cast-end)) | 1368 | match-pos context last-cast-end)) |
| 1365 | 1369 | ||
| @@ -1428,6 +1432,39 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1428 | (c-fontify-recorded-types-and-refs) | 1432 | (c-fontify-recorded-types-and-refs) |
| 1429 | nil) | 1433 | nil) |
| 1430 | 1434 | ||
| 1435 | ;; Restore point, since at this point in the code it has been | ||
| 1436 | ;; left undefined by c-forward-decl-or-cast-1 above. | ||
| 1437 | ((progn (goto-char start-pos) nil)) | ||
| 1438 | |||
| 1439 | ;; If point is inside a bracelist, there's no point checking it | ||
| 1440 | ;; being at a declarator. | ||
| 1441 | ((let ((paren-state (c-parse-state))) | ||
| 1442 | (setq lbrace (c-cheap-inside-bracelist-p paren-state))) | ||
| 1443 | ;; Move past this bracelist to prevent an endless loop. | ||
| 1444 | (goto-char lbrace) | ||
| 1445 | (unless (c-safe (progn (forward-list) t)) | ||
| 1446 | (goto-char start-pos) | ||
| 1447 | (c-forward-token-2)) | ||
| 1448 | nil) | ||
| 1449 | |||
| 1450 | ;; If point is just after a ")" which is followed by an | ||
| 1451 | ;; identifier which isn't a label, or at the matching "(", we're | ||
| 1452 | ;; at either a macro invocation, a cast, or a | ||
| 1453 | ;; for/while/etc. statement. The cast case is handled above. | ||
| 1454 | ;; None of these cases can contain a declarator. | ||
| 1455 | ((or (and (eq (char-before match-pos) ?\)) | ||
| 1456 | (c-on-identifier) | ||
| 1457 | (save-excursion (not (c-forward-label)))) | ||
| 1458 | (and (eq (char-after) ?\() | ||
| 1459 | (save-excursion | ||
| 1460 | (and | ||
| 1461 | (progn (c-backward-token-2) (c-on-identifier)) | ||
| 1462 | (save-excursion (not (c-forward-label))) | ||
| 1463 | (progn (c-backward-token-2) | ||
| 1464 | (eq (char-after) ?\()))))) | ||
| 1465 | (c-forward-token-2) ; Must prevent looping. | ||
| 1466 | nil) | ||
| 1467 | |||
| 1431 | ((and (not c-enums-contain-decls) | 1468 | ((and (not c-enums-contain-decls) |
| 1432 | ;; An optimization quickly to eliminate scans of long enum | 1469 | ;; An optimization quickly to eliminate scans of long enum |
| 1433 | ;; declarations in the next cond arm. | 1470 | ;; declarations in the next cond arm. |
| @@ -1441,13 +1478,14 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1441 | (progn | 1478 | (progn |
| 1442 | (c-backward-token-2) | 1479 | (c-backward-token-2) |
| 1443 | (looking-at c-brace-list-key))))))) | 1480 | (looking-at c-brace-list-key))))))) |
| 1444 | t) | 1481 | (c-forward-token-2) |
| 1482 | nil) | ||
| 1445 | 1483 | ||
| 1446 | (t | 1484 | (t |
| 1447 | ;; Are we at a declarator? Try to go back to the declaration | 1485 | ;; Are we at a declarator? Try to go back to the declaration |
| 1448 | ;; to check this. If we get there, check whether a "typedef" | 1486 | ;; to check this. If we get there, check whether a "typedef" |
| 1449 | ;; is there, then fontify the declarators accordingly. | 1487 | ;; is there, then fontify the declarators accordingly. |
| 1450 | (let ((decl-search-lim (max (- (point) 50000) (point-min))) | 1488 | (let ((decl-search-lim (c-determine-limit 1000)) |
| 1451 | paren-state bod-res encl-pos is-typedef | 1489 | paren-state bod-res encl-pos is-typedef |
| 1452 | c-recognize-knr-p) ; Strictly speaking, bogus, but it | 1490 | c-recognize-knr-p) ; Strictly speaking, bogus, but it |
| 1453 | ; speeds up lisp.h tremendously. | 1491 | ; speeds up lisp.h tremendously. |
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index b74d878516d..0c86b68f1d9 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el | |||
| @@ -490,6 +490,7 @@ that requires a literal mode spec at compile time." | |||
| 490 | (make-local-variable 'paragraph-ignore-fill-prefix) | 490 | (make-local-variable 'paragraph-ignore-fill-prefix) |
| 491 | (make-local-variable 'adaptive-fill-mode) | 491 | (make-local-variable 'adaptive-fill-mode) |
| 492 | (make-local-variable 'adaptive-fill-regexp) | 492 | (make-local-variable 'adaptive-fill-regexp) |
| 493 | (make-local-variable 'fill-paragraph-handle-comment) | ||
| 493 | 494 | ||
| 494 | ;; now set their values | 495 | ;; now set their values |
| 495 | (set (make-local-variable 'parse-sexp-ignore-comments) t) | 496 | (set (make-local-variable 'parse-sexp-ignore-comments) t) |
| @@ -500,6 +501,9 @@ that requires a literal mode spec at compile time." | |||
| 500 | (set (make-local-variable 'comment-line-break-function) | 501 | (set (make-local-variable 'comment-line-break-function) |
| 501 | 'c-indent-new-comment-line) | 502 | 'c-indent-new-comment-line) |
| 502 | 503 | ||
| 504 | ;; For the benefit of adaptive file, which otherwise mis-fills. | ||
| 505 | (setq fill-paragraph-handle-comment nil) | ||
| 506 | |||
| 503 | ;; Install `c-fill-paragraph' on `fill-paragraph-function' so that a | 507 | ;; Install `c-fill-paragraph' on `fill-paragraph-function' so that a |
| 504 | ;; direct call to `fill-paragraph' behaves better. This still | 508 | ;; direct call to `fill-paragraph' behaves better. This still |
| 505 | ;; doesn't work with filladapt but it's better than nothing. | 509 | ;; doesn't work with filladapt but it's better than nothing. |
diff --git a/lisp/subr.el b/lisp/subr.el index 14f9192405c..c9e213c86a0 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -1857,12 +1857,30 @@ FILE should be the name of a library, with no directory name." | |||
| 1857 | 1857 | ||
| 1858 | (defun display-delayed-warnings () | 1858 | (defun display-delayed-warnings () |
| 1859 | "Display delayed warnings from `delayed-warnings-list'. | 1859 | "Display delayed warnings from `delayed-warnings-list'. |
| 1860 | This is the default value of `delayed-warnings-hook'." | 1860 | Used from `delayed-warnings-hook' (which see)." |
| 1861 | (dolist (warning (nreverse delayed-warnings-list)) | 1861 | (dolist (warning (nreverse delayed-warnings-list)) |
| 1862 | (apply 'display-warning warning)) | 1862 | (apply 'display-warning warning)) |
| 1863 | (setq delayed-warnings-list nil)) | 1863 | (setq delayed-warnings-list nil)) |
| 1864 | 1864 | ||
| 1865 | (defvar delayed-warnings-hook '(display-delayed-warnings) | 1865 | (defun collapse-delayed-warnings () |
| 1866 | "Remove duplicates from `delayed-warnings-list'. | ||
| 1867 | Collapse identical adjacent warnings into one (plus count). | ||
| 1868 | Used from `delayed-warnings-hook' (which see)." | ||
| 1869 | (let ((count 1) | ||
| 1870 | collapsed warning) | ||
| 1871 | (while delayed-warnings-list | ||
| 1872 | (setq warning (pop delayed-warnings-list)) | ||
| 1873 | (if (equal warning (car delayed-warnings-list)) | ||
| 1874 | (setq count (1+ count)) | ||
| 1875 | (when (> count 1) | ||
| 1876 | (setcdr warning (cons (format "%s [%d times]" (cadr warning) count) | ||
| 1877 | (cddr warning))) | ||
| 1878 | (setq count 1)) | ||
| 1879 | (push warning collapsed))) | ||
| 1880 | (setq delayed-warnings-list (nreverse collapsed)))) | ||
| 1881 | |||
| 1882 | (defvar delayed-warnings-hook '(collapse-delayed-warnings | ||
| 1883 | display-delayed-warnings) | ||
| 1866 | "Normal hook run to process delayed warnings. | 1884 | "Normal hook run to process delayed warnings. |
| 1867 | Functions in this hook should access the `delayed-warnings-list' | 1885 | Functions in this hook should access the `delayed-warnings-list' |
| 1868 | variable (which see) and remove from it the warnings they process.") | 1886 | variable (which see) and remove from it the warnings they process.") |
diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el index 1066ebc7f81..9ba65cda143 100644 --- a/lisp/vc/pcvs.el +++ b/lisp/vc/pcvs.el | |||
| @@ -31,19 +31,19 @@ | |||
| 31 | 31 | ||
| 32 | ;;; Commentary: | 32 | ;;; Commentary: |
| 33 | 33 | ||
| 34 | ;; PCL-CVS is a front-end to the CVS version control system. For people | 34 | ;; PCL-CVS is a front-end to the CVS version control system. |
| 35 | ;; familiar with VC, it is somewhat like VC-dired: it presents the status of | 35 | ;; It presents the status of all the files in your working area and |
| 36 | ;; all the files in your working area and allows you to commit/update several | 36 | ;; allows you to commit/update several of them at a time. |
| 37 | ;; of them at a time. Compared to VC-dired, it is considerably better and | 37 | ;; Compare with the general Emacs utility vc-dir, which tries |
| 38 | ;; faster (but only for CVS). | 38 | ;; to be VCS-agnostic. You may find PCL-CVS better/faster for CVS. |
| 39 | 39 | ||
| 40 | ;; PCL-CVS was originally written by Per Cederqvist many years ago. This | 40 | ;; PCL-CVS was originally written by Per Cederqvist many years ago. This |
| 41 | ;; version derives from the XEmacs-21 version, itself based on the 2.0b2 | 41 | ;; version derives from the XEmacs-21 version, itself based on the 2.0b2 |
| 42 | ;; version (last release from Per). It is a thorough rework. | 42 | ;; version (last release from Per). It is a thorough rework. |
| 43 | 43 | ||
| 44 | ;; Contrary to what you'd expect, PCL-CVS is not a replacement for VC but only | 44 | ;; PCL-CVS is not a replacement for VC, but adds extra functionality. |
| 45 | ;; for VC-dired. As such, I've tried to make PCL-CVS and VC interoperate | 45 | ;; As such, I've tried to make PCL-CVS and VC interoperate seamlessly |
| 46 | ;; seamlessly (I also use VC). | 46 | ;; (I also use VC). |
| 47 | 47 | ||
| 48 | ;; To use PCL-CVS just use `M-x cvs-examine RET <dir> RET'. | 48 | ;; To use PCL-CVS just use `M-x cvs-examine RET <dir> RET'. |
| 49 | ;; There is a TeXinfo manual, which can be helpful to get started. | 49 | ;; There is a TeXinfo manual, which can be helpful to get started. |
diff --git a/lisp/vc/vc-dav.el b/lisp/vc/vc-dav.el index 6f9a6d6b7df..9d55e9c7b43 100644 --- a/lisp/vc/vc-dav.el +++ b/lisp/vc/vc-dav.el | |||
| @@ -170,10 +170,7 @@ It should return a status of either 0 (no differences found), or | |||
| 170 | ;; Return a dav-specific mode line string for URL. Are there any | 170 | ;; Return a dav-specific mode line string for URL. Are there any |
| 171 | ;; specific states that we want exposed? | 171 | ;; specific states that we want exposed? |
| 172 | ;; | 172 | ;; |
| 173 | ;; vc-dav-dired-state-info(url) | 173 | ;; vc-dir support |
| 174 | ;; Translate the `vc-state' property of URL into a string that can | ||
| 175 | ;; be used in a vc-dired buffer. Are there any extra states that | ||
| 176 | ;; we want exposed? | ||
| 177 | ;; | 174 | ;; |
| 178 | ;; vc-dav-receive-file(url rev) | 175 | ;; vc-dav-receive-file(url rev) |
| 179 | ;; Let this backend `receive' a file that is already registered | 176 | ;; Let this backend `receive' a file that is already registered |
diff --git a/lisp/windmove.el b/lisp/windmove.el index 10a564419fb..0523530869b 100644 --- a/lisp/windmove.el +++ b/lisp/windmove.el | |||
| @@ -417,17 +417,17 @@ supplied, if ARG is greater or smaller than zero, respectively." | |||
| 417 | (- (nth 3 edges) 1)))) | 417 | (- (nth 3 edges) 1)))) |
| 418 | (cond | 418 | (cond |
| 419 | ((> effective-arg 0) | 419 | ((> effective-arg 0) |
| 420 | top-left) | 420 | top-left) |
| 421 | ((< effective-arg 0) | 421 | ((< effective-arg 0) |
| 422 | bottom-right) | 422 | bottom-right) |
| 423 | ((= effective-arg 0) | 423 | ((= effective-arg 0) |
| 424 | (windmove-coord-add | 424 | (windmove-coord-add |
| 425 | top-left | 425 | top-left |
| 426 | (let ((col-row | 426 | ;; Don't care whether window is horizontally scrolled - |
| 427 | (posn-col-row | 427 | ;; `posn-at-point' handles that already. See also: |
| 428 | (posn-at-point (window-point window) window)))) | 428 | ;; http://lists.gnu.org/archive/html/emacs-devel/2012-01/msg00638.html |
| 429 | (cons (- (car col-row) (window-hscroll window)) | 429 | (posn-col-row |
| 430 | (cdr col-row))))))))) | 430 | (posn-at-point (window-point window) window)))))))) |
| 431 | 431 | ||
| 432 | ;; This uses the reference location in the current window (calculated | 432 | ;; This uses the reference location in the current window (calculated |
| 433 | ;; by `windmove-reference-loc' above) to find a reference location | 433 | ;; by `windmove-reference-loc' above) to find a reference location |
diff --git a/lisp/window.el b/lisp/window.el index 54e5ec9c74c..9122904b0bb 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -3568,7 +3568,7 @@ specific buffers." | |||
| 3568 | )) | 3568 | )) |
| 3569 | 3569 | ||
| 3570 | ;;; Window states, how to get them and how to put them in a window. | 3570 | ;;; Window states, how to get them and how to put them in a window. |
| 3571 | (defun window--state-get-1 (window &optional ignore) | 3571 | (defun window--state-get-1 (window &optional writable) |
| 3572 | "Helper function for `window-state-get'." | 3572 | "Helper function for `window-state-get'." |
| 3573 | (let* ((type | 3573 | (let* ((type |
| 3574 | (cond | 3574 | (cond |
| @@ -3585,29 +3585,22 @@ specific buffers." | |||
| 3585 | (normal-height . ,(window-normal-size window)) | 3585 | (normal-height . ,(window-normal-size window)) |
| 3586 | (normal-width . ,(window-normal-size window t)) | 3586 | (normal-width . ,(window-normal-size window t)) |
| 3587 | (combination-limit . ,(window-combination-limit window)) | 3587 | (combination-limit . ,(window-combination-limit window)) |
| 3588 | ,@(let (list) | 3588 | ,@(let ((parameters (window-parameters window)) |
| 3589 | ;; Make copies of persistent window parameters whose cdr | 3589 | list) |
| 3590 | ;; is either t or, when IGNORE is non-nil, is either nil | 3590 | ;; Make copies of those window parameters whose |
| 3591 | ;; or `state'. | 3591 | ;; persistence property is `writable' if WRITABLE is |
| 3592 | (dolist (pers window-persistent-parameters) | 3592 | ;; non-nil and non-nil if WRITABLE is nil. |
| 3593 | (when (and (consp pers) | 3593 | (dolist (par parameters) |
| 3594 | (or (eq (cdr pers) t) | 3594 | (let ((pers (cdr (assq (car par) |
| 3595 | (and (memq (cdr pers) '(state nil)) | 3595 | window-persistent-parameters)))) |
| 3596 | (not ignore)))) | 3596 | (when (and pers (or (not writable) (eq pers 'writable))) |
| 3597 | (let ((par (assq (car pers) (window-parameters window)))) | 3597 | (setq list (cons (cons (car par) (cdr par)) list))))) |
| 3598 | (setq list (cons (cons (car pers) (when par (cdr par))) | 3598 | ;; Add `clone-of' parameter if necessary. |
| 3599 | list))))) | 3599 | (let ((pers (cdr (assq 'clone-of |
| 3600 | ;; Save `clone-of' parameter unless IGNORE or | 3600 | window-persistent-parameters)))) |
| 3601 | ;; `window-persistent-parameters' prevail. | 3601 | (when (and pers (or (not writable) (eq pers 'writable)) |
| 3602 | (when (and (not (assq 'clone-of (window-parameters window))) | 3602 | (not (assq 'clone-of list))) |
| 3603 | (let ((clone-of | 3603 | (setq list (cons (cons 'clone-of window) list)))) |
| 3604 | (assq 'clone-of | ||
| 3605 | window-persistent-parameters))) | ||
| 3606 | (when clone-of | ||
| 3607 | (if ignore | ||
| 3608 | (eq (cdr clone-of) t) | ||
| 3609 | (memq (cdr clone-of) '(state nil)))))) | ||
| 3610 | (setq list (cons (cons 'clone-of window) list))) | ||
| 3611 | (when list | 3604 | (when list |
| 3612 | `((parameters . ,list)))) | 3605 | `((parameters . ,list)))) |
| 3613 | ,@(when buffer | 3606 | ,@(when buffer |
| @@ -3628,31 +3621,34 @@ specific buffers." | |||
| 3628 | (scroll-bars . ,(window-scroll-bars window)) | 3621 | (scroll-bars . ,(window-scroll-bars window)) |
| 3629 | (vscroll . ,(window-vscroll window)) | 3622 | (vscroll . ,(window-vscroll window)) |
| 3630 | (dedicated . ,(window-dedicated-p window)) | 3623 | (dedicated . ,(window-dedicated-p window)) |
| 3631 | (point . ,(if ignore point (copy-marker point))) | 3624 | (point . ,(if writable point (copy-marker point))) |
| 3632 | (start . ,(if ignore start (copy-marker start))) | 3625 | (start . ,(if writable start (copy-marker start))) |
| 3633 | ,@(when mark | 3626 | ,@(when mark |
| 3634 | `((mark . ,(if ignore | 3627 | `((mark . ,(if writable |
| 3635 | mark (copy-marker mark)))))))))))) | 3628 | mark (copy-marker mark)))))))))))) |
| 3636 | (tail | 3629 | (tail |
| 3637 | (when (memq type '(vc hc)) | 3630 | (when (memq type '(vc hc)) |
| 3638 | (let (list) | 3631 | (let (list) |
| 3639 | (setq window (window-child window)) | 3632 | (setq window (window-child window)) |
| 3640 | (while window | 3633 | (while window |
| 3641 | (setq list (cons (window--state-get-1 window ignore) list)) | 3634 | (setq list (cons (window--state-get-1 window writable) list)) |
| 3642 | (setq window (window-right window))) | 3635 | (setq window (window-right window))) |
| 3643 | (nreverse list))))) | 3636 | (nreverse list))))) |
| 3644 | (append head tail))) | 3637 | (append head tail))) |
| 3645 | 3638 | ||
| 3646 | (defun window-state-get (&optional window ignore) | 3639 | (defun window-state-get (&optional window writable) |
| 3647 | "Return state of WINDOW as a Lisp object. | 3640 | "Return state of WINDOW as a Lisp object. |
| 3648 | WINDOW can be any window and defaults to the root window of the | 3641 | WINDOW can be any window and defaults to the root window of the |
| 3649 | selected frame. | 3642 | selected frame. |
| 3650 | 3643 | ||
| 3651 | Optional argument IGNORE non-nil means do not use markers for | 3644 | Optional argument WRITABLE non-nil means do not use markers for |
| 3652 | sampling positions like `window-point' or `window-start' and do | 3645 | sampling `window-point' and `window-start'. Together, WRITABLE |
| 3653 | not record parameters unless `window-persistent-parameters' | 3646 | and the variable `window-persistent-parameters' specify which |
| 3654 | requests it. IGNORE should be non-nil when the return value | 3647 | window parameters are saved by this function. WRITABLE should be |
| 3655 | shall be written to a file and read back in another session. | 3648 | non-nil when the return value shall be written to a file and read |
| 3649 | back in another session. Otherwise, an application may run into | ||
| 3650 | an `invalid-read-syntax' error while attempting to read back the | ||
| 3651 | value from file. | ||
| 3656 | 3652 | ||
| 3657 | The return value can be used as argument for `window-state-put' | 3653 | The return value can be used as argument for `window-state-put' |
| 3658 | to put the state recorded here into an arbitrary window. The | 3654 | to put the state recorded here into an arbitrary window. The |
| @@ -3678,7 +3674,7 @@ value can be also stored on disk and read back in a new session." | |||
| 3678 | ;; These are probably not needed. | 3674 | ;; These are probably not needed. |
| 3679 | ,@(when (window-size-fixed-p window) `((fixed-height . t))) | 3675 | ,@(when (window-size-fixed-p window) `((fixed-height . t))) |
| 3680 | ,@(when (window-size-fixed-p window t) `((fixed-width . t)))) | 3676 | ,@(when (window-size-fixed-p window t) `((fixed-width . t)))) |
| 3681 | (window--state-get-1 window ignore))) | 3677 | (window--state-get-1 window writable))) |
| 3682 | 3678 | ||
| 3683 | (defvar window-state-put-list nil | 3679 | (defvar window-state-put-list nil |
| 3684 | "Helper variable for `window-state-put'.") | 3680 | "Helper variable for `window-state-put'.") |
| @@ -3757,15 +3753,13 @@ value can be also stored on disk and read back in a new session." | |||
| 3757 | (state (cdr (assq 'buffer item)))) | 3753 | (state (cdr (assq 'buffer item)))) |
| 3758 | (when combination-limit | 3754 | (when combination-limit |
| 3759 | (set-window-combination-limit window combination-limit)) | 3755 | (set-window-combination-limit window combination-limit)) |
| 3760 | ;; Assign saved window parameters. If a parameter's value is nil, | 3756 | ;; Reset window's parameters and assign saved ones (we might want |
| 3761 | ;; don't assign it unless the new window has it set already (which | 3757 | ;; a `remove-window-parameters' function here). |
| 3762 | ;; shouldn't happen unless some `window-configuration-change-hook' | 3758 | (dolist (parameter (window-parameters window)) |
| 3763 | ;; function installed it). | 3759 | (set-window-parameter window (car parameter) nil)) |
| 3764 | (when parameters | 3760 | (when parameters |
| 3765 | (dolist (parameter parameters) | 3761 | (dolist (parameter parameters) |
| 3766 | (when (or (cdr parameter) | 3762 | (set-window-parameter window (car parameter) (cdr parameter)))) |
| 3767 | (window-parameter window (car parameter))) | ||
| 3768 | (set-window-parameter window (car parameter) (cdr parameter))))) | ||
| 3769 | ;; Process buffer related state. | 3763 | ;; Process buffer related state. |
| 3770 | (when state | 3764 | (when state |
| 3771 | ;; We don't want to raise an error here so we create a buffer if | 3765 | ;; We don't want to raise an error here so we create a buffer if |
diff --git a/src/ChangeLog b/src/ChangeLog index aa4e92b4134..c8b1e654830 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2012-01-21 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * floatfns.c (Fcopysign): Make the second argument non-optional, | ||
| 4 | since nil is not allowed anyway. | ||
| 5 | |||
| 6 | 2012-01-21 Andreas Schwab <schwab@linux-m68k.org> | ||
| 7 | |||
| 8 | * process.c (read_process_output): Use p instead of XPROCESS (proc). | ||
| 9 | (send_process): Likewise. | ||
| 10 | |||
| 11 | 2012-01-19 Martin Rudalics <rudalics@gmx.at> | ||
| 12 | |||
| 13 | * window.c (save_window_save, Fcurrent_window_configuration) | ||
| 14 | (Vwindow_persistent_parameters): Do not use Qstate. Rewrite | ||
| 15 | doc-strings. | ||
| 16 | |||
| 17 | 2012-01-19 Kenichi Handa <handa@m17n.org> | ||
| 18 | |||
| 19 | * character.c (char_width): New function. | ||
| 20 | (Fchar_width, c_string_width, lisp_string_width): | ||
| 21 | Use char_width (Bug#9496). | ||
| 22 | |||
| 1 | 2012-01-16 Martin Rudalics <rudalics@gmx.at> | 23 | 2012-01-16 Martin Rudalics <rudalics@gmx.at> |
| 2 | 24 | ||
| 3 | * window.c (Vwindow_persistent_parameters): New variable. | 25 | * window.c (Vwindow_persistent_parameters): New variable. |
diff --git a/src/character.c b/src/character.c index a2cb416d770..593fbcece0b 100644 --- a/src/character.c +++ b/src/character.c | |||
| @@ -308,6 +308,31 @@ If the multibyte character does not represent a byte, return -1. */) | |||
| 308 | } | 308 | } |
| 309 | } | 309 | } |
| 310 | 310 | ||
| 311 | |||
| 312 | /* Return width (columns) of C considering the buffer display table DP. */ | ||
| 313 | |||
| 314 | static int | ||
| 315 | char_width (int c, struct Lisp_Char_Table *dp) | ||
| 316 | { | ||
| 317 | int width = CHAR_WIDTH (c); | ||
| 318 | |||
| 319 | if (dp) | ||
| 320 | { | ||
| 321 | Lisp_Object disp = DISP_CHAR_VECTOR (dp, c), ch; | ||
| 322 | int i; | ||
| 323 | |||
| 324 | if (VECTORP (disp)) | ||
| 325 | for (i = 0, width = 0; i < ASIZE (disp); i++) | ||
| 326 | { | ||
| 327 | ch = AREF (disp, i); | ||
| 328 | if (CHARACTERP (ch)) | ||
| 329 | width += CHAR_WIDTH (XFASTINT (ch)); | ||
| 330 | } | ||
| 331 | } | ||
| 332 | return width; | ||
| 333 | } | ||
| 334 | |||
| 335 | |||
| 311 | DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0, | 336 | DEFUN ("char-width", Fchar_width, Schar_width, 1, 1, 0, |
| 312 | doc: /* Return width of CHAR when displayed in the current buffer. | 337 | doc: /* Return width of CHAR when displayed in the current buffer. |
| 313 | The width is measured by how many columns it occupies on the screen. | 338 | The width is measured by how many columns it occupies on the screen. |
| @@ -315,21 +340,11 @@ Tab is taken to occupy `tab-width' columns. | |||
| 315 | usage: (char-width CHAR) */) | 340 | usage: (char-width CHAR) */) |
| 316 | (Lisp_Object ch) | 341 | (Lisp_Object ch) |
| 317 | { | 342 | { |
| 318 | Lisp_Object disp; | ||
| 319 | int c, width; | 343 | int c, width; |
| 320 | struct Lisp_Char_Table *dp = buffer_display_table (); | ||
| 321 | 344 | ||
| 322 | CHECK_CHARACTER (ch); | 345 | CHECK_CHARACTER (ch); |
| 323 | c = XINT (ch); | 346 | c = XINT (ch); |
| 324 | 347 | width = char_width (c, buffer_display_table ()); | |
| 325 | /* Get the way the display table would display it. */ | ||
| 326 | disp = dp ? DISP_CHAR_VECTOR (dp, c) : Qnil; | ||
| 327 | |||
| 328 | if (VECTORP (disp)) | ||
| 329 | width = sanitize_char_width (ASIZE (disp)); | ||
| 330 | else | ||
| 331 | width = CHAR_WIDTH (c); | ||
| 332 | |||
| 333 | return make_number (width); | 348 | return make_number (width); |
| 334 | } | 349 | } |
| 335 | 350 | ||
| @@ -350,22 +365,9 @@ c_string_width (const unsigned char *str, EMACS_INT len, int precision, | |||
| 350 | 365 | ||
| 351 | while (i_byte < len) | 366 | while (i_byte < len) |
| 352 | { | 367 | { |
| 353 | int bytes, thiswidth; | 368 | int bytes; |
| 354 | Lisp_Object val; | ||
| 355 | int c = STRING_CHAR_AND_LENGTH (str + i_byte, bytes); | 369 | int c = STRING_CHAR_AND_LENGTH (str + i_byte, bytes); |
| 356 | 370 | int thiswidth = char_width (c, dp); | |
| 357 | if (dp) | ||
| 358 | { | ||
| 359 | val = DISP_CHAR_VECTOR (dp, c); | ||
| 360 | if (VECTORP (val)) | ||
| 361 | thiswidth = sanitize_char_width (ASIZE (val)); | ||
| 362 | else | ||
| 363 | thiswidth = CHAR_WIDTH (c); | ||
| 364 | } | ||
| 365 | else | ||
| 366 | { | ||
| 367 | thiswidth = CHAR_WIDTH (c); | ||
| 368 | } | ||
| 369 | 371 | ||
| 370 | if (precision > 0 | 372 | if (precision > 0 |
| 371 | && (width + thiswidth > precision)) | 373 | && (width + thiswidth > precision)) |
| @@ -447,18 +449,7 @@ lisp_string_width (Lisp_Object string, EMACS_INT precision, | |||
| 447 | else | 449 | else |
| 448 | c = str[i_byte], bytes = 1; | 450 | c = str[i_byte], bytes = 1; |
| 449 | chars = 1; | 451 | chars = 1; |
| 450 | if (dp) | 452 | thiswidth = char_width (c, dp); |
| 451 | { | ||
| 452 | val = DISP_CHAR_VECTOR (dp, c); | ||
| 453 | if (VECTORP (val)) | ||
| 454 | thiswidth = sanitize_char_width (ASIZE (val)); | ||
| 455 | else | ||
| 456 | thiswidth = CHAR_WIDTH (c); | ||
| 457 | } | ||
| 458 | else | ||
| 459 | { | ||
| 460 | thiswidth = CHAR_WIDTH (c); | ||
| 461 | } | ||
| 462 | } | 453 | } |
| 463 | 454 | ||
| 464 | if (precision <= 0) | 455 | if (precision <= 0) |
diff --git a/src/floatfns.c b/src/floatfns.c index c44784f2120..305c78cae63 100644 --- a/src/floatfns.c +++ b/src/floatfns.c | |||
| @@ -294,7 +294,7 @@ DEFUN ("isnan", Fisnan, Sisnan, 1, 1, 0, | |||
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | #ifdef HAVE_COPYSIGN | 296 | #ifdef HAVE_COPYSIGN |
| 297 | DEFUN ("copysign", Fcopysign, Scopysign, 1, 2, 0, | 297 | DEFUN ("copysign", Fcopysign, Scopysign, 2, 2, 0, |
| 298 | doc: /* Copy sign of X2 to value of X1, and return the result. | 298 | doc: /* Copy sign of X2 to value of X1, and return the result. |
| 299 | Cause an error if X1 or X2 is not a float. */) | 299 | Cause an error if X1 or X2 is not a float. */) |
| 300 | (Lisp_Object x1, Lisp_Object x2) | 300 | (Lisp_Object x1, Lisp_Object x2) |
diff --git a/src/process.c b/src/process.c index 3dc753f5159..bdf16b7dbd2 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -5060,9 +5060,8 @@ read_process_output (Lisp_Object proc, register int channel) | |||
| 5060 | proc_buffered_char[channel] = -1; | 5060 | proc_buffered_char[channel] = -1; |
| 5061 | } | 5061 | } |
| 5062 | #ifdef HAVE_GNUTLS | 5062 | #ifdef HAVE_GNUTLS |
| 5063 | if (XPROCESS (proc)->gnutls_p) | 5063 | if (p->gnutls_p) |
| 5064 | nbytes = emacs_gnutls_read (XPROCESS (proc), | 5064 | nbytes = emacs_gnutls_read (p, chars + carryover + buffered, |
| 5065 | chars + carryover + buffered, | ||
| 5066 | readmax - buffered); | 5065 | readmax - buffered); |
| 5067 | else | 5066 | else |
| 5068 | #endif | 5067 | #endif |
| @@ -5527,9 +5526,8 @@ send_process (volatile Lisp_Object proc, const char *volatile buf, | |||
| 5527 | #endif | 5526 | #endif |
| 5528 | { | 5527 | { |
| 5529 | #ifdef HAVE_GNUTLS | 5528 | #ifdef HAVE_GNUTLS |
| 5530 | if (XPROCESS (proc)->gnutls_p) | 5529 | if (p->gnutls_p) |
| 5531 | written = emacs_gnutls_write (XPROCESS (proc), | 5530 | written = emacs_gnutls_write (p, buf, this); |
| 5532 | buf, this); | ||
| 5533 | else | 5531 | else |
| 5534 | #endif | 5532 | #endif |
| 5535 | written = emacs_write (outfd, buf, this); | 5533 | written = emacs_write (outfd, buf, this); |
diff --git a/src/window.c b/src/window.c index 3ee731e60bf..a3b58d648a1 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -59,7 +59,7 @@ static Lisp_Object Qreplace_buffer_in_windows, Qget_mru_window; | |||
| 59 | static Lisp_Object Qwindow_resize_root_window, Qwindow_resize_root_window_vertically; | 59 | static Lisp_Object Qwindow_resize_root_window, Qwindow_resize_root_window_vertically; |
| 60 | static Lisp_Object Qscroll_up, Qscroll_down, Qscroll_command; | 60 | static Lisp_Object Qscroll_up, Qscroll_down, Qscroll_command; |
| 61 | static Lisp_Object Qsafe, Qabove, Qbelow; | 61 | static Lisp_Object Qsafe, Qabove, Qbelow; |
| 62 | static Lisp_Object Qauto_buffer_name, Qclone_of, Qstate; | 62 | static Lisp_Object Qauto_buffer_name, Qclone_of; |
| 63 | 63 | ||
| 64 | static int displayed_window_lines (struct window *); | 64 | static int displayed_window_lines (struct window *); |
| 65 | static struct window *decode_window (Lisp_Object); | 65 | static struct window *decode_window (Lisp_Object); |
| @@ -5894,9 +5894,8 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i) | |||
| 5894 | tem = XCDR (tem)) | 5894 | tem = XCDR (tem)) |
| 5895 | { | 5895 | { |
| 5896 | pers = XCAR (tem); | 5896 | pers = XCAR (tem); |
| 5897 | /* Save values for persistent window parameters whose cdr | 5897 | /* Save values for persistent window parameters. */ |
| 5898 | is either nil or t. */ | 5898 | if (CONSP (pers) && !NILP (XCDR (pers))) |
| 5899 | if (CONSP (pers) && (NILP (XCDR (pers)) || EQ (XCDR (pers), Qt))) | ||
| 5900 | { | 5899 | { |
| 5901 | par = Fassq (XCAR (pers), w->window_parameters); | 5900 | par = Fassq (XCAR (pers), w->window_parameters); |
| 5902 | if (NILP (par)) | 5901 | if (NILP (par)) |
| @@ -5971,7 +5970,9 @@ and for each displayed buffer, where display starts, and the positions of | |||
| 5971 | point and mark. An exception is made for point in the current buffer: | 5970 | point and mark. An exception is made for point in the current buffer: |
| 5972 | its value is -not- saved. | 5971 | its value is -not- saved. |
| 5973 | This also records the currently selected frame, and FRAME's focus | 5972 | This also records the currently selected frame, and FRAME's focus |
| 5974 | redirection (see `redirect-frame-focus'). */) | 5973 | redirection (see `redirect-frame-focus'). The variable |
| 5974 | `window-persistent-parameters' specifies which window parameters are | ||
| 5975 | saved by this function. */) | ||
| 5975 | (Lisp_Object frame) | 5976 | (Lisp_Object frame) |
| 5976 | { | 5977 | { |
| 5977 | register Lisp_Object tem; | 5978 | register Lisp_Object tem; |
| @@ -6509,7 +6510,6 @@ syms_of_window (void) | |||
| 6509 | DEFSYM (Qbelow, "below"); | 6510 | DEFSYM (Qbelow, "below"); |
| 6510 | DEFSYM (Qauto_buffer_name, "auto-buffer-name"); | 6511 | DEFSYM (Qauto_buffer_name, "auto-buffer-name"); |
| 6511 | DEFSYM (Qclone_of, "clone-of"); | 6512 | DEFSYM (Qclone_of, "clone-of"); |
| 6512 | DEFSYM (Qstate, "state"); | ||
| 6513 | 6513 | ||
| 6514 | staticpro (&Vwindow_list); | 6514 | staticpro (&Vwindow_list); |
| 6515 | 6515 | ||
| @@ -6621,28 +6621,28 @@ function `set-window-combination-limit'. */); | |||
| 6621 | 6621 | ||
| 6622 | DEFVAR_LISP ("window-persistent-parameters", Vwindow_persistent_parameters, | 6622 | DEFVAR_LISP ("window-persistent-parameters", Vwindow_persistent_parameters, |
| 6623 | doc: /* Alist of persistent window parameters. | 6623 | doc: /* Alist of persistent window parameters. |
| 6624 | Parameters in this list are saved by `current-window-configuration' and | 6624 | This alist specifies which window parameters shall get saved by |
| 6625 | `window-state-get' and subsequently restored to their previous values by | 6625 | `current-window-configuration' and `window-state-get' and subsequently |
| 6626 | `set-window-configuration' and `window-state-put'. | 6626 | restored to their previous values by `set-window-configuration' and |
| 6627 | `window-state-put'. | ||
| 6627 | 6628 | ||
| 6628 | The car of each entry of this alist is the symbol specifying the | 6629 | The car of each entry of this alist is the symbol specifying the |
| 6629 | parameter. The cdr is one of the following: | 6630 | parameter. The cdr is one of the following: |
| 6630 | 6631 | ||
| 6631 | The symbol `state' means the parameter is saved by `window-state-get' | 6632 | nil means the parameter is neither saved by `window-state-get' nor by |
| 6632 | provided its IGNORE argument is nil. `current-window-configuration' | 6633 | `current-window-configuration'. |
| 6633 | does not save this parameter. | ||
| 6634 | 6634 | ||
| 6635 | nil means the parameter is saved by `current-window-configuration' and, | 6635 | t means the parameter is saved by `current-window-configuration' and, |
| 6636 | provided its IGNORE argument is nil, by `window-state-get'. | 6636 | provided its WRITABLE argument is nil, by `window-state-get'. |
| 6637 | 6637 | ||
| 6638 | t means the parameter is saved unconditionally by both | 6638 | The symbol `writable' means the parameter is saved unconditionally by |
| 6639 | `current-window-configuration' and `window-state-get'. Parameters | 6639 | both `current-window-configuration' and `window-state-get'. Do not use |
| 6640 | without read syntax (like windows or frames) should not use that. | 6640 | this value for parameters without read syntax (like windows or frames). |
| 6641 | 6641 | ||
| 6642 | Parameters not saved by `current-window-configuration' or | 6642 | Parameters not saved by `current-window-configuration' or |
| 6643 | `window-state-get' are left alone by `set-window-configuration' | 6643 | `window-state-get' are left alone by `set-window-configuration' |
| 6644 | respectively are not installed by `window-state-put'. */); | 6644 | respectively are not installed by `window-state-put'. */); |
| 6645 | Vwindow_persistent_parameters = list1 (Fcons (Qclone_of, Qstate)); | 6645 | Vwindow_persistent_parameters = list1 (Fcons (Qclone_of, Qt)); |
| 6646 | 6646 | ||
| 6647 | defsubr (&Sselected_window); | 6647 | defsubr (&Sselected_window); |
| 6648 | defsubr (&Sminibuffer_window); | 6648 | defsubr (&Sminibuffer_window); |