aboutsummaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorJoakim Verona2010-08-17 23:19:11 +0200
committerJoakim Verona2010-08-17 23:19:11 +0200
commita8101f663e6cbff953b67b8bef33bc0171818477 (patch)
tree8f71a16188f75e91670e05379fb4de2d0136cbf4 /etc
parentfe72c5b4651334677326104ec138e7cdd50f2ffe (diff)
parent489cd5bd5a0128d6c3bee49fa2c451f2927ddea9 (diff)
downloademacs-a8101f663e6cbff953b67b8bef33bc0171818477.tar.gz
emacs-a8101f663e6cbff953b67b8bef33bc0171818477.zip
merge from trunk
Diffstat (limited to 'etc')
-rw-r--r--etc/AUTHORS16
-rw-r--r--etc/ChangeLog55
-rw-r--r--etc/DEBUG29
-rw-r--r--etc/NEWS196
-rw-r--r--etc/NEWS.1-1710
-rw-r--r--etc/NEWS.234
-rw-r--r--etc/PROBLEMS41
-rw-r--r--etc/compilation.txt90
-rw-r--r--etc/refcards/orgcard.tex92
-rw-r--r--etc/tutorials/TUTORIAL.bg2
-rw-r--r--etc/tutorials/TUTORIAL.es2
-rw-r--r--etc/tutorials/TUTORIAL.he1038
-rw-r--r--etc/tutorials/TUTORIAL.translators4
13 files changed, 1483 insertions, 96 deletions
diff --git a/etc/AUTHORS b/etc/AUTHORS
index 26611a57de1..916f8cdd794 100644
--- a/etc/AUTHORS
+++ b/etc/AUTHORS
@@ -1042,7 +1042,7 @@ and changed nndoc.el allout.el bytecomp.el gnus-sum.el gnus-util.el
1042 1042
1043François-David Collin: changed message.el mm-decode.el 1043François-David Collin: changed message.el mm-decode.el
1044 1044
1045Fred Fish: changed linux.h unexec.c 1045Fred Fish: changed linux.h unexcoff.c
1046 1046
1047Fred Oberhauser: changed nnmail.el 1047Fred Oberhauser: changed nnmail.el
1048 1048
@@ -1273,7 +1273,7 @@ Inge Wallin: co-wrote avl-tree.el ewoc.el
1273Inoue Seiichiro: changed xterm.c xfns.c xterm.h 1273Inoue Seiichiro: changed xterm.c xfns.c xterm.h
1274 1274
1275International Business Machines: changed emacs.c fileio.c process.c 1275International Business Machines: changed emacs.c fileio.c process.c
1276 sysdep.c unexec.c 1276 sysdep.c unexcoff.c
1277 1277
1278Irie Tetsuya: changed gnus.texi message.texi 1278Irie Tetsuya: changed gnus.texi message.texi
1279 1279
@@ -1334,7 +1334,7 @@ James TD Smith: changed org.el org-colview.el org-clock.el
1334 1334
1335James Troup: changed gnus-sum.el 1335James Troup: changed gnus-sum.el
1336 1336
1337James Van Artsdalen: changed unexec.c usg5-4.h 1337James Van Artsdalen: changed unexcoff.c usg5-4.h
1338 1338
1339James Wright: changed em-unix.el 1339James Wright: changed em-unix.el
1340 1340
@@ -2176,7 +2176,7 @@ and changed tramp.texi dbusbind.c dbus.texi ange-ftp.el trampver.el
2176 simple.el vc.el configure.in dired.el and 50 other files 2176 simple.el vc.el configure.in dired.el and 50 other files
2177 2177
2178Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h 2178Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h
2179 unexec.c 2179 unexcoff.c
2180 2180
2181Michael D. Ernst: wrote reposition.el 2181Michael D. Ernst: wrote reposition.el
2182and changed dired-x.el uniquify.el ispell.el bibtex.el rmail.el dired.el 2182and changed dired-x.el uniquify.el ispell.el bibtex.el rmail.el dired.el
@@ -2200,7 +2200,7 @@ Michael I. Bushnell: changed rmail.el simple.el callproc.c gnu.h gnus.el
2200 2200
2201Michael K. Johnson: changed configure.in emacs.c intel386.h linux.h 2201Michael K. Johnson: changed configure.in emacs.c intel386.h linux.h
2202 mem-limits.h process.c sysdep.c syssignal.h systty.h template.h 2202 mem-limits.h process.c sysdep.c syssignal.h systty.h template.h
2203 unexec.c 2203 unexcoff.c
2204 2204
2205Michael Kifer: wrote ediff-diff.el ediff-help.el ediff-hook.el 2205Michael Kifer: wrote ediff-diff.el ediff-help.el ediff-hook.el
2206 ediff-init.el ediff-merg.el ediff-mult.el ediff-ptch.el ediff-util.el 2206 ediff-init.el ediff-merg.el ediff-mult.el ediff-ptch.el ediff-util.el
@@ -2259,7 +2259,7 @@ and changed gnus-score.el
2259Microelectronics and Computer Technology Corporation: changed 2259Microelectronics and Computer Technology Corporation: changed
2260 emacsclient.c etags.c lisp.h movemail.c rmail.el rmailedit.el 2260 emacsclient.c etags.c lisp.h movemail.c rmail.el rmailedit.el
2261 rmailkwd.el rmailmsc.el rmailout.el rmailsum.el scribe.el server.el 2261 rmailkwd.el rmailmsc.el rmailout.el rmailsum.el scribe.el server.el
2262 sysdep.c unexec.c xmenu.c 2262 sysdep.c unexcoff.c xmenu.c
2263 2263
2264Mikael Djurfeldt: changed xdisp.c 2264Mikael Djurfeldt: changed xdisp.c
2265 2265
@@ -2685,7 +2685,7 @@ and changed files.el keyboard.c simple.el xterm.c xdisp.c Makefile.in
2685Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el rfc822.el 2685Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el rfc822.el
2686 terminal.el yow.el 2686 terminal.el yow.el
2687and changed files.el sysdep.c rmail.el info.el keyboard.c bytecomp.el 2687and changed files.el sysdep.c rmail.el info.el keyboard.c bytecomp.el
2688 fileio.c simple.el process.c startup.el window.c editfns.c unexec.c 2688 fileio.c simple.el process.c startup.el window.c editfns.c unexcoff.c
2689 xfns.c keymap.c minibuf.c sendmail.el buffer.c dispnew.c emacs.c 2689 xfns.c keymap.c minibuf.c sendmail.el buffer.c dispnew.c emacs.c
2690 subr.el and 129 other files 2690 subr.el and 129 other files
2691 2691
@@ -2921,7 +2921,7 @@ Slawomir Nowaczyk: changed emacs.py python.el TUTORIAL.pl flyspell.el
2921 ls-lisp.el w32proc.c 2921 ls-lisp.el w32proc.c
2922 2922
2923Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el 2923Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el
2924 unexec.c 2924 unexcoff.c
2925 2925
2926Sriram Karra: changed message.el 2926Sriram Karra: changed message.el
2927 2927
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 872615c43e3..5b000fc66c6 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,56 @@
12010-08-14 Eli Zaretskii <eliz@gnu.org>
2
3 * tutorials/TUTORIAL.he: Use MAQAF instead of hyphen where appropriate.
4 Fix a few typos.
5
62010-08-08 Ken Brown <kbrown@cornell.edu>
7
8 * PROBLEMS: Mention problem with Cygwin 1.5.19.
9
102010-08-07 Eli Zaretskii <eliz@gnu.org>
11
12 * NEWS: Mention the Hebrew translation.
13
14 * tutorials/TUTORIAL.he: Don't use acronyms.
15
162010-08-05 Eli Zaretskii <eliz@gnu.org>
17
18 * AUTHORS: Rename unexec.o => unexcoff.o.
19 * PROBLEMS: Rename unexec.o => unexcoff.o.
20
212010-07-31 Eli Zaretskii <eliz@gnu.org>
22
23 * tutorials/TUTORIAL.he: New file.
24
25 * tutorials/TUTORIAL.translators: Add TUTORIAL.he.
26
272010-07-24 Christoph Scholtes <cschol2112@gmail.com>
28
29 * NEWS: Document new --distfiles configure.bat option and
30 `dist' make target on Windows.
31
322010-07-20 Juanma Barranquero <lekktu@gmail.com>
33
34 * PROBLEMS: Add note about use of backslashes in Windows paths.
35
362010-07-19 Juanma Barranquero <lekktu@gmail.com>
37
38 * NEWS: Mention --enable-checking is now supported on Windows.
39
402010-07-19 Carsten Dominik <carsten.dominik@gmail.com>
41
42 * refcards/orgcard.tex: Remove the key for the TODO sparse tree
43 and add the new key. Document new keys for image and entity
44 display. Document the Org Babel keys.
45
462010-06-19 Ken Brown <kbrown@cornell.edu>
47
48 * PROBLEMS: Update Cygwin GCC information. (Bug#6458)
49
502010-06-12 Glenn Morris <rgm@gnu.org>
51
52 * tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos.
53
12010-06-09 Michael Albinus <michael.albinus@gmx.de> 542010-06-09 Michael Albinus <michael.albinus@gmx.de>
2 55
3 * NEWS: Add notifications.el. 56 * NEWS: Add notifications.el.
@@ -4919,7 +4972,7 @@
4919 * etags.c: Changes for VMS. 4972 * etags.c: Changes for VMS.
4920 Always define ETAGS on VMS. 4973 Always define ETAGS on VMS.
4921 Define macros GOOD and BAD for success and failure exit codes. 4974 Define macros GOOD and BAD for success and failure exit codes.
4922 (begtk, intk): Allow `$' in identifiers 4975 (begtk, intk): Allow `$' in identifiers.
4923 (main): Don't support -B, -F or -u on VMS. 4976 (main): Don't support -B, -F or -u on VMS.
4924 Alternate loop for scanning filename arguments. 4977 Alternate loop for scanning filename arguments.
4925 (system): Delete definition of this function. 4978 (system): Delete definition of this function.
diff --git a/etc/DEBUG b/etc/DEBUG
index b4272929bae..6fd5b412f4c 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -5,9 +5,8 @@ Copyright (C) 1985, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
5See the end of the file for license conditions. 5See the end of the file for license conditions.
6 6
7 7
8[People who debug Emacs on Windows using Microsoft debuggers 8[People who debug Emacs on Windows using Microsoft debuggers should
9should read the Windows-specific section near the end of this 9read the Windows-specific section near the end of this document.]
10document.]
11 10
12** When you debug Emacs with GDB, you should start it in the directory 11** When you debug Emacs with GDB, you should start it in the directory
13where the executable was made. That directory has a .gdbinit file 12where the executable was made. That directory has a .gdbinit file
@@ -50,8 +49,7 @@ On modern POSIX systems, you can override that with this command:
50 handle SIGINT stop nopass 49 handle SIGINT stop nopass
51 50
52After this `handle' command, SIGINT will return control to GDB. If 51After this `handle' command, SIGINT will return control to GDB. If
53you want the C-g to cause a QUIT within Emacs as well, omit the 52you want the C-g to cause a QUIT within Emacs as well, omit the `nopass'.
54`nopass'.
55 53
56A technique that can work when `handle SIGINT' does not is to store 54A technique that can work when `handle SIGINT' does not is to store
57the code for some character into the variable stop_character. Thus, 55the code for some character into the variable stop_character. Thus,
@@ -443,10 +441,9 @@ It is necessary to refer to the file `nmout' to convert
443numeric addresses into symbols and vice versa. 441numeric addresses into symbols and vice versa.
444 442
445It is useful to be running under a window system. 443It is useful to be running under a window system.
446Then, if Emacs becomes hopelessly wedged, you can create 444Then, if Emacs becomes hopelessly wedged, you can create another
447another window to do kill -9 in. kill -ILL is often 445window to do kill -9 in. kill -ILL is often useful too, since that
448useful too, since that may make Emacs dump core or return 446may make Emacs dump core or return to adb.
449to adb.
450 447
451 448
452** Debugging incorrect screen updating. 449** Debugging incorrect screen updating.
@@ -483,16 +480,14 @@ suitable for Unix and GNU systems, to build such a debugging version:
483Building Emacs like that activates many assertions which scrutinize 480Building Emacs like that activates many assertions which scrutinize
484display code operation more than Emacs does normally. (To see the 481display code operation more than Emacs does normally. (To see the
485code which tests these assertions, look for calls to the `xassert' 482code which tests these assertions, look for calls to the `xassert'
486macros.) Any assertion that is reported to fail should be 483macros.) Any assertion that is reported to fail should be investigated.
487investigated.
488 484
489Building with GLYPH_DEBUG defined also defines several helper 485Building with GLYPH_DEBUG defined also defines several helper
490functions which can help debugging display code. One such function is 486functions which can help debugging display code. One such function is
491`dump_glyph_matrix'. If you run Emacs under GDB, you can print the 487`dump_glyph_matrix'. If you run Emacs under GDB, you can print the
492contents of any glyph matrix by just calling that function with the 488contents of any glyph matrix by just calling that function with the
493matrix as its argument. For example, the following command will print 489matrix as its argument. For example, the following command will print
494the contents of the current matrix of the window whose pointer is in 490the contents of the current matrix of the window whose pointer is in `w':
495`w':
496 491
497 (gdb) p dump_glyph_matrix (w->current_matrix, 2) 492 (gdb) p dump_glyph_matrix (w->current_matrix, 2)
498 493
@@ -621,13 +616,9 @@ Emacs compiled with such packages might not run without some hacking,
621because Emacs replaces the system's memory allocation functions with 616because Emacs replaces the system's memory allocation functions with
622its own versions, and because the dumping process might be 617its own versions, and because the dumping process might be
623incompatible with the way these packages use to track allocated 618incompatible with the way these packages use to track allocated
624memory. Here are some of the changes you might find necessary 619memory. Here are some of the changes you might find necessary:
625(SYSTEM-NAME and MACHINE-NAME are the names of your OS- and
626CPU-specific headers in the subdirectories of `src'):
627 620
628 - In src/s/SYSTEM-NAME.h add "#define SYSTEM_MALLOC". 621 - Edit configure, to set system_malloc and CANNOT_DUMP to "yes".
629
630 - In src/m/MACHINE-NAME.h add "#define CANNOT_DUMP"
631 622
632 - Configure with a different --prefix= option. If you use GCC, 623 - Configure with a different --prefix= option. If you use GCC,
633 version 2.7.2 is preferred, as some malloc debugging packages 624 version 2.7.2 is preferred, as some malloc debugging packages
diff --git a/etc/NEWS b/etc/NEWS
index e9d29c9ea87..d489e2d32c7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -41,6 +41,21 @@ lib-src/Makefile by hand in order to use the associated features.
41** There is a new configure option --with-crt-dir. 41** There is a new configure option --with-crt-dir.
42This is only useful if your crt*.o files are in a non-standard location. 42This is only useful if your crt*.o files are in a non-standard location.
43 43
44---
45** Emacs can be compiled against Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
46to configure. Note that other libraries used by Emacs, RSVG and GConf,
47also depend on Gtk+. You can disable them with --without-rsvg and
48--without-gconf.
49
50** There is a new configure option --enable-use-lisp-union-type.
51This is only useful for Emacs developers to debug certain types of bugs.
52These is not a new feature; only the configure flag is new.
53
54---
55** New translation of the Emacs Tutorial in Hebrew is available
56Type `C-u C-h t' to choose it in case your language setup doesn't
57automatically select it.
58
44 59
45* Startup Changes in Emacs 24.1 60* Startup Changes in Emacs 24.1
46 61
@@ -89,6 +104,17 @@ Use `set-scroll-bar-mode' to change this.
89Customize `tool-bar-style' to choose style. On a Gnome desktop, the default 104Customize `tool-bar-style' to choose style. On a Gnome desktop, the default
90is taken from the desktop settings. 105is taken from the desktop settings.
91 106
107** GTK tool bars can be placed on the left/right or top/bottom of the frame.
108The frame-parameter tool-bar-position controls this. It takes the values
109top, left, right or bottom. The Options => Show/Hide menu has entries
110for this.
111
112** The colors for selected text (the region face) are taken from the GTK
113theme when Emacs is built with GTK.
114
115** Emacs uses GTK tooltips by default if built with GTK. You can turn that
116off by customizing x-gtk-use-system-tooltips.
117
92** Lucid menus and dialogs can display antialiased fonts if Emacs is built 118** Lucid menus and dialogs can display antialiased fonts if Emacs is built
93with Xft. 119with Xft.
94 120
@@ -125,17 +151,79 @@ trashing. This avoids inadvertently trashing temporary files.
125*** Calling `delete-file' or `delete-directory' with a prefix argument 151*** Calling `delete-file' or `delete-directory' with a prefix argument
126now forces true deletion, regardless of `delete-by-moving-to-trash'. 152now forces true deletion, regardless of `delete-by-moving-to-trash'.
127 153
154** New option `list-colors-sort' defines the color sort order
155for `list-colors-display'.
156
157** An Emacs Lisp package manager is now included.
158This is a convenient way to download and install additional packages,
159from elpa.gnu.org. `M-x package-list-packages' shows a list of
160packages, which can be selected for installation.
161
162*** By default, all installed packages are loaded and activated
163automatically when Emacs starts up. To disable this, set
164`package-enable-at-startup' to nil. To change which packages are
165loaded, customize `package-load-list'.
166
128 167
129* Editing Changes in Emacs 24.1 168* Editing Changes in Emacs 24.1
130 169
131** completion-at-point is now an alias for complete-symbol. 170** completion-at-point is now an alias for complete-symbol.
132 171
133** mouse-region-delete-keys has been deleted. 172** mouse-region-delete-keys has been deleted.
173
174** Deletion changes
175
176*** New option `delete-active-region'.
177If non-nil, C-d, [delete], and DEL delete the region if it is active
178and no prefix argument is given. If set to `kill', these commands
179kill instead.
180
181*** New command `delete-forward-char', bound to C-d and [delete].
182This is meant for interactive use, and obeys `delete-active-region';
183delete-char, meant for Lisp, does not obey `delete-active-region'.
184
185*** `delete-backward-char' is now a Lisp function.
186Apart from obeying `delete-active-region', its behavior is unchanged.
187However, the byte compiler now warns if it is called from Lisp; you
188should use delete-char with a negative argument instead.
189
190*** The option `mouse-region-delete-keys' has been deleted.
191
192** Selection changes.
193
194The default handling of clipboard and primary selections has been
195changed to conform with other X applications.
196
197*** `select-active-regions' now defaults to t, so active regions set
198the primary selection.
199
200It also accepts a new value, `lazy', which means to only set the
201primary selection for temporarily active regions (usually made by
202mouse-dragging or shift-selection).
203
204*** `mouse-2' is now bound to `mouse-yank-primary'.
205
206*** `x-select-enable-clipboard' now defaults to t.
207Thus, killing and yanking now use the clipboard (in addition to the
208kill ring).
209
210*** `x-select-enable-primary' now defaults to nil.
211
212*** `mouse-drag-copy-region' now defaults to nil.
213
134 214
135* Changes in Specialized Modes and Packages in Emacs 24.1 215* Changes in Specialized Modes and Packages in Emacs 24.1
136 216
137** Archive Mode has basic support to browse 7z archives. 217** Archive Mode has basic support to browse 7z archives.
138 218
219** ERC changes
220
221*** New vars `erc-autojoin-timing' and `erc-autojoin-delay'.
222If the value of `erc-autojoin-timing' is 'ident, ERC autojoins after a
223successful NickServ identification, or after `erc-autojoin-delay'
224seconds. The default value, 'ident, means to autojoin immediately
225after connecting.
226
139** In ido-mode, C-v is no longer bound to ido-toggle-vc. 227** In ido-mode, C-v is no longer bound to ido-toggle-vc.
140The reason is that this interferes with cua-mode. 228The reason is that this interferes with cua-mode.
141 229
@@ -192,34 +280,100 @@ is just left as is in the message, so it is not lost.
192**** vc-bzr handles Author:, Date: and Fixes: 280**** vc-bzr handles Author:, Date: and Fixes:
193**** vc-mtn handles Author: and Date: 281**** vc-mtn handles Author: and Date:
194 282
283*** Pressing g in a *vc-diff* buffer reruns vc-diff, so it will
284produce an up to date diff.
285
195** Directory local variables can apply to file-less buffers. 286** Directory local variables can apply to file-less buffers.
196For example, adding "(diff-mode . ((mode . whitespace)))" to your 287For example, adding "(diff-mode . ((mode . whitespace)))" to your
197.dir-locals.el file, will turn on `whitespace-mode' for *vc-diff* buffers. 288.dir-locals.el file, will turn on `whitespace-mode' for *vc-diff* buffers.
198 289
199** SQL Mode enhancements. 290** SQL Mode enhancements.
200 291
201*** Several variables have been marked as safe local variables. 292*** Several variables have been marked as safe local variables. The
202The variables `sql-product', `sql-user', `sql-server', and 293variables `sql-product', `sql-user', `sql-server', `sql-database' and
203`sql-database' can now be safely used as local variables. 294`sql-port' can now be safely used as local variables.
204 295
205*** Added ability to login with a port on MySQL. 296*** Added ability to login with a port on MySQL.
206The custom variable `sql-port' can be specified for connection to 297The custom variable `sql-port' can be specified for connection to
207MySQL servers. 298MySQL servers.
208 299
300*** Command continuation prompts in SQL interactive mode are suppressed.
301Multiple line commands in SQL interactive mode, generate command
302continuation prompts which needlessly confuse the output. These
303prompts are now filtered out from the output. This change impacts
304multiple line SQL statements entered with C-j between each line,
305statements yanked into the buffer and statements sent with
306`sql-send-*' functions.
307
209*** Custom variables control prompting for login parameters. 308*** Custom variables control prompting for login parameters.
210Each supported product has a custom variable `sql-*-login-params' 309Each supported product has a custom variable `sql-*-login-params'
211which is a list of the parameters to be prompted for before a 310which is a list of the parameters to be prompted for before a
212connection is established. 311connection is established.
213 312
313By default, the value of the parameter is simply prompted for. For
314`server' and `database', they can be specified in a list as shown
315below:
316
317 (server :file ARG)
318 (database :file ARG)
319 (server :completion ARG)
320 (database :completion ARG)
321
322The ARG when :file is specified is a regexp that will match valid file
323names (without the directory portion). Generally these strings will
324be of the form ".+\.SUF" where SUF is the desired file suffix.
325
326When :completion is specified, the ARG corresponds to the PREDICATE
327argument to the `completing-read' function (a list of possible values
328or a function returning such a list).
329
330*** Added `sql-connection-alist' to record login parameter values.
331An alist for recording different username, database and server
332values. If there are multiple databases that you connect to the
333parameters needed can be stored in this alist.
334
335For example, the following might be set in the user's init.el:
336
337 (setq sql-connection-alist
338 '((dev (sql-product 'sqlite)
339 (sql-database "/home/mmaug/dev.db"))
340 (prd (sql-product 'oracle)
341 (sql-user "mmaug")
342 (sql-database "iprd2a"))))
343
344This defines two connections named "dev" and "prd".
345
346*** Added `sql-connect' to use predefined connections.
347Sets the login parameters based on the values in the
348`sql-connection-alist' and start a SQL interactive session. Any
349values specified in the connection will not be prompted for.
350
351In the example above, if the user were to invoke M-x sql-connect, they
352would be prompted for the connection. The user can respond with
353either "dev" or "prd". The "dev" connection would connect to the
354SQLite database without prompting; the "prd" connection would prompt
355for the users password and then connect to the Oracle database.
356
357**** Added SQL->Start... submenu when connections are defined.
358When connections have been defined, There is a submenu available that
359allows the user to select one to start a SQLi session. The "Start
360SQLi Session" item moves to the "Start..." submenu when cnnections
361have been defined.
362
363**** Added "Save Connection" menu item in SQLi buffers.
364When a SQLi session is not started by a connection then
365`sql-save-connection' will gather the login params specified for the
366session and save them as a new connection.
367
214*** Added option `sql-send-terminator'. 368*** Added option `sql-send-terminator'.
215When set makes sure that each command sent with `sql-send-*' commands 369When set makes sure that each command sent with `sql-send-*' commands
216are properly terminated and submitted to the SQL processor. 370are properly terminated and submitted to the SQL processor.
217 371
218*** Added option `sql-oracle-scan-on'. 372*** Added option `sql-oracle-scan-on'.
219When set commands sent to Oracle's SQL*Plus are scanned for strings 373When set commands sent to Oracle's SQL*Plus are scanned for strings
220starting with an ampersand and the user is asked for replacement 374starting with an ampersand and the user is asked for replacement text.
221text. In general, the SQL*Plus option SCAN should be set OFF under 375In general, the SQL*Plus option SCAN should always be set OFF under
222SQL interactive mode. 376SQL interactive mode and this option used in its place.
223 377
224*** SQL interactive mode will replace tabs with spaces. 378*** SQL interactive mode will replace tabs with spaces.
225This prevents the comand interpretter for MySQL and Postgres from 379This prevents the comand interpretter for MySQL and Postgres from
@@ -240,6 +394,8 @@ threads simultaneously.
240 394
241* New Modes and Packages in Emacs 24.1 395* New Modes and Packages in Emacs 24.1
242 396
397** pcase.el provides the ML-style pattern matching macro `pcase'.
398
243** smie.el is a package providing a simple generic indentation engine. 399** smie.el is a package providing a simple generic indentation engine.
244 400
245** secrets.el is an implementation of the Secret Service API, an 401** secrets.el is an implementation of the Secret Service API, an
@@ -254,13 +410,32 @@ Notifications API. It requires D-Bus for communication.
254 410
255* Incompatible Lisp Changes in Emacs 24.1 411* Incompatible Lisp Changes in Emacs 24.1
256 412
413** A backquote not followed by a space is now always treated as new-style.
414
257** Test for special mode-class was moved from view-file to view-buffer. 415** Test for special mode-class was moved from view-file to view-buffer.
416FIXME: This only says what was changed, but not what are the
417programmer-visible consequences.
258 418
259** Passing a nil argument to a minor mode function now turns the mode 419** Passing a nil argument to a minor mode function now turns the mode
260 ON unconditionally. 420 ON unconditionally.
421
422** During startup, Emacs no longer adds entries for `menu-bar-lines'
423and `tool-bar-lines' to `default-frame-alist' and
424`initial-frame-alist'. With these alist entries omitted, `make-frame'
425checks the value of the variable `menu-bar-mode'/`tool-bar-mode' to
426determine whether to create a menu-bar or tool-bar, respectively.
427If the alist entries are added, they override the value of
428`menu-bar-mode'/`tool-bar-mode'.
429
430** Regions created by mouse dragging are now normal active regions,
431similar to the ones created by shift-selection. In previous Emacs
432versions, these regions were delineated by `mouse-drag-overlay', which
433has now been removed.
434
261 435
262* Lisp changes in Emacs 24.1 436* Lisp changes in Emacs 24.1
263 437
438** Syntax tables support a new "comment style c" additionally to style b.
264** frame-local variables cannot be let-bound any more. 439** frame-local variables cannot be let-bound any more.
265** prog-mode is a new major-mode meant to be the parent of programming mode. 440** prog-mode is a new major-mode meant to be the parent of programming mode.
266** define-minor-mode accepts a new keyword :variable. 441** define-minor-mode accepts a new keyword :variable.
@@ -299,6 +474,15 @@ displayed with a "spinning bar".
299 474
300* Changes in Emacs 24.1 on non-free operating systems 475* Changes in Emacs 24.1 on non-free operating systems
301 476
477** New configure.bat option --enable-checking builds emacs with extra
478runtime checks.
479
480** New configure.bat option --distfiles to specify files to be
481 included in binary distribution
482
483** New make target `dist' to create binary disttribution for Windows
484 platform
485
302 486
303---------------------------------------------------------------------- 487----------------------------------------------------------------------
304This file is part of GNU Emacs. 488This file is part of GNU Emacs.
diff --git a/etc/NEWS.1-17 b/etc/NEWS.1-17
index 23184c45689..122c634b0f2 100644
--- a/etc/NEWS.1-17
+++ b/etc/NEWS.1-17
@@ -760,7 +760,7 @@ not try to give commands in it when no longer really in the debugger.
760* New function `switch-to-buffer-other-window'. 760* New function `switch-to-buffer-other-window'.
761 761
762This is the new primitive to select a specified buffer (the 762This is the new primitive to select a specified buffer (the
763argument) in another window. It is not quite the same as 763argument) in another window. It is not quite the same as
764`pop-to-buffer', because it is guaranteed to create another 764`pop-to-buffer', because it is guaranteed to create another
765window (assuming there is room on the screen) so that it can 765window (assuming there is room on the screen) so that it can
766leave the current window's old buffer displayed as well. 766leave the current window's old buffer displayed as well.
@@ -971,7 +971,7 @@ once again "unmodified".
971This command creates an inferior Lisp process whose input and output 971This command creates an inferior Lisp process whose input and output
972appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode 972appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode
973called inferior-lisp-mode, which has many of the commands of lisp-mode 973called inferior-lisp-mode, which has many of the commands of lisp-mode
974and those of shell-mode. Calls the value of shell-mode-hook and 974and those of shell-mode. Calls the value of shell-mode-hook and
975lisp-mode-hook, in that order, if non-nil. 975lisp-mode-hook, in that order, if non-nil.
976 976
977Meanwhile, in lisp-mode, the command C-M-x is defined to 977Meanwhile, in lisp-mode, the command C-M-x is defined to
@@ -1421,7 +1421,7 @@ Changes in Emacs 15
1421 of the executing emacs, for use in run-time conditionalization. 1421 of the executing emacs, for use in run-time conditionalization.
1422 1422
1423 The function featurep of one argument may be used to test for the 1423 The function featurep of one argument may be used to test for the
1424 presence of a feature. It is just the same as 1424 presence of a feature. It is just the same as
1425 (not (null (memq FEATURE features))) where FEATURE is its argument. 1425 (not (null (memq FEATURE features))) where FEATURE is its argument.
1426 For example, (if (featurep 'magic-window-hack) 1426 For example, (if (featurep 'magic-window-hack)
1427 (transmogrify-window 'vertical) 1427 (transmogrify-window 'vertical)
@@ -1541,13 +1541,13 @@ Changes in Emacs 15
1541 1541
1542 This function returns a cons cell whose car is the object produced 1542 This function returns a cons cell whose car is the object produced
1543 by reading from the string and whose cdr is a number giving the 1543 by reading from the string and whose cdr is a number giving the
1544 index in the string of the first character not read. That index may 1544 index in the string of the first character not read. That index may
1545 be passed as the second argument to a later call to read-from-string 1545 be passed as the second argument to a later call to read-from-string
1546 to read the next form represented by the string. 1546 to read the next form represented by the string.
1547 1547
1548 In addition, the function read now accepts a string as its argument. 1548 In addition, the function read now accepts a string as its argument.
1549 In this case, it calls read-from-string on the whole string, and 1549 In this case, it calls read-from-string on the whole string, and
1550 returns the car of the result. (ie the actual object read.) 1550 returns the car of the result (ie the actual object read.)
1551 1551
1552 1552
1553 1553
diff --git a/etc/NEWS.23 b/etc/NEWS.23
index 9124fe1c069..74291bab8ab 100644
--- a/etc/NEWS.23
+++ b/etc/NEWS.23
@@ -27,6 +27,10 @@ with a prefix argument or by typing C-u C-h C-n.
27 27
28* Changes in Specialized Modes and Packages in Emacs 23.3 28* Changes in Specialized Modes and Packages in Emacs 23.3
29 29
30---
31** The appt-add command takes an optional argument for the warning time.
32This can be used in place of the default appt-message-warning-time.
33
30 34
31* New Modes and Packages in Emacs 23.3 35* New Modes and Packages in Emacs 23.3
32 36
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 8c6a37dbd45..093d815bd81 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -1037,7 +1037,7 @@ into Meta. This is because of the great importance of Meta in Emacs.
1037 1037
1038This happens sometimes when using Metacity. Resizing Emacs or ALT-Tab:bing 1038This happens sometimes when using Metacity. Resizing Emacs or ALT-Tab:bing
1039makes the system unresponsive to the mouse or the keyboard. Killing Emacs 1039makes the system unresponsive to the mouse or the keyboard. Killing Emacs
1040or shifting out from X11 and back again usually cures it (i.e. Ctrl-Alt-F1 1040or shifting out from X11 and back again usually cures it (i.e. Ctrl-Alt-F1
1041and then Alt-F7). A bug for it is here: 1041and then Alt-F7). A bug for it is here:
1042https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/231034. 1042https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/231034.
1043Note that a permanent fix seems to be to disable "assistive technologies". 1043Note that a permanent fix seems to be to disable "assistive technologies".
@@ -1514,7 +1514,7 @@ One way to cure this is to disable flow control on the local host
1514(the one running rlogin, not the one running rlogind) using the 1514(the one running rlogin, not the one running rlogind) using the
1515stty command, before starting the rlogin process. On many systems, 1515stty command, before starting the rlogin process. On many systems,
1516"stty start u stop u" will do this. On some systems, use 1516"stty start u stop u" will do this. On some systems, use
1517"stty -ixon" instead. 1517"stty -ixon" instead.
1518 1518
1519Some versions of tcsh will prevent even this from working. One way 1519Some versions of tcsh will prevent even this from working. One way
1520around this is to start another shell before starting rlogin, and 1520around this is to start another shell before starting rlogin, and
@@ -2339,17 +2339,18 @@ files are installed. Then use:
2339 2339
2340(using the location of the 32-bit X libraries on your system). 2340(using the location of the 32-bit X libraries on your system).
2341 2341
2342*** Building the Cygwin port for MS-Windows can fail with some GCC versions 2342*** Building Emacs for Cygwin can fail with GCC 3
2343 2343
2344Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is 2344As of Emacs 22.1, there have been stability problems with Cygwin
2345reported to either fail or cause Emacs to segfault at run time. In 2345builds of Emacs using GCC 3. Cygwin users are advised to use GCC 4.
2346addition, the Cygwin GCC 3.4.4-2 has problems with generating debug 2346
2347info. Cygwin users are advised not to use these versions of GCC for 2347*** Building Emacs 23.3 and later will fail under Cygwin 1.5.19
2348compiling Emacs. GCC versions 4.0.3, 4.0.4, 4.1.1, and 4.1.2 2348
2349reportedly build a working Cygwin binary of Emacs, so we recommend 2349This is a consequence of a change to src/dired.c on 2010-07-27. The
2350these GCC versions. Note that these versions of GCC, 4.0.3, 4.0.4, 2350issue is that Cygwin 1.5.19 did not have d_ino in 'struct dirent'.
23514.1.1, and 4.1.2, are currently the _only_ versions known to succeed 2351See
2352in building Emacs (as of v22.1). 2352
2353 http://lists.gnu.org/archive/html/emacs-devel/2010-07/msg01266.html
2353 2354
2354*** Building the native MS-Windows port fails due to unresolved externals 2355*** Building the native MS-Windows port fails due to unresolved externals
2355 2356
@@ -2440,6 +2441,20 @@ several workarounds for this problem:
2440 2. Install the latest Windows SDK. 2441 2. Install the latest Windows SDK.
2441 3. Replace emacs.ico with an older or edited icon. 2442 3. Replace emacs.ico with an older or edited icon.
2442 2443
2444*** Building the MS-Windows port complains about unknown escape sequences.
2445
2446Errors and warnings can look like this:
2447
2448 w32.c:1959:27: error: \x used with no following hex digits
2449 w32.c:1959:27: warning: unknown escape sequence '\i'
2450
2451This happens when paths using backslashes are passed to the compiler or
2452linker (via -I and possibly other compiler flags); when these paths are
2453included in source code, the backslashes are interpreted as escape sequences.
2454See http://lists.gnu.org/archive/html/emacs-devel/2010-07/msg00995.html
2455
2456The fix is to use forward slashes in all paths passed to the compiler.
2457
2443** Linking 2458** Linking
2444 2459
2445*** Building Emacs with a system compiler fails to link because of an 2460*** Building Emacs with a system compiler fails to link because of an
@@ -2733,7 +2748,7 @@ build Emacs in a directory on a local disk.
2733Two causes have been seen for such problems. 2748Two causes have been seen for such problems.
2734 2749
27351) On a system where getpagesize is not a system call, it is defined 27501) On a system where getpagesize is not a system call, it is defined
2736as a macro. If the definition (in both unexec.c and malloc.c) is wrong, 2751as a macro. If the definition (in both unex*.c and malloc.c) is wrong,
2737it can cause problems like this. You might be able to find the correct 2752it can cause problems like this. You might be able to find the correct
2738value in the man page for a.out (5). 2753value in the man page for a.out (5).
2739 2754
diff --git a/etc/compilation.txt b/etc/compilation.txt
index d6a236d243d..9cf39c90f9f 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -93,6 +93,43 @@ symbol: comma
93"foo.adb", line 2(11): warning: file name does not match ... 93"foo.adb", line 2(11): warning: file name does not match ...
94"src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment. 94"src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment.
95 95
96* Cucumber
97
98symbol: cucumber
99
100Feature: This is an example for backtrace.
101
102 Scenario: undefined step # features/cucumber.feature:3
103 Given this is undefined # features/cucumber.feature:4
104
105 Scenario: assertion false (Test::Unit) # foo/bar.feature:6
106 Given this will generate 'assert false' # foo/bar.rb:1
107 <false> is not true. (Test::Unit::AssertionFailedError)
108 /home/gusev/.rvm/foo/bar.rb:48:in `assert_block'
109 /home/gusev/.rvm/foo/bar.rb:500:in `_wrap_assertion'
110 features/cucumber.feature:7:in `Given this will generate 'assert false''
111
112 Scenario: assertion false (RSpec) # foo/bar.feature:9
113 Given this will generate 'should be_true' # foo/bar.rb:5
114 expected true to be false (Spec::Expectations::ExpectationNotMetError)
115 ./foo/bar/baz.rb:6:in `/^this will generate 'should be_true'$/'
116 foo/bar.feature:10:in `Given this will generate 'should be_true''
117
118 Scenario: backtrace in step definition # foo/bar.feature:12
119 Given this will generate backtrace # foo/sbar.rb:9
120 (RuntimeError)
121 ./foo/bar.rb:10:in `/^this will generate backtrace$/'
122 foo/bar.feature:13:in `Given this will generate backtrace'
123
124Failing Scenarios:
125cucumber foo/cucumber.feature:6 # Scenario: assertion false (Test::Unit)
126cucumber foo/cucumber.feature:9 # Scenario: assertion false (RSpec)
127cucumber foo/cucumber.feature:12 # Scenario: backtrace in step definition
128cucumber foo/cucumber.feature:15 # Scenario: deeep backtrace in step definition
129
1305 scenarios (4 failed, 1 undefined)
1315 steps (4 failed, 1 undefined)
1320m0.007s
96 133
97* EDG C/C++ 134* EDG C/C++
98 135
@@ -318,6 +355,51 @@ symbol: php
318Parse error: parse error, unexpected $ in main.php on line 59 355Parse error: parse error, unexpected $ in main.php on line 59
319Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66 356Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66
320 357
358* Ruby
359
360symbol: ruby
361
362plain-exception.rb:7:in `fun': unhandled exception
363 from plain-exception.rb:3:in `proxy'
364 from plain-exception.rb:12
365
366* Ruby (Test::Unit)
367
368symbol: ruby-Test::Unit
369
370Loaded suite examples/test-unit
371Started
372FFFE
373Finished in 0.023173 seconds.
374
375 1) Failure:
376test_a_deep_assert(BacktracesTest)
377 [examples/test-unit.rb:28:in `here_is_a_deep_assert'
378 examples/test-unit.rb:19:in `test_a_deep_assert']:
379<false> is not true.
380
381 2) Failure:
382test_assert(BacktracesTest) [examples/test-unit.rb:5]:
383<false> is not true.
384
385 3) Failure:
386test_assert_raise(BacktracesTest) [examples/test-unit.rb:9]:
387Exception raised:
388Class: <RuntimeError>
389Message: <"">
390---Backtrace---
391examples/test-unit.rb:10:in `test_assert_raise'
392examples/test-unit.rb:9:in `test_assert_raise'
393---------------
394
395 4) Error:
396test_backtrace(BacktracesTest):
397NoMethodError: undefined method `not_exists' for nil:NilClass
398 examples/test-unit.rb:24:in `some_function_call_from_nil'
399 examples/test-unit.rb:15:in `test_backtrace'
400
4014 tests, 3 assertions, 3 failures, 1 errors
402
321* RXP 403* RXP
322 404
323symbol: rxp 405symbol: rxp
@@ -375,11 +457,11 @@ bloofle defined( /users/wolfgang/foo.c(4) ), but never used
375 457
376* GCOV (test coverage program) 458* GCOV (test coverage program)
377 459
378symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line 460symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line
379 461
380 -: 0:Source:foo.c 462 -: 0:Source:foo.c
381 -: 0:Object:foo.bb 463 -: 0:Object:foo.bb
382 -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c 464 -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c
383 -: 2: $ ./a.out 465 -: 2: $ ./a.out
384 -: 3: $ gcov foo.c 466 -: 3: $ gcov foo.c
385 -: 4: LANG=C gcov foo.c 467 -: 4: LANG=C gcov foo.c
@@ -393,10 +475,10 @@ symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line
393 1: 12: r = 1; 475 1: 12: r = 1;
394 #####: 13: else if (argc == 2) 476 #####: 13: else if (argc == 2)
395 #####: 14: r = 2; 477 #####: 14: r = 2;
396 -: 15: else 478 -: 15: else
397 #####: 16: r = 0; 479 #####: 16: r = 0;
398 1: 17: return r; 480 1: 17: return r;
399 -: 18:} 481 -: 18:}
400 482
401 483
402* Podchecker error messages, per Pod::Checker 484* Podchecker error messages, per Pod::Checker
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex
index 89dbb0f01fb..c1f604a64dd 100644
--- a/etc/refcards/orgcard.tex
+++ b/etc/refcards/orgcard.tex
@@ -1,5 +1,5 @@
1% Reference Card for Org Mode 1% Reference Card for Org Mode
2\def\orgversionnumber{6.35i} 2\def\orgversionnumber{7.01}
3\def\versionyear{2010} % latest update 3\def\versionyear{2010} % latest update
4\def\year{2010} % latest copyright year 4\def\year{2010} % latest copyright year
5 5
@@ -329,7 +329,7 @@ are preserved on all copies.
329\section{Filtering and Sparse Trees} 329\section{Filtering and Sparse Trees}
330 330
331\key{construct a sparse tree by various criteria}{C-c /} 331\key{construct a sparse tree by various criteria}{C-c /}
332\key{view TODO's in sparse tree}{C-c C-v} 332\key{view TODO's in sparse tree}{C-c / t/T}
333\key{global TODO list in agenda mode}{C-c a t$^1$} 333\key{global TODO list in agenda mode}{C-c a t$^1$}
334\key{time sorted view of current org file}{C-c a L} 334\key{time sorted view of current org file}{C-c a L}
335 335
@@ -442,36 +442,53 @@ formula, \kbd{:=} a field formula.
442\key{find next link}{C-c C-x C-n} 442\key{find next link}{C-c C-x C-n}
443\key{find previous link}{C-c C-x C-p} 443\key{find previous link}{C-c C-x C-p}
444\key{edit code snippet of file at point}{C-c '} 444\key{edit code snippet of file at point}{C-c '}
445 445\key{toggle inline display of linked images}{C-c C-x C-v}
446{\bf Internal Links} 446
447 447% {\bf Internal Links}
448\key{\kbd{<<My Target>>}}{\rm target} 448
449\key{\kbd{<<<My Target>>>}}{\rm radio target$^2$} 449% \key{\kbd{<<My Target>>}}{\rm target}
450\key{\kbd{[[*this text]]}}{\rm find headline} 450% \key{\kbd{<<<My Target>>>}}{\rm radio target$^2$}
451\metax{\kbd{[[this text]]}}{\rm find target or text in buffer} 451% \key{\kbd{[[*this text]]}}{\rm find headline}
452\metax{\kbd{[[this text][description]]}}{\rm optional link text} 452% \metax{\kbd{[[this text]]}}{\rm find target or text in buffer}
453 453% \metax{\kbd{[[this text][description]]}}{\rm optional link text}
454{\bf External Links} 454
455 455% {\bf External Links}
456\key{\kbd{file:/home/dominik/img/mars.jpg}}{\rm file, absolute} 456
457\key{\kbd{file:papers/last.pdf}}{\rm file, relative} 457% \key{\kbd{file:/home/dominik/img/mars.jpg}}{\rm file, absolute}
458\key{\kbd{file:projects.org::*that text}}{\rm find headline} 458% \key{\kbd{file:papers/last.pdf}}{\rm file, relative}
459\key{\kbd{file:projects.org::find me}}{\rm find trgt/string} 459% \key{\kbd{file:projects.org::*that text}}{\rm find headline}
460%\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search} 460% \key{\kbd{file:projects.org::find me}}{\rm find trgt/string}
461\key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web} 461% %\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
462\key{\kbd{mailto:adent@galaxy.net}}{\rm Email address} 462% \key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
463\key{\kbd{news:comp.emacs}}{\rm Usenet group} 463% \key{\kbd{mailto:adent@galaxy.net}}{\rm Email address}
464\key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person} 464% \key{\kbd{news:comp.emacs}}{\rm Usenet group}
465\key{\kbd{gnus:group}}{\rm GNUS group} 465% \key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
466\key{\kbd{gnus:group\#id}}{\rm GNUS message} 466% \key{\kbd{gnus:group}}{\rm GNUS group}
467\key{\kbd{vm|wl|mhe|rmail:folder}}{\rm Mail folder} 467% \key{\kbd{gnus:group\#id}}{\rm GNUS message}
468\key{\kbd{vm|wl|mhe|rmail:folder\#id}}{\rm Mail message} 468% \key{\kbd{vm|wl|mhe|rmail:folder}}{\rm Mail folder}
469\key{\kbd{info:emacs:Regexps}}{\rm Info file:node} 469% \key{\kbd{vm|wl|mhe|rmail:folder\#id}}{\rm Mail message}
470\key{\kbd{shell:ls *.org}}{\rm shell command} 470% \key{\kbd{info:emacs:Regexps}}{\rm Info file:node}
471\key{\kbd{elisp:(calendar)}}{\rm elisp form} 471% \key{\kbd{shell:ls *.org}}{\rm shell command}
472\metax{\kbd{[[external link][description]]}}{\rm optional link text} 472% \key{\kbd{elisp:(calendar)}}{\rm elisp form}
473%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote} 473% \metax{\kbd{[[external link][description]]}}{\rm optional link text}
474 474% %\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}
475
476\section{Working with Code (Babel)}
477
478\key{execute code block at point}{C-c C-c}
479\key{open results of code block at point}{C-c C-o}
480\key{view expanded body of code block at point}{C-c C-v v}
481\key{go to named code block}{C-c C-v g}
482\key{go to named result}{C-c C-v r}
483\key{go to the next code block}{C-c C-v n}
484\key{go to the previous code block}{C-c C-v p}
485\key{execute all code blocks in current buffer}{C-c C-v b}
486\key{execute all code blocks in current subtree}{C-c C-v s}
487\key{tangle code blocks in current file}{C-c C-v t}
488\key{tangle code blocks in supplied file}{C-c C-v f}
489\key{ingest all code blocks in supplied file into the Library of Babel}{C-c C-v l}
490\key{switch to the session of the current code block}{C-c C-v z}
491\key{view sha1 hash of the current code block}{C-c C-v a}
475 492
476% \section{Remember-mode Integration} 493% \section{Remember-mode Integration}
477 494
@@ -690,6 +707,7 @@ some other place.
690\key{export visible part only}{C-c C-e v} 707\key{export visible part only}{C-c C-e v}
691\key{insert template of export options}{C-c C-e t} 708\key{insert template of export options}{C-c C-e t}
692\key{toggle fixed width for entry or region}{C-c :} 709\key{toggle fixed width for entry or region}{C-c :}
710\key{toggle pretty display of scripts, entities}{C-c C-x {\tt\char`\\}}
693 711
694%{\bf HTML formatting} 712%{\bf HTML formatting}
695 713
@@ -730,10 +748,8 @@ some other place.
730 748
731{\bf Comments: Text not being exported} 749{\bf Comments: Text not being exported}
732 750
733Text before the first headline is not considered part of the document 751Lines starting with \kbd{\#} and subtrees starting with COMMENT are
734and is therefore never exported. 752never exported.
735Lines starting with \kbd{\#} are comments and are not exported.
736Subtrees whose header starts with COMMENT are never exported.
737 753
738\key{toggle COMMENT keyword on entry}{C-c ;} 754\key{toggle COMMENT keyword on entry}{C-c ;}
739 755
@@ -749,8 +765,8 @@ your own key as shown under INSTALLATION.
749$^2$ After changing a \kbd{\#+KEYWORD} or \kbd{<<<target>>>} line, 765$^2$ After changing a \kbd{\#+KEYWORD} or \kbd{<<<target>>>} line,
750press \kbd{C-c C-c} with the cursor still in the line to update. 766press \kbd{C-c C-c} with the cursor still in the line to update.
751 767
752$^3$ Keybinding affected by {\tt org-support-shift-select} and {\tt 768$^3$ Keybinding affected by {\tt org-support-shift-select} and
753 org-replace-disputed-keys}. 769 {\tt org-replace-disputed-keys}.
754 770
755\copyrightnotice 771\copyrightnotice
756 772
diff --git a/etc/tutorials/TUTORIAL.bg b/etc/tutorials/TUTORIAL.bg
index 3f8ea6e2c45..e8300d26653 100644
--- a/etc/tutorials/TUTORIAL.bg
+++ b/etc/tutorials/TUTORIAL.bg
@@ -625,7 +625,7 @@ C-f. .
625 . 625 .
626 626
627>> C-x b *Messages* <Return>, 627>> C-x b *Messages* <Return>,
628 . C-x C-b TUTORIAL <Return>, 628 . C-x b TUTORIAL <Return>,
629 . 629 .
630 630
631 631
diff --git a/etc/tutorials/TUTORIAL.es b/etc/tutorials/TUTORIAL.es
index 1af1b97537c..7fb7ac2c2a3 100644
--- a/etc/tutorials/TUTORIAL.es
+++ b/etc/tutorials/TUTORIAL.es
@@ -630,7 +630,7 @@ contiene los mensajes que han aparecido en la lnea de abajo durante
630su sesin de Emacs. 630su sesin de Emacs.
631 631
632>> Teclee C-x b *Messages* <Return> para ver el buffer de mensajes. 632>> Teclee C-x b *Messages* <Return> para ver el buffer de mensajes.
633 Luego teclee C-b TUTORIAL <Return> para regresar a este tutorial. 633 Luego teclee C-x b TUTORIAL <Return> para regresar a este tutorial.
634 634
635Si hace cambios al texto de un archivo, y luego encuentra otro 635Si hace cambios al texto de un archivo, y luego encuentra otro
636archivo, esto no guarda el primer archivo. Sus cambios permanecern 636archivo, esto no guarda el primer archivo. Sus cambios permanecern
diff --git a/etc/tutorials/TUTORIAL.he b/etc/tutorials/TUTORIAL.he
new file mode 100644
index 00000000000..8c376314d2e
--- /dev/null
+++ b/etc/tutorials/TUTORIAL.he
@@ -0,0 +1,1038 @@
1שיעור ראשון בשימוש ב־Emacs. זכויות שימוש ראה בסוף המסמך.
2
3פקודות רבות של Emacs משתמשות במקש CONTROL (לפעמים הוא מסומן ב־CTRL או CTL)
4או במקש META (לפעמים מסומן EDIT או ALT). במקום לציין את כל השמות האפשריים
5בכל פעם, נשתמש בקיצורים הבאים:
6
7‏<תו>-C משמעותו לחץ והחזק מקש CONTROL ואז הקש על מקש <תו>.
8 לדוגמא, C-f משמעותו: לחץ והחזק CONTROL והקש על f.
9‏<תו>-M משמעותו לחץ והחזק מקש META או EDIT או ALT ואז הקש על מקש <תו>.
10 אם במקלדת אין אף אחד ממקשי META או EDIT או ALT, אפשר להקיש
11 ולשחרר מקש ESC ואז להקיש <תו>. אנו נכתוב <ESC> עבור מקש ESC.
12
13הערה חשובה: כדי לצאת מ־Emacs יש להקיש C-x C-c (שני תוים, משמאל לימין).
14כדי להפסיק פקודה באמצע ההקשה, יש להקיש C-g.
15המחרוזת ">>" בקצה הימני מסמנת הוראות עבורכם כדי לנסות להשתמש בפקודה כלשהי.
16לדוגמה:
17<<שורות ריקות תתווספנה סביב השורה הבאה ע"י help-with-tutorial>>
18[אמצע העמוד הושאר ריק למטרות לימודיות. הטקסט ממשיך להלן]
19>> הקישו עתה C-v (הצג העמוד הבא) על־מנת להתקדם לעמוד הבא. (קדימה, נסו
20 זאת ע"י לחיצה והחזקה של מקש CONTROL והקשה על v.)
21 מעתה והלאה, עליכם לעשות זאת בכל פעם שתסיימו לקרוא את המוצג על המסך.
22
23שימו לב לחפיפה של שתי שורות כאשר אתם עוברים ממסך למשך, מה שמבטיח רציפות
24מסוימת בעת קריאת הטקסט.
25
26דבר ראשון שעליכם ללמוד הוא כיצד לנוע ממקום אחד למשנהו בתוך הטקסט. אתם
27כבר יודעים כיצד להתקדם לעמוד הבא, עם C-v. לחזרה לעמוד הקודם הקישו M-v
28(החזיקו מקש META והקישו v או הקישו ‭<ESC>v‬ אם אין במקלדת מקש META
29או EDIT או ALT).
30
31>> נסו עתה כמה פעמים להקיש M-v ואחר־כך C-v.
32
33
34* סיכום עד כאן
35--------------
36
37לשם תנועה בעמודים שלמים וצפייה בהם, השתמשו בפקודות הבאות:
38
39 ‏C-v התקדם לעמוד הבא
40 ‏M-v חזור לעמוד הקודם
41 ‏C-l נקה תצוגה והצג מחדש את הטקסט,
42 כך שהטקסט ליד הסמן יימצא במרכז התצוגה
43 (שימו לב: CONTROL-L ולא CONTROL-1.)
44
45>> מצאו את הסמן על־גבי התצוגה וזכרו את הטקסט לידו. לאחר מכן הקישו C-l.
46 מצאו את הסמן שנית ושימו לב שהוא עדיין ליד אותו הטקסט, אבל עכשיו
47 הוא במרכז התצוגה.
48 אם תקישו C-l שוב, קטע הטקסט הזה יזוז לקצה העליון של התצוגה. הקישו
49 C-l שוב והוא יזוז לתחתית התצוגה.
50
51גם מקשי PageUp ו־PageDn, אם הם קיימים במקלדת שלכם, יכולים לשמש לתנועה
52בעמודים שלמים, אולם השימוש ב־C-v ו־M-v יעיל יותר.
53
54* תנועת סמן בסיסית
55------------------
56
57תנועה בעמודים שלמים הינה שימושית, אבל כיצד ניתן להגיע למקום ספציפי
58בתוך הטקסט שעל־גבי התצוגה?
59
60ניתן לעשות זאת בכמה דרכים. אפשר למשל להשתמש במקשי החצים, אולם יהיה
61זה יעיל יותר אם תחזיקו את הידיים מעל החלק הסטנדרטי של המקלדת ותשתמשו
62בפקודות C-p, C-b, C-f ו־C-n. פקודות אלו שוות ערך לארבעת מקשי החצים,
63כדלקמן:
64
65 שורה קודמת, C-p
66 :
67 :
68 קדימה, C-f ... מיקום סמן נוכחי ... אחורה, C-b
69 :
70 :
71 השורה הבאה, C-n
72
73>> השתמשו במקשי C-n ו־C-p על־מנת להגיע לשורה האמצעית של הדיאגרמה.
74 הקישו C-l כדי למרכז את הדיאגרמה על־גבי התצוגה.
75
76קל יותר לזכור את המקשים הללו באמצעות המלים שהם מייצגים:
77P מ־previous (קודם), N מ־Next (הבא), B מ־Backward (אחורה)
78ו־F מ־Forward (קדימה). מקשי התנועה הבסיסיים הללו ישמשו אתכם כל הזמן.
79
80>> הקישו C-n כמה פעמים כדי למקם את הסמן בשורה זו.
81
82>> הניעו את הסמן בתוך השורה עם C-f ואחר־כך למעלה עם C-p.
83 שימו לב מה עושה C-p כאשר הסמן נמצא באמצע השורה.
84
85כל שורה של טקטס מסתיימת בתו מיוחד הנקרא Newline. תו זה מפריד בין
86השורה לזו שאחריה. (בדרך כלל, השורה האחרונה בקובץ תסתיים אף היא
87ב־Newline, אך Emacs אינו זקוק לכך.)
88
89>> נסו C-b בתחילת שורה. הוא יגרום לסמן לנוע לסוף השורה הקודמת. זאת,
90 משום שהוא נע אחורה וחולף על־פני תו ה־Newline.
91
92גם C-f יכול לחלוף על־פני Newline, בדיוק כמו C-b.
93
94>> הקישו C-b עוד כמה פעמים כדי לקבל הרגשה היכן נמצא הסמן.
95 עתה הקישו C-f מספר פעמים הדרוש לשוב לסוף השורה. ואז הקישו
96 C-f עוד פעם אחת כדי לנוע לתחילת השורה הבאה.
97
98כשהסמן יוצא מגבולות הטקסט המוצג, חלקי הטקסט מעבר לחלק המוצג נכנסים
99לתצוגה. לזה קוראים "גלילה". גלילה מאפשרת ל־Emacs להניע את הסמן למקום
100כלשהו בטקסט מבלי שהסמן ייעלם מהתצוגה.
101
102>> נסו להניע את הסמן אל מחוץ לתצוגה ע"י הקשת C-n ושימו לב למה שקורה.
103
104אם תנועה תו־תו איטית מדי, תוכלו לנוע מילים שלמות. M-f ‏(META-f) מזיז
105את הסמן מילה אחת קדימה ואילו M-b זז מילה אחורה.
106
107>> הקישו M-f ו־M-b מספר פעמים.
108
109אם הסמן נמצא באמצע מילה, M-f זז לסוף המילה. אם הסמן נמצא בין שתי מלים,
110M-f עובר את המילה הבאה ונעצר בסופה. M-b פועל באופן דומה בכיוון הפוך.
111
112>> הקישו עתה M-f ו־M-b פעמים אחדות, וגם C-f ו־C-b פה ושם כדי שתוכלו
113 להתרשם מהתוצאה של M-f ו־M-b במקומות שונים בתוך ובין המלים.
114
115שימו לב להקבלה שבין C-f ו־C-b מצד אחד ו־M-f ו־M-b מהצד השני. לעתים
116קרובות מאד מקשים עם META משמשים לפעולות הקשורות ליחידות של שפה (מלים,
117משפטים, פסקאות) ואילו מקשים עם CONTROL פועלים על יחידות בסיסיות שאינן
118תלויות בסוג הטקסט שהינכך עורכים (תוים, שורות, וכד').
119
120ההקבלה הזאת קיימת גם לגבי שורות ומשפטים: C-a ו־C-e נעים לתחילת השורה
121וסופה, בהתאמה, ואילו M-a ו־M-e נעים לתחילת המשפט וסופו.
122
123>> נסו עתה שתי הקשות על C-a ואחר־כך שתי הקשות על C-e.
124 נסו שני M-a ואחר־כך שני M-e.
125
126שימו לב שחזרה על C-a אינה עושה דבר, ואילו כל הקשה חוזרת על M-a מניעה
127את הסמן במשפט נוסף. אמנם אין כאן אנלוגיה מושלמת, אבל התוצאה נראית
128טבעית בשני המקרים.
129
130מקום הסמן בתוך הטקסט נקרא "point" ("נקודה"). במלים אחרות, הסמן מראה
131את מיקומו של "point" בתוך הטקסט.
132
133הנה סיכום של פקודות פשוטות להנעת הסמן, כולל פקודות שנעות במלים
134ומשפטים שלמים:
135
136 ‏C-f נוע תו אחד קדימה
137 ‏C-b נוע תו אחד אחורה
138
139 ‏M-f נוע מילה קדימה
140 ‏M-b נוע מילה אחורה
141
142 ‏C-n נוע לשורה הבאה
143 ‏C-p נוע לשורה הקודמת
144
145 ‏C-a נוע לתחילת השורה
146 ‏C-e נוע לסוף השורה
147
148 ‏M-a נוע קדימה לסוף המשפט
149 ‏M-e נוע אחורה לתחילת המשפט
150
151>> נסו את כל הפקודות הללו מספר פעמים, לשם תרגול.
152 אלו הן הפקודות הנפוצות ביותר.
153
154שתי פקודות תנועה חשובות אחרת הן ‭M-<‬ ‏(META פחות), אשר נעה לתחילת
155הטקסט, ו־‭M->‬ ‏(META יותר), אשר נעה לסוף הטקסט.
156
157ברוב המקלדות המקש ">" נמצא מעל הפסיק, לכן כדי להקישו יש צורך ללחוץ
158ולהחזיק מקש Shift. באופן דומה יש ללחוץ על Shift כדי להקיש ‭M-<‬כי
159אחרת היה יוצא M-פסיק.
160
161>> נסו עתה ‭M-<‬ כדי להגיע לתחילת השיעור.
162 אחר־כך הקישו C-v מספר פעמים, עד שתגיעו לכאן.
163
164>> עכשיו נסו ‭M->‬ כדי להגיע לסוף השיעור.
165 לאחר מכן הקישו M-v כמה פעמים כדי לחזור לכאן.
166
167ניתן להזיז את הסמן גם בעזרת מקשי החצים, אם הם קיימים במקלדת שלכם.
168אבל אנחנו ממליצים ללמוד להשתמש ב־C-b, C-f, C-n ו־C-p משלוש סיבות.
169קודם כל, הם יעבדו עם כל מקלדת. שנית, כשתתרגלו לעבוד עם Emacs, תראו
170כי השימוש במקשים אלו מהיר יותר מהשימוש בחצים (מכיון שאין צורך להזיז
171את היד מהחלק העיקרי של המקלדת). ושלישית, כשהמקשים הללו יהפכו להרגל,
172יהיה לכם קל יותר ללמוד פקודות מתקדמות יותר של תנועת הסמן.
173
174רוב הפקודות של Emacs מקבלות ארגומנט נומרי; עבור רוב הפקודות הארגומנט
175משמש כמונה של מספר החזרות על הפקודה. כדי לספק ארגומנט לפקודה, יש להקיש
176C-u ואחר־כך ספרות, וזאת לפני שמקישים את הפקודה עצמה. עם במקלדת קיים
177מקש META (או EDIT או ALT), יש גם אפשרות אחרת לציין ארגומנט נומרי:
178הקישו את הספרות תוך כדי החזקת מקש META. אנו ממליצים על C-u משום שהוא
179יעבוד עם כל מקלדת. הארגומנט הנומרי נקרא גם "ארגומנט קידומת" (prefix
180argument) משום מקישים אותו לפני הפקודה אליה הוא מתייחס.
181
182למשל, C-u 8 C-f מניע את הסמן 8 תוים קדימה.
183
184>> נסו להקיש C-n או C-p עם ארגומנט נומרי, כדי להזיז את הסמן אל שורה
185 מסוימת בפקודה אחת בלבד.
186
187רוב הפקודות מפרשות את הארגומנט הנומרי כמונה חזרות, אבל פקודות מסוימות
188משתמשות בו בצורות אחרות. כמה פקודות (אבל אף אחת מבין אלו שלמדנו עד כה)
189משתמשות בו כדגלון -- נוכחותו של הארגומנט, ללא קשר לערכו המספרי, גורמת
190לפקודה להתנהג קצת אחרת.
191
192‏C-v ו־M-v יוצאים מהכלל הזה באופן אחר. כשפקודות אלו מקבלות ארגומנט,
193הן גוללים את התצוגה כמספר הזה של שורות, ולא בדפים. למשל, C-u 8 C-v
194יגלול את התצוגה ב־8 שורות.
195
196>> נסו עתה להקיש C-u 8 C-v.
197
198כתוצאה, התצוגה היתה צריכה לזוז ב־8 שורות. אם ברצונכם לגלול בחזרה,
199אפשר להשיג זאת ע"י מתן ארגומנט ל־M-v.
200
201אם הפעלתם את Emacs על־גבי מערכת חלונאית כגון X או MS-Windows, אתם
202צריכים לראות פס צר וגבוה, ששמו פס גלילה (scroll bar) בצידו של החלון
203של Emacs. (שימו לב שבשני צידי החלון קיימים פסים נוספים. אלה נקראים
204"השוליים" -- "fringes" -- ומשמשים להצגת סימני המשך שורה וסימונים
205אחרים. פס הגלילה, לעומתם, מופיע רק בצד אחד והוא הכי קרוב לקצה החלון
206בצד ההוא.)
207
208>> נסו עתה להקליק בכפתור האמצעי של העכבר בחלק העליון של האזור המודגש
209 של פס הגלילה. פעולה זו אמורה לגלול את הטקסט בשיעור שתלוי במקום בו
210 הקלקתם.
211
212>> נסו לגרור את העכבר מעלה ומטה, תוך כדי לחיצה על הכפתור האמצעי.
213 כתוצאה, Emacs יגלול את הטקסט מעלה ומטה בהתאם לתנועת העכבר.
214
215אם העכבר שלכם מצויד בגלגל, תוכלו להשתמש גם בו לגלילת הטקסט.
216
217* אם Emacs מפסיק להגיב
218----------------------
219
220אם Emacs מפסיק להגיב לפקודות, תוכלו להפסיק אותו בבטחה ע"י הקשת C-g.
221פקודות שביצוען מתארך אף הן ניתנות להפסקה בעזרת C-g.
222
223בנוסף, תגרום הקשת C-g לביטול הארגומנט הנומרי או תחילת הפקודה שטרם
224השלמתם להקיש והתחרטתם.
225
226>> הקישו C-u 100 כדי לציין ארגומנט של 100, ולאחר מכן C-g. עתה הקישו
227 C-f. הוא צריך לנוע תו אחד בלבד, שכן ביטלתם את הארגומנט בעזרת C-g.
228
229אם הקשתם <ESC> בטעות, ניתן לבטלו בעזרת C-g.
230
231* פקודות מנוטרלות
232-----------------
233
234מספר פקודות ב־Emacs מנוטרלות בכוונה כדי שמשתמשים מתחילים לא יפעילו
235אותן בדרך מקרה.
236
237אם תקישו את אחת הפקודות הללו, Emacs יציג הודעה המתארת את הפקודה וישאל
238אם לבצע את הפקודה או לבטלה.
239
240אם אכן בכוונתכם לנסות את הפקודה, הקישו <SPC> (מקש הרווח) בתשובה לשאלה.
241בדרך כלל, אם אינכם מעוניינים לבצע את הפקודה המנוטרלת, הקישו "n" בתשובה
242לשאלה הזו.
243
244* חלונות
245--------
246
247תצוגת Emacs יכולה לכלול יותר מחלון אחד, כשכל אחד מהם מציג טקסט משלו.
248מאוחר יותר נסביר כיצד להשתמש בחלונות מרובים. כעת ברצוננו להסביר כיצד
249להפטר מחלונות מנותרים ולחזור לעריכה בחלון יחיד. אין דבר פשוט מזה:
250
251 ‏C-x 1 חלון אחד בלבד (כלומר, סגור את כל החלונות האחרים).
252
253כדי להפעיל פקודה זו, הקישו CONTROL-x ולאחריו את הספרה 1. הפקודה C-x 1
254מרחיבה את החלון המציג את הסמן כך שהוא תופס את כל שטח התצוגה. הפקודה
255מבטלת את שאר החלונות.
256
257>> הניעו את הסמן לתוך שורה זו והקישו C-u 0 C-l.
258>> עתה הקישו CONTROL-h k CONTROL-f.
259 שימו לב כיצד החלון הנוכחי מצטמצם ומופיע חלון חדש שבו מוצג
260 התיעוד של הפקודה CONTROL-f.
261
262>> הקישו C-x 1 ושימו לב שהחלון עם ההסבר על C-f נעלם.
263
264פקודה זו שונה מכל שאר הפקודות שלמדנו עד כה בכך שהיא מכילה שני תוים.
265היא מתחילה עם התו CONTROL-x. פקודות רבות מאד מתחילות ב־CONTROL-x; חלק
266גדול מהן עוסקות בחלונות, קבצים, חוצצים ונושאים דומים אחרים. פקודות אלו
267מכילות שנים, שלושה ואפילו ארבעה תוים.
268
269
270* הכנסה ומחיקה
271--------------
272
273אם ברצונכם להכניס טקסט, פשוט הקישו על המקשים המתאימים. תוים רגילים,
274כגון A, א, 7, * וכד' מתפרשים ע"י Emacs כטקסט ומיד מתווספים לטקסט
275הקיים. הקישו <Return> (מקש חזרת גרר) כדי להכניס את תו השורה החדשה
276(Newline).
277
278למחיקת התו האחרון שהקשתם הקישו <DelBack>. המקש שאנו קוראים לו <DelBack>
279יכול להתקרא בשמות שונים -- "Delete", "DEL" או "Backspace". בדרך כלל
280זהו מקש גדול ובולט שנמצא לא הרחק ממקש <Return>, והוא משמש אתכם למחיקת
281התו אחרון גם בתוכניות אחרות, לא רק ב־Emacs.
282
283אם קיים במקלדת שלכם מקש גדול שעליו רשום <Backspace>, אז זהון המקש אשר
284ישמש כ־<DelBack>. גם אם יהיה מקש אחר המסומן ב־"Delete" במקום אחרת זה
285אינו ה־<DelBack> שלכם.
286
287באופן כללי יותר, <DelBack> מוחק את התו שקודם למיקום הסמן.
288
289>> הקישו עתה מספר תוים, ואחר־כך מחקו אותם ע"י הקשות אחדות
290 על <DelBack>. אל תחששו לשנות את הקובץ הזה -- העותק המקורי
291 של השיעור יישאר ללא שינוי. אתם עובדים על העותק האישי שלכם.
292
293כאשר שורה של טקסט נעשית ארוכה משורה אחת של תצוגה, חלק מהטקסט ממשיך
294בשורת תצוגה נוספת, היא "שורת ההמשך". תו לוכסן ("/") בסוף השורה (או
295חץ עקלקל קטן באזור השוליים -- "fringe") מסמל שלשורה יש שורת המשך.
296
297>> הקישו טקסט עד שתגיעו לקצה השורה, ואז תמשיכו להקיש עוד טקסט.
298 כתוצאה, תראו שמופיעה שורת המשך.
299
300>> עתה הקישו <DelBack> על־מנת למחוק טקסט עד שהשורה תיעשה קצרה מספיק
301 ותתאים לשורה בודדת על־גבי התצוגה. שורת ההמשך תיעלם.
302
303ניתן למחוק את תו ה־Newline כמו כל תו אחר. מחיקת ה־Newline בין שתי
304שורות תמזג את השורות לשורה אחת. אם השורה המשולבת תהיה ארוכה מרוחב
305התצוגה, היא תוצג עם שורת המשך.
306
307>> הניעו את הסמן לתחילת השורה והקישו <DelBack>. כתוצאה, השורה תתמזג
308 אם קודמתה.
309
310>> עתה הקישו <Return> כדי להחזיר את ה־Newline שמחקתם.
311
312זכרו כי לרוב הפקודות ב־Emacs אפשר לציין מספר חזרות. גם תוי טקסט
313שייכים לקבוצת פקודות זו. חזרה על תו טקסט מכניסה אותו מספר פעמים.
314
315>> נסו זאת עכשיו -- הקישו ‪C-u 8 *‬ על־מנת להכניס ********.
316
317ובכן, למדתם את האופן הבסיסי ביותר להדפיס משהו ב־Emacs ולתקן שגיאות.
318אפשר למחוק גם מלים ואף שורות שלמות. להלן סיכום פקודות המחיקה:
319
320 ‏<Delback> מחק תו שלפני הסמן
321 ‏C-d מחק תו מתחת או אחרי הסמן
322
323 ‏‭M-<Delback>‬ גזור מילה שלפני הסמן
324 ‏M-d גזור מילה שאחרי הסמן
325
326 ‏C-k גזור טקסט מהסמן ועד סוף השורה
327 ‏M-k גזור טקסט עד סוף המשפט הנוכחי.
328
329שימו לב שהיחס בין <Delback> ו־C-d לעומת M-<Delback>‎ ו־M-d ממשיכים את
330ההקבלה שבין C-f ו־M-f (אמנם <Delback> איננו תו בקרה, בוא נזניח את
331הנקודה הזו לעת־עתה). C-k ו־M-k דומים ל־C-e ו־M-e, אם נקביל שורות
332למשפטים.
333
334בנוסף, קיימת שיטה אחידה שמאפשרת לגזור קטע כלשהו של טקסט. לשם כך, תגיעו
335לקצה האחד של חלק הטקסט והקישו C-@‎ או C-<SPC>‎ (אחד מבין שני אלו).
336(<SPC> הוא מקש הרווח.) עתה הניעו את הסמן לקצה השני של חלק הטקסט והקישו
337C-w. כתוצאה, כל הטקסט בין שני המקומות הללו ייגזר.
338
339>> הניעו את הסמן אל האות ב בתחילת הפיסקה הקודמת.
340>> הקישו C-<SPC>‎. ‏Emacs צריך להציג הודעה האומרת "Mark set" בתחתית
341 התצוגה.
342>> הניעו את הסמן אל האות צ בשורה השניה של הפיסקה.
343>> הקישו C-w. בכך תגזרו את חלק הטקסט שמתחיל ב־ב ומסתיים לפני ה־צ.
344
345ההבדל בין "מחיקה" ("deletion") ו־"גזירה" ("killing") הוא שהטקסט
346"הגזור" ניתן לאחזור ולהכנסה (במקום כלשהוא בטקסט), ואילו טקסט "מחוק" לא
347ניתן להכניס מחדש בשיטה זו. (אבל ניתן לבטל את מחיקה -- ראה להלן.) אחזור
348הטקסט הגזור נקרא "הדבקה" ("yanking"). באופן כללי, פקודות אשר עלולות
349להעלים כמויות גדולות של טקסט תמיד גוזרות את הטקסט (כך שניתן יהיה בקלות
350לשחזרו) בעוד הפקודות שמורידות תו בודד או שורות ריקות ותוי רווח --
351מוחקות (כך שלא ניתן להדביק את הטקסט שנמחק). כך, <Delback> ו־C-d מוחקים
352כאשר מפעילים אותם ללא ארגומנט, אבל גוזרים כאשר מפעילים אותם עם ארגומנט.
353
354>> הניעו את הסמן לתחילת שורה שאינה ריקה. אחר־כך הקישו C-k כדי לגזור
355 את כל הטקסט של אותה שורה.
356>> הקישו C-k פעם נוספת. שימו לב שהוא גוזר את ה־Newline שבסוף השורה.
357
358שימו לב ש־C-k בודד גוזר את תכולת השורה, ו־C-k נוסף גוזר גם את השורה
359עצמה וגורם לשאר השורות לנוע כלפי מעלה. C-k מפרש את הארגומנט הנומרי
360באופן מיוחד: הוא גוזר כמספר הזה שורות, כולל ה־Newlines שלהן. זה שונה
361מסתם הפעלה חוזרת: C-u 2 C-k גוזר שתי שורות כולל ה־Newlines שלהן,
362ואילו הקשה על C-k פעמיים לא עושה כן.
363
364אחזור הטקסט שגזרנו נקרא "הדבקה" ("yanking"). (תחשבו על זה כעל שליפה
365של טקסט מתהום הנשייה אליה הוא נלקח.) ניתן להדביק את הטקסט שגזרתם
366באותו מקום ממנו נגזר או במקום אחר כלשהו בתוך הטקסט שאתם עורכים, או
367אפילו בקובץ אחר. ניתן להדביק את אותו הטקסט מספר פעמים ובכך ליצור
368עותקים מרובים ממנו. תוכניות עריכה אחרות משתמשות במונחים "cutting"
369ו־"pasting" במקום "killing" ו־"yanking" (ראה את מילון המונחים בפרק
370ה־"Glossary" של מדריך למשתמשי Emacs).
371
372הפקודה להדבקה היא C-y. היא מכניסה את הטקסט הגזור במקום הנוכחי של הסמן.
373
374>> נסו זאת: הקישו C-y כדי לאחזר טקסט שגזרתם קודם לכן.
375
376אם תקישו C-k מספר פעמים ברצף, כל הטקסט שגזרתם בדרך זו נשמר ביחד, כך
377ש־C-y בודד ידביק את כולו בבת אחת.
378
379>> עשו זאת עתה: הקישו C-k כמה פעמים.
380
381עכשיו לאחזור הטקסט שגזרתם:
382
383>> הקישו C-y. אחר־כך הניעו את הסמן כמה שורות כלפי מטה והקישו C-y שוב.
384 כפי שראיתם, כך תוכלו להעתיק חלק מהטקסט ממקום למקום.
385
386מה לעשות אם יש לכם טקסט להדבקה, אבל בינתיים גזרתם טקסט אחר? C-y ידביק
387רק את הגזירה האחרונה. אולם הטקסט שגזרתם קודם לכן אינו הלך לאיבוד. ניתן
388לאחזרו בעזרת הפקודה M-y. אחרי שהקשתם C-y שמדביק את הטקסט שגזרתם
389לאחרונה, הקשה על M-y מחליפה את הטקסט המודבק בטקסט שגזרתם בפעם לפני
390האחרונה. הקשה חוזרת ונשנית על M-y מביאה טקסט שגזרתם בפעמים קודמות יותר
391ויותר. כשתראו שהטקסט המודבק הוא מה שרציתם להדביק, תפסיקו להקיש M-y
392ותמשיכו בעריכה כרגיל. אין צורך בשום פקודה מיוחדת לשם כך.
393
394אם תקישו M-y מספיק פעמים בזו אחר זו, תגיעו חזרה לנקודת ההתחלה (טקסט
395שגזרתם לאחרונה).
396
397>> גזרו שורה, אחר־כך תניעו את הסמן אנה ואנה, ולבסוף גזרו שורה נוספת.
398 הקישו C-y כדי לאחזר את השורה השניה שגזרתם.
399 עתה הקישו M-y והשורה שאחזרתם תוחלף בשורה הראשונה שגזרתם.
400 הקישו M-y מספר פעמים נוספות ושימו לב לתוצאות. המשיכו להקיש M-y
401 עד שהשורה השניה שגזרתם תופיע שוב, ואז תמשיכו עוד מספר פעמים.
402 אם תרצו, תוכלו לנסות M-y עם ארגומנט חיובי או שלילי.
403
404
405* ביטול פעולות
406--------------
407
408אם שיניתם את הטקסט ואז החלטתם שהשינוי היה טעות, תוכלו לבטל את השינוי
409בעזרת פקודת הביטול, C-x u.
410
411בדרך כלל, C-x u מבטל את השינויים שבוצעו ע"י פקודה אחת. הפעלה חוזרת של
412C-x u ברצף מבטלת שינויים של פקודות קודמות, אחת אחרי השניה.
413
414שני יוצאים מהכלל הזה: פקודות שאינן משנות טקסט (למשל פקודות הנעת הסמן
415ופקודות גלילה) אינן נספרות ותוים שמכניסים את עצמם מקובצים בקבוצות של
416עד 20, כדי להקטין את מספר הפעמים שיש להקיש C-x u כדי לבטל הכנסת טקסט.
417
418>> גזרו שורה זו עם C-k, אחר־כך הקישו C-x u והיא תופיע שוב.
419
420‏C-_‎ הינה דרך חלופית להפעיל את פקודת הביטול. היא פועלת בדיוק כמו C-x u,
421אבל קלה יותר להקשה מספר פעמים בזו אחר זו. החסרון של C-_‎ הוא שבכמה
422מקלדות לא ברור מאליו כיצד להקיש זאת. זו הסיבה לקיומו של C-x u. במקלדות
423אחדות ניתן להקיש C-_‎ ע"י החזקת CONTROL והקשת לוכסן /.
424
425ארגומנט נומרי ל־C-_‎ או ל־C-x u משמש כמספר החזרות על הפקודה.
426
427ניתן לבטל מחיקה של טקסט בדיוק כמו שניתן לבטל גזירה. ההבדלים בין מחיקה
428וגזירה משפיעים על יכולתכם להדביק את הטקסט הגזור עם C-y; הם אינם חשובים
429לעניין הביטול.
430
431
432* קבצים
433-------
434
435על־מנת שהטקסט שערכתם יישמר, יש לשים אותו בקובץ. אחרת, הוא ייעלם ברגע
436שתצאו מ־Emacs. כדי לשים את הטקס בקובץ, יש "לפתוח" ("find") את הקובץ
437לפני שמתחילים להקיש טקסט. (שם אחר לכך הוא "לפקוד" את הקובץ - "visit".)
438
439פתיחת הקובץ משמעותה שתוכן הקובץ מוצג בתוך Emacs. מבחינות רבות הדבר
440דומה לעריכת הקובץ עצמו. אולם, השוניים שלכם בתוך Emacs אינם הופכים חלק
441מהקובץ עד שאתם "שומרים" את הקובץ. זאת, כדי להימנע מיצירת קובץ שאינו
442שלם במערכת שלא כרצונכם. אפילו אם אתם שומרים את הקובץ, Emacs משאיר את
443התוכן המקורי בשם שונה למקרה שמאוחר יותר תחליטו שהשינויים נעשו בטעות.
444
445אם תביטו בחלק התחתון של התצוגה, תראו שם שורה בולטת שמתחילה ומסתיימת
446במקפים וליד הקצה השמאלי שלה כתוב "TUTORIAL.he". חלק זה של התצוגה בדרך
447כלל מציג את שם הקובץ אותו אתם פוקדים. כרגע אתם פוקדים קובץ בשם
448"TUTORIAL.he" שהוא עותק הטיוטה האישי שלכם של שיעור השימוש ב־Emacs.
449פתיחת קובץ כלשהו ב־Emacs תציג את שמו של הקובץ במקום זה.
450
451היבט אחד מיוחד של פתיחת קובץ הוא שיש לציין את שם הקובץ אשר ברצונכם
452לפתוח. אנו אומרים שהפקודה "קוראת ארגומנט מהמסוף" (במקרה זה הארגומנט
453הוא שם הקובץ). אחרי שתקישו את הפקודה
454
455 ‏C-x C-f פתח קובץ
456
457‏Emacs מבקש שתקישו את שם הקובץ. שם הקובץ שתקישו מופיע בשורה התחתונה של
458התצוגה. שורה זו נקראת "מיני־חוצץ" ("minibuffer") כשהיא משמשת לסוג זה
459של קלט. ניתן להשתמש בכל פקודות העריכה הרגילות של Emacs כשמקישים את
460שם הקובץ בחוצץ זה.
461
462אם טרם סיימתם להקיש את שם הקובץ (או כל סוג אחר של קלט במיני־חוצץ),
463ניתן לבטל את הפקודה בעזרת C-g.
464
465>> הקישו C-x C-f ואחר־כך הקישו C-g. זה מבטל את המיני־חוצץ וגם מבטל
466 את הפקודה C-x C-f שהשתמשה במיני־חוצץ. התוצאה היא שאף קובץ לא נפתח.
467
468משסיימתם להקיש את שם הקובץ, הקישו <Return> לסיים את הקלט. או־אז תיגש
469C-x C-f לעבודה ותמצא ותפתח את הקובץ שבחרתם. המיני־חוצץ נעלם כאשר
470פקודת ה־C-x C-f תסיים את עבודתה.
471
472זמן קצר אחר־כך תוכן הקובץ יופיע על־גבי התצוגה ותוכלו לבצע בו שינויים.
473כשתחליטו לשמור את השינויים, הקישו את הפקודה הבאה:
474
475 ‏C-x C-s שמור את הקובץ
476
477פקודה זו שומרת בקובץ את הטקסט המוחזק בתוך Emacs. בפעם הראשונה שתפעילו
478פקודה זו, Emacs משנה את שם הקובץ המקורי לשם חדש כך שהמקור לא ילך
479לאיבוד. השם החדש נוצר ע"י הוספת "~" בסוף השם המקורי של הקובץ.
480
481כשהשמירה מסתיימת, Emacs מציג בשורה התחתונה את שם הקובץ שנשמר. נסו
482לשמור לעתים מזומנות על־מנת להימנע מלאבד יותר מדי מהעבודה שלכם אם המחשב
483ייפול (ראה להלן פיסקה על שמירה אוטומטית).
484
485>> הקישו C-x C-s כדי לשמור את העותק שלכם של השיעור.
486 כתוצאה, תופיע ההודעה "Wrote ... TUTORIAL.he" בתחתית התצוגה.
487
488ניתן לפתוח קובץ קיים על־מנת לצפות בו או לערוך אותו. ניתן גם לפתוח קובץ
489שאינו קיים. זו הדרך ליצור קבצים חדשים בעזרת Emacs: פתחו את הקובץ
490שיהיה תחילה ריק ואז התחילו להקיש טקסט לתוכו. כשתפעילו את פקודת השמירה,
491Emacs ייצור את הקובץ עם הטקסט שהקשתם. מאותו רגע ואילך, תוכלו לחשוב
492שהינכם עורכים קובץ קיים.
493
494
495* חוצצים
496--------
497
498אם תפתחו קובץ נוסף עם C-x C-f, הקובץ הראשון עדיין נשאר פתוח ב־Emacs.
499תוכלו לחזור אליו ע"י C-x C-f. כך תוכלו לפתוח מספר רב של קבצים.
500
501>> ניצור עתה קובץ בשם "foo" ע"י הקשת C-x C-f foo <Return>‎.
502 אחר־כך הכניסו קצת טקסט, ערכו אותו ולבסוף שמרו בקובץ "foo"
503 ע"י C-x C-s. עתה חזרו לשיעור בעזרת C-x C-f TUTORIAL.he <Return>‎.
504
505‏Emacs מחזיק כל קובץ בתוך יישות בשם "חוצץ" ("buffer"). פתיחת קובץ יוצרת
506חוצץ חדש בתוך Emacs. כדי לראות את רשימת החוצצים הקיימים בתוך Emacs,
507הקישו
508
509 ‏C-x C-b הצג רשימת כל החוצצים
510
511>> נסו את C-x C-b בנקודה זו.
512
513שימו לב שלכל חוצץ יש שם וכל חוצץ עשוי גם לציין את שם הקובץ שאת תוכנו
514הוא מחזיק. כל טקסט שאתם מקישים בחלון Emacs תמיד יהיה חלק של חוצץ
515כלשהו.
516
517>> הקישו C-x 1 כדי להפטר מרשימת החוצצים.
518
519כשקיימים מספר חוצצים, רק אחד מהם יכול להיות החוצץ "הנוכחי" בכל רגע
520נתון. זהו החוצץ בו אתם מבצעים עריכה באותו רגע. אם ברצונכם לערוך חוצץ
521אחר, עליכם "לעבור" חוצץ. עבור חוצצים שמתאימים לקבצים, ניתן לעשות זאת
522ע"י C-x C-f שיפקוד את הקובץ בשנית. אבל קיימת דרך פשוטה יותר: שימוש
523בפקודה C-x b. פקודה זו תחייב אותכם להקיש את שם החוצץ.
524
525>> הקישו C-x b foo <Return>‎ כדי לחזור לחוצץ "foo" אשר מחזיק טקסט של
526 הקובץ "foo". אחר־כך הקישו C-x b TUTORIAL.he <Return>‎ כדי לשוב
527 לשיעור זה.
528
529ברוב המקרים שם החוצץ זהה לשם הקובץ (ללא שם התיקיה שלו). אבל אין זה
530תמיד כך. רשימת החוצצים שנוצרת ע"י C-x C-b תמיד תציג את שמות כל החוצצים
531הקיימים ב־Emacs.
532
533כל טקסט שמוצג בחלון של Emacs הינו תמיד חלק של חוצץ כלשהו. קיימים
534חוצצים שאינם קשורים לשום קובץ. לדוגמא, החוצץ בשם "*Buffer List*" אינו
535מציג שום קובץ. זהו חוצץ המחזיק את רשימת החוצצים שנוצר ע"י C-x C-b.
536חוצץ בשם "*Messages*" אף הוא אינו קשור לשום קובץ; הוא מחזיק את ההודעות
537שהופיעו בשורה התחתונה במהלך עבודתכם בתוך Emacs.
538
539>> הקישו C-x b *Messages* <Return>‎ כדי לצפות בחוצץ של הודעות.
540 אחר־כך הקישו C-x b TUTORIAL.he <Return>‎ על־מנת לחזור לשיעור זה.
541
542אם עשיתם שינויים בטקסט של קובץ ואחר־כך פתחתם קובץ אחר, אין הדבר שומר
543את השינויים שעשיתם לקובץ הראשון. השינויים הללו נשארים בתוך Emacs, בתוך
544החוצץ של אותו קובץ. יצירתו ועריכתו של הקובץ הנוסף אינם משפיעים על
545החוצץ של הקובץ הראשון. דבר זה הוא שימושי, אך משמעותו היא שיש צורך
546בשיטה נוחה לשמור את החוצץ של הקובץ הראשון. היה זה מאד לא נוח אילו
547לשם כך הייתם צריכים לעבור לחוצץ ההוא בעזרת C-x C-f ואז לשמור עם
548C-x C-s. לכן קיימת פקודה
549
550 ‏C-x s שמור חוצצים אחדים
551
552‏C-x s עובר על כל החוצצים אשר מכילים שינויים שטרם נשמרו. לגבי כל חוצץ
553כזה הוא שואל אתכם האם לשמור אותו או לא.
554
555>> הכניסו שורה של טקסט ואחר־כך הקישו C-x s.
556 הוא צריך לשאול האם לשמור חוצץ בשם TUTORIAL.he.
557 השיבו בחיוב ע"י הקשה על "y".
558
559
560* הרחבת אוסף הפקודות
561--------------------
562
563מספר הפקודות ב־Emacs גדול בהרבה ממה שניתן להפעיל ע"י כל תוי ה־control
564וה־meta. כדי להתגבר על בעיה זו, Emacs משתמש בפקודות X המרחיבות (eXtend)
565את אוסף הפקודות הרגיל. פקודות הרחבה אלו הן שתים:
566
567 ‏C-x הרחבת תו. תו בודד שבא אחריו משלים את הפקודה.
568 ‏M-x הרחבה ע"י שם הפקודה. אחריו בא שם ארוך של פקודה.
569
570בעזרת שתי אלו ניתן להפעיל פקודות שימושיות שבהן משתמשים לעתים רחוקות
571יותר מאשר פקודות שלמדתם עד עכשיו. כמה מהן כבר ראיתם: C-x C-f לפתיחת
572קובץ, ו־C-x C-s לשמירת קובץ, לדוגמא. דוגמא נוספת היא פקודה לצאת
573מ־Emacs -- ‏C-x C-c. (כשאתם מפעילים C-x C-c, אל תדאגו לשינויים שטרם
574נשמרו; C-x C-c מציע לשמור כל קובץ ששיניתם לפני שהוא מסיים את Emacs.)
575
576אם אתם משתמשים בצג גרפי אשר תומך במספר תוכניות במקביל, אינכם זקוקים
577לפקודה מיוחדת כדי לעבור מ־Emacs לתוכנית אחרת. אפשר לעשות זאת בעזרת
578העכבר או פקודות של מנהל החלונות. אולם, כאשר אתם משתמשים בתצוגה
579טקסטואלית שמסוגלת להציג רק תוכנית אחת בו־זמנית, תצטרכו "להשעות"
580("suspend") את Emacs על־מנת לעבור לתוכנית אחרת.
581
582הפקודה C-z יוצאת מ־Emacs *באופן זמני* -- כך שתוכלו לשוב אליו מאוחר
583יותר ולהמשיך מאותה נקודה. כאשר Emacs רץ על תצוגת טקסט, C-z "משעה" את
584Emacs: הוא מחזיר אתכם לשורת הפקודות הבסיסית של מערכת ההפעלה ("shell"),
585אבל אינו מסיים את Emacs. ברוב המערכות, כדי להמשיך בעבודתכם ב־Emacs,
586תצטרכו להקיש את הפקודה "fg" או ‭"%emacs"‬.
587
588הרגע הנכון להשתמש ב־C-x C-c הוא כאשר אתם עומדים להתנתק (log out).
589כמו־כן, תצטרכו להשתמש בו כדי לצאת מ־Emacs שהופעל ע"י תוכניות אחרות
590כגון קריאת דואר אלקטרוני -- תוכניות אלו לא תמיד יודעות להסתדר עם
591השעיית Emacs.
592
593קיימות פקודות C-x רבות מאד. להלן רשימת אלו שכבר למדתם:
594
595 ‏C-x C-f פתח קובץ
596 ‏C-x C-s שמור קובץ
597 ‏C-x s שמור חוצצים אחדים
598 ‏C-x C-b הצג רשימת חוצצים
599 ‏C-x b החלף חוצץ
600 ‏C-x C-c צא מ־Emacs
601 ‏C-x 1 השאר רק חלון אחד ומחק כל השאר
602 ‏C-x u בטל פקודה אחרונה
603
604הרחבה ע"י שם הפקודה שימושית עם פקודות עוד יותר נדירות או פקודות
605ספציפיות רק לאופני פעולה (modes) מיוחדים. דוגמא לכך היא פקודה
606replace-string (החלף מחרוזת) אשר מחליפה מחרוזת אחת במשנה בכל החוצץ.
607אחרי שתקישו M-x, ‏Emacs מציג M-x בתחתית התצוגה ומחכה שתקישו את שם
608הפקודה, במקרה זה "replace-string". מספיק שתקישו "repl s<TAB>‎" ו־Emacs
609ישלים את השם המלא. (<TAB> הוא מקש Tab, בדרך כלל תמצאו אותו מעל מקש
610ה־CapsLock או Shift, ליד הקצה השמאלי של המקלדת.) סיימו את שם הפקודה
611ע"י הקשת <Return>.
612
613הפקודה להחלפת מחרוזת זקוקה לשני ארגומנטים -- המחרוזת שתוחלף וזו שתחליף
614אותה. סיימו הקשה של כל אחת מהן ע"י <Return>.
615
616>> הביאו את הסמן שתי שורות מתחת לשורה זו.
617 עתה הקישו M-x repl s<Return>changed<Return>altered<Return>‎.
618
619 שימו לב שהמילה "changed" בשורה זו שתנתה: זה עתה החלפתם את
620 המילה c-h-a-n-g-e-d במילה "altered" בכל מקום בו היא נמצאת אחרי
621 הסמן.
622
623
624* שמירה אוטומטית
625----------------
626
627שינויים שערכתם בקובץ אבל טרם שמרתם עלולים ללכת לאיבוד אם המחשב שלכם
628נתקע. על־מנת להגן עליכם מפני סכנה זו, Emacs שומר לעתים מזומנות כל קובץ
629שנמצא בעריכה. השמירה האוטומטית הזאת נעשית לקובץ נפרד ששמו מתחיל
630ומסתיים בתו #. לדוגמא, אם הינכם עורכים קובץ בשם "hello.c", קובץ השמירה
631האוטומטית שיווצר עבורו ייקרא "#hello.c#". שמירה רגילה של הקובץ על ידכם
632מוחקת את קובץ השמירה האוטומטית.
633
634אם המחשב אכן נתקע, תוכלו לנציל את השינויים שלא הספקתם לשמור. לשם כך,
635יש לפתוח את הקובץ כרגיל (את הקובץ בשמו המקורי, לא את קובץ השמירה
636האוטומטית), ואחר־כך להקיש M-x recover-file <Return>‎. כש־Emacs יבקש
637אישור, הקישו yes<Return>‎ כדי ש־Emacs ישחזר את הקובץ כפי שנשמר
638אוטומטית.
639
640
641* תצוגת הד
642----------
643
644אם Emacs מגלה שאתם מקישים פקודה לאט, הוא מציג את שהקשתם בתחתית התצוגה,
645באזור שנקרא "אזור תצוגת הד". אזור זה משתמש בשורה התחתונה של התצוגה.
646
647
648* שורת סטטוס
649------------
650
651השורה שמעל אזור תצוגת הד נקראת "שורת הסטטוס" (mode line). שורה זו
652מציגה משהו כמו:
653
654 -U:**- TUTORIAL.he 63% L651 (Fundamental)-----------------------
655
656שורה זו מציגה מידע חשוב לגבי מצבו של Emacs ולגבי הטקסט שנמצא בעריכה.
657
658אתם כבר יודעים מהי משמעותו של שם הקובץ -- זהו הקובץ שפתחתם. NN%‎ מציין
659את מיקומכם הנוכחי בתוך הטקסט, לאמור כי NN אחוזים מהטקסט קודמים לטקסט
660המוצג כרגע בחלון. אם המוצג בחלון כולל את תחילת הטקסט, תראו שם "Top"
661במקום "0% ". אם המוצג בחלון כולל את סוף הטקסט, תראו שם "Bot" ‏(bottom).
662אם הטקסט כל־כך קצר שכולו מוצג בחלון, שורת הסטטוס תציג "All".
663
664האות L והמספר שאחריה מציינים את המיקום הנוכחי בדרך אחרת: הם מראים את
665מספר השורה שבה נמצא הסמן.
666
667הכוכביות ליד הקצה השמאלי משמעותן כי שיניתם את הטקסט. מיד אחרי פתיחת
668הקובץ או אחרי שמירתו החלק הזה של שורת הסטטוס אינו מציג כוכביות, אלא רק
669מקפים.
670
671החלק שבתוך הסוגריים אומר לכם מהo אופני העריכה (editing modes) הפעילים
672כעת. ברירת המחדל היא Fundamental, האופן הבסיס, שבו אתם משתמשים כעת.
673זוהי דוגמא של "אופן עריכה ראשי" (major mode).
674
675ל־Emacs אופני עריכה ראשיים רבים ומגוונים. חלק מהם נועדו לעריכה של שפת
676תכנות מסוימת ו/או סוג מסוים של טקסט, כגון Lisp mode, Text mode וכד'.
677בכל רגע נתון רק אופן עיקרי אחד יכול להיות פעיל ושמו תמיד מצויין בשורת
678הסטטוס באותו מקום בו כרגע אתם רואים "Fundamental".
679
680כל אופן עיקרי גורם לכמה פקודות לפעול בצורה מיוחדת. למשל, ישנן פקודות
681ליצירת הערות בתוך תוכנית, והיות וכל שפת תכנות מגדירה את הפורמט של
682הערות בצורה אחרת, כל אופן עיקרי חייב להכניס הערות בצורה שמתאימה לשפה.
683כל אופן עיקרי הינו למעשה שם הפקודה שבעזרתה אפשר להפעיל את אותו האופן.
684למשל הפקודה להפעיל את האופן Fundamental הינה M-x fundamental-mode.
685
686אם בכוונתכם לערוך טקסט בשפה אנושית כלשהי, כמו הקובץ הזה, כדאי לכם
687להשתמש ב־Text mode.
688
689>> הקישו M-x text-mode <Return>‎.
690
691אל דאגה: אף אחת מפקודות Emacs שלמדתם עד כה משנה את התנהגותה באופן
692מהותי. עם זאת, שימו לב ש־M-f ו־M-b מתייחסים עכשיו ל־'גרש' כחלק מהמילה.
693לפני־כן, ב־Fundamental mode, ‏M-f ו־M-b התנהגו עם הגרש כמפריד בין
694מילים.
695
696אופנים ראשיים בדרך־כלל משנים קלות את התנהגות הפקודות: רוב הפקודות
697עדיין "עושות אותה עבודה" בכל האופנים הראשיים, אבל עושות אותה קצת אחרת.
698
699לצפיה בתיעוד של האופן הראשי הנוכחי יש להקיש C-h m.
700
701>> השתמשו ב־C-u C-v פעם אחת או יותר כדי להביא שורה זו לראשית התצוגה.
702>> עתה הקישו C-h m כדי לראות במה Text mode שונה מה־Fundamental mode.
703>> לבסוף, הקישו C-x 1 כדי לסלק את התיעוד מהתצוגה.
704
705אופנים ראשיים נקראים כך משום שקיימים גם אופני־משנה (minor modes).
706אופני משנה אינם מהווים חלופה לאופנים הראשיים, הם רק משנים אותם במקצת.
707כל אופן־משנה ניתן להפעלה או ביטול ללא תלות בכל שאר אופני המשנה וללא
708תלות באופן הראשי הנוכחי. לכן תוכלו להפעיל אופן־משנה אחד או יותר, או אף
709אופן־משנה.
710
711אחד מאופני־המשנה השימושיים ביותר, במיוחד לשם עריכת טקס בשפת־אנוש, הוא
712Auto Fill mode. כאשר אופן זה מופעל, Emacs אוטומטית פותח שורה חדשה
713בסיום מילה אם הטקסט שהקשתם ארוך מדי בשביל שורה אחת.
714
715להפעלת Auto Fill mode יש להקיש M-x auto-fill-mode <Return>‎. כאשר אופן
716זה מופעל, ניתן לבטלו ע"י M-x auto-fill-mode <Return>‎. זאת אומרת, פקודה
717זו מפעילה את האופן כשאינו פעיל ומבטלת אותו כשהוא פעיל. לפעולה זו
718קוראים "מיתוג" -- הפקודה "ממתגת" את האופן.
719
720>> הקישו עתה M-x auto-fill-mode <Return>‎. אחר־כך הקישו "שדגכ " (עם
721 הרווח בסוף) שוב ושוב עד שתיפתח שורה חדשה. הרווחים חשובים משום
722 ש־Auto Fill mode שובר שורות אך ורק ברווח שבין המלים.
723
724השוליים (margin) ש־Emacs שומר בדרך־כלל מתחילים אחרי 70 תווים, אבל ניתן
725לשנות הגדרה זו בעזרת הפקודה C-x f. פקודה זו מקבלת את ההגדרה החדשה של
726השוליים כארגומנט נומרי.
727
728>> הקישו C-x f עם ארגומנט של 20. (C-u 2 0 C-x f). אחר־כך הקישו טקסט
729 כלשהו ושימו לב ש־Emacs פותח שורות חדשות אחרי 20 תווים לכל היותר.
730 לבסוף, החזירו את הגדרת השוליים ל־70 ע"י שימוש חוזר ב־C-x f.
731
732אם ערכתם שינויים באמצע פסקה, Auto Fill mode לא ימלא שורות מחדש באופן
733אוטומטי.
734כדי למלא מחדש את כל הפסקה הקישו M-q ‏(META-q) כשהסמן נמצא בתוך
735הפסקה.
736
737>> הניעו את הסמן לתוך הפסקה הקודמת והקישו M-q.
738
739
740* חיפוש
741-------
742
743‏Emacs יכול לחפש מחרוזות (רצף של תווים או מילים) קדימה או אחורה בתוך
744הטקסט. חיפוש של מחרוזת הוא סוג של פקודה להנעת הסמן: הוא ממקם את הסמן
745היכן שנמצאה המחרוזת הבאה.
746
747החיפוש של Emacs הינו "מצטבר" ("incremental"). פירוש הדבר הוא שהחיפוש
748מתבצע במקביל להקשתכם את המחרוזת אותה ברצונכם למצוא.
749
750הפקודה להתחיל בחיפוש היא C-s לחיפוש קדימה ו־C-r לחיפוש אחורה. חכו! אל
751תפעילו אותן עדיין.
752
753כשתקישו C-s, תראו שבאזור תצוגת ההד יופיע הטקסט "I-search". זה אומר
754ש־Emacs נמצא במצב "חיפוש מצטבר" ("incremental search") והוא ממתין
755להקשתכם את המחרוזת אותה ברצונכם למצוא. הקשה על <Return> מסיימת את
756החיפוש.
757
758>> הקישו עתה C-s כדי להתחיל בחיפוש. לאט־לאט, אות־אות, הקישו את המילה
759 "סמן", עם הפסקה אחרי כל אות, ושימו לב להתנהגות הסמן.
760 זה עתה מצאתם את המילה "סמן" פעם אחת.
761>> הקישו C-s שוב, כדי למצוא את "סמן" במקומות נוספים בטקסט.
762>> הקישו <Delback> שלוש פעמים ושימו לב לתנועת הסמן בכל הקשה.
763>> הקישו <Return> לסיום החיפוש.
764
765האם שמתם לב למה שקרה? במהלך "חיפוש מצטבר" Emacs מנסה למצוא את המקום
766הבא בו מופיעה המחרוזת שהקשתם. כדי למצוא את המחרוזת במקום הבא, פשוט
767הקישו C-s פעם נוספת. אם המחרוזת אינה נמצאת בהמשך הטקסט, Emacs מצפצף
768ומודיע שהחיפוש נכנס למצב של "כשלון" ("failing"). הקשה על C-g גם היא
769מסיימת את החיפוש.
770
771(הערה: במערכות אחדות הקשה על C-s מקפיעה את תצוגת המסך, כך שלא תראו
772יותר שום פלט של Emacs. משמעות הדבר שתכונת מערכת ההפעלה ששמה "flow
773control" מופעלת ע"י C-s ואינה מעבירה את C-s ל־Emacs. לביטול הקפאת
774התצוגה במערכות אלו יש להקיש C-q.)
775
776אם במהלך החיפוש תקישו על <Delback>, תראו שהתו האחרון של המחרוזת
777המבוקשת נמחק והחיפוש חוזר למקום הקודם בו נמצאה המחרוזת ללא התו האחרון.
778למשל, נניח שהקשתם "ס" על־מנת למצוא את המקום הבא בו מופיעה האות "ס". אם
779עכשיו תקישו "מ", הסמן יזוז למקום בו נמצא "סמ". עתה הקישו <Delback>.
780ה־"מ" נמחק מהמחרוזת והסמן חוזר למקום בו הוא מצא את "ס" לראשונה.
781
782אם במהלך החיפוש תפעילו פקודה כלשהי ע"י הקשה על מקש תוך לחיצה על
783CONTROL או META, החיפוש יסתיים. (כמה תווים יוצאים מכלל זה -- אלו תווים
784מיוחדים בעת חיפוש, כדוגמת C-s ו־C-r.)
785
786הקשה על C-s מתחילה חיפוש שמנסה למצוא את המחרוזת _אחרי_ הסמן. אם
787ברצונכם למצוא משהו בטקסט הקודם למקום הנוכחי, הקישו C-r במקום C-s. כל
788מה שאמרנו לגבי C-s תקף גם לגבי C-r, אלא שכיוון החיפוש מתהפך.
789
790
791* חלונות מרובים
792---------------
793
794אחת התכונות הנוחות של Emacs היא כי ניתן להציג יותר מחלון אחד על המסך
795בו־זמנית. (הערה: Emacs משתמש במונח "frame" -- "תבנית" -- בשביל מה
796שתוכניות אחרות מכנות "חלון". תבניות מתוארות בפסקה הבאה. תוכלו למצוא את
797רשימת המונחים של Emacs בפרק "Glossary" של מדריך משתמש.)
798
799>> הביאו סמן לשורה זו והקישו C-u 0 C-l ‏(CONTROL-L ולא CONTROL-1).
800
801>> עתה הקישו C-x 2 וכתוצאה מכך החלון יתחלק לשניים. כל אחד משני החלונות
802 מציג את השיעור הזה. הסמן נשאר בחלון העליוןץ
803
804>> הקישו C-M-v כדי לגלול את החלון התחתון.
805 (אם במקלדת שלכם אין מקש META אמיתי, הקישו ‎<ESC> C-v כתחליף.)
806
807>> הקישו C-x o ‏("o" הוא רמז ל־"other", "אחר") על־מנת להעביר את הסמן
808 לחלון התחתון.
809>> הקישו C-v ו־M-v בחלון התחתון כדי לגלול אותו.
810 המשיכו לקרוא הוראות אלו בחלון העליון.
811
812>> הקישו C-x o שוב לחזור לחלון העליון.
813 הסמן בחלון העליון יישאר במקום בו הוא היה לפני־כן.
814
815תוכלו להמשיך להשתמש ב־C-x o כדי לדלג בין שני החלונות. לכל חלון מיקום
816סמן משלו, אבל רק חלון אחד מציג את הסמן בכל רגע. כל פקודות העריכה
817הרגילות פועלות על החלון שבו מוצג הסמן. אנו קוראים לחלון זה "החלון
818הנבחר".
819
820הפקודה C-M-v נוחה מאד כאשר הינכם עורכים טקסט בחלון אחד ומשתמשים בחלון
821אחר לייחוס. תוכלו בכל עת לשמור על הסמן בחלון בו אתם עורכים טקסט
822ולהתקדם בחלון השני בעזרת C-M-v.
823
824‏C-M-v היא דוגמא אחת של פקודת CONTROL-META. אם במקלדת שלכם קיים מקש
825META אמיתי, תוכלו להקיש את הפקודה ע"י לחיצה והחזקה של מקשי CONTROL
826ו־META גם יחד ואז להקיש v. הסדר שבו תלחצו על CONTROL ו־META אינו משנה
827כי שני המקשים הללו פועלים ע"י שינוי התו המוקש יחד איתם.
828
829אם אין במקלדת מקש META אמיתי ואתם משתמשים ב־<ESC> כתחליף, הסדר כן
830משנה: חייבים להקיש <ESC> ורק לאחר מכן CONTROL-v, וזאת משום
831ש־CONTROL-<ESC> v לא יעבוד. <ESC> הוא תו בזכות עצמו, שלא כמו CONTROL
832או META.
833
834>> הקישו C-x 1 (בחלון העליון) כדי לסלק את החלון התחתון.
835
836(אילו הקשתם C-x 1 בחלון התחתון, הייתם מסלקים את החלון העליון. תוכלו
837לחשוב על פקודה זו כ־"השאר רק חלון אחד -- החלון בו אני נמצא עתה".)
838
839אין חובה להציג את אותו החוצץ בשני החלונות. תוכלו להשתמש ב־C-x C-f
840לפתיחת קובץ באחד החלונות -- דבר זה אינו משפיע על החלון השני. אפשר גם
841לפתוח קבצים שונים בכל אחד משני החלונות באופן בלתי־תלוי.
842
843הנה עוד שיטה להשתמש בשני חלונות להצגה של שני דברים שונים:
844
845>> הקישו C-x 4 C-f ואחר־כך הקישו שם של אחד הקבצים שלכם.
846 סיימו עם <Return>. שימו לב שהקובץ המבוקש מוצג בחלון התחתון. הסמן
847 מדלג לשם אף הוא.
848
849>> הקישו C-x o לעבור לחלון העליון ואחר־כך הקישו C-x 1 כדי לסלק את
850 החלון התחתון.
851
852
853* תבניות מרובות
854---------------
855
856‏Emacs מסוגל לפתוח מספר "תבניות" ("frames") בתנאי שאינכם משתמשים בצג
857שמסוגל להציג רק טקסט. תבנית כוללת קבוצת חלונות, תפריט, פסי גלילה, אזור
858תצוגת הד וכו'. (תוכניות אחרות נוהגות לקרוא לזה "חלון".)
859
860>> הקישו M-x make-frame <Return>‎.
861 כתוצאה, תבנית חדשה תופיע על המסך.
862
863כל מה שעשיתם בתבנית המקורית ניתן לעשות גם בתבנית החדשה. התבנית הראשונה
864אין בה שום דבר מיוחד.
865
866>> הקישו M-x delete-frame <Return>‎.
867 התבנית שבה הקשתם את הפקודה תיסגר ותיעלם מהמסך.
868
869כמו־כן, ניתן לסגור תבנית בדרך הרגילה הנתמכת ע"י מנהל החלונות של המערכת
870שלכם (בדרך־כלל, ע"י הקלקה על הכפתור המסומן ב־"X" בפינה עליונה של
871התבנית.) שום מידע אינו הולך לעיבוד כאשר סוגרים תבנית (או חלון). המידע
872הזה פשוט יורד מהתצוגה, אבל ניתן לאחזרו מאוחר יותר.
873
874
875* רמות עריכה רקורסיביות
876-----------------------
877
878יתכן ותיקלעו למצב שקרוי "רמת עריכה רקורסיבית". Emacs מציין זאת ע"י
879סוגריים מרובעים בשורת הסטטוס מסביב לשם האופן הראשי. למשל, יוצג שם
880[(Fundamental)] במקום (Fundamental).
881
882כדי להחלץ מרמת עריכה רקורסיבית יש להקיש <ESC> <ESC> <ESC>. זוהי פקודה
883כללית של "הימלטות". ניתן להשתמש בה גם כדי לסלק חלונות מיותרים וליציאה
884מתוך מיני־חוצץ.
885
886>> הקישו M-x כדי להיכנס למיני־חוצץ; אחר־כך הקישו <ESC> <ESC> <ESC> כדי
887 להיחלץ משם.
888
889הקשה על C-g לא תחלץ אתכם מרמות עריכה רקורסיביות. זאת, משום ש־C-g מבטל
890פקודות וארגומנטים _במסגרת_ הרמה הרקורסיבית, מבלי לצאת ממנה.
891
892
893* לקבלת עזרה נוספת
894------------------
895
896בשיעור הראשון הזה השתדלנו לתת בידיכם מידע שאך יספיק להתחלת השימוש שלכם
897ב־Emacs. ‏Emacs מכיל כל־כך הרבה שאין שום אפשרות לתאר ולהסביר כאן את
898הכל. אולם, סביר שתרצו ללמוד יותר על Emacs שכן יש בו עוד הרבה תכונות
899שימושיות. Emacs כולל פקודות לשם קריאת תיעוד על הפקודות של Emacs.
900הפעלת פקודות "עזרה" אלו תמיד מתחילה במקש CONTROL-h שעל־כן נקרא "מקש
901עזרה" ("help").
902
903להפעלת פקודות עזרה יש להקיש את C-h ואחר־כך עוד תו שמבקש עזרה מסוג
904מסויים. אם אתם _באמת_ אבודים, הקישו C-h ?‎ ו־Emacs יציג את סוגי העזרה
905שהוא מעמיד לרשותכם. אם הקשתם C-h ובסופו של דבר החלטתם שאין צורך בשום
906עזרה, פשוט הקישו C-g לבטל את הפקודה.
907
908(אם הקשת C-h אינה מציגה בתחתית התצוגה הודעה בדבר עזרה, נסו להקיש F1 או
909M-x help <Return>‎ כתחליף.)
910
911סוג העזרה הבסיס ביותר הוא C-h c. הקישו C-h, אחריו את האות c ואז הקישו
912סדרת מקשים שמפעילה פקודה כלשהי. Emacs יציג תיאור מאד קצר של הפקודה
913ההיא.
914
915>> הקישו C-h c C-p.
916
917התוצאה שתוצג צריכה להיות משהו כמו זה:
918
919 C-p runs the command previous-line
920
921ההודעה הזו מראה את "שם הפונקציה". היות ושמות הפונקציות נבחרים כדי
922לציין מה הן עושות, השמות עשויים לשמש כתיעוד מקוצר -- מספיק כדי להזכיר
923לכם את הפקודות שלמדתם בעבר.
924
925ניתן לציין אחרי C-h c גם פקודות שמופעלות ע"י סדרת מקשים באורך גדול
926מאחד, כגון C-x C-s או (אם אין מקש META או EDIT או ALT) ‏‎<ESC> v.
927
928לקבלת מידע מפורט יותר על פקודה, השתמשו בפקודה C-h k במקום C-h c.
929
930>> הקישו C-h k C-p.
931
932כתוצאה, יוצגו השם והתיעוד של הפונקציה בחלון Emacs נפרד. כשתסיימו לקרוא
933את התיעוד, הקישו C-x 1 כדי לסלק את חלון העזרה. לא חייבים לעשות זאת
934מיד. אפשר לבצע קצת עריכה תוך שימוש בתיעוד המוצג ורק אחר־כך להקיש C-x 1.
935
936הנה עוד כמה פקודות עזרה שימושיות:
937
938 ‏C-h f תן הסבר על פונקציה. יש להקיש את שם הפונקציה.
939
940>> נסו להקיש C-h f previous-line <Return>‎.
941 כתוצאה, יוצג תיעוד מלא של הפונקציה המממשת את הפקודה C-p כפי שהוא
942 ידוע ל־Emacs.
943
944פקודה דומה C-h v מציגה תיעוד של משתנה, כולל אלו שאת הערכים שלהם ניתן
945לשנות כדי לקסטם את Emacs. יש להקיש את שם המשתנה כאשר Emacs יבקש זאת.
946
947 ‏C-h a פקודות בנוגע לנושא מסויים. הקישו מילת מפתח ו־Emacs
948 יציג את רשימת הפקודות ששמותיהן מכילות את מילת המפתח.
949 כל הפקודות הללו ניתנות להפעלה ע"י META-x. עבור חלק
950 מהפקודות תוצג גם סדרת מקשים שמפעילה את הפקודה.
951
952>> הקישו C-h a file <Return>‎.
953
954כתוצאה מזה, יוצג חלון עם רשימה של כל הפקודות ששמותיהן מכילות את המילה
955"file". ביניהן תראו גם מקשי קיצור כגון C-x C-f לצד שמות הפקודות כגון
956find-file.
957
958>> הקישו C-M-v כדי לגלול את חלון העזרה. עשו זאת פעמים אחדות.
959
960>> עתה הקישו C-x 1 כדי לסגור את חלון העזרה.
961
962 ‏C-h i הצג מדריכים למשתמש הכלולים בחבילת Emacs. (פקודה זו
963 ידועה גם בשם "Info".) פקודה זאת פותחת חוצץ מיוחד הקרוי
964 "*info*" שבו תוכלו לקרוא מדריכים המותקנים במערכת שלכם.
965 הקישו m emacs <Return>‎ כדי לקרוא במדריך למשתמשי Emacs.
966 אם אינכם מכירים את Info, הקישו ? ו־Emacs יקח אתכם
967 לשיעור על התכונות של Info mode. כשתסיימו עם השיעור
968 הזה, אנו בהחלט ממליצים להשתמש במדריך Emacs בתור התיעוד
969 העיקרי שלכם.
970
971
972* עוד תכונות
973------------
974
975תוכלו ללמוד עוד על־אודות Emacs ע"י קריאה במדריך למשתמש שלו, אם כספר
976מודפס או בגירסה מקוונת בתוך Emacs עצמו. (תוכלו להגיע אל המדריך דרך
977תפריט Help או ע"י הקשה על C-h r.) אולם שתי תכונות שבוודאי ימצאו חן
978בעיניכם הן השלמה אשר חוסכת הקשות, ו־dired שמאפשרת טיפול נוח בקבצים.
979
980השלמה היא דרך להימנע מהקשות מיותרות. למשל, אם ברצונכם לעבור לחוצץ
981*Messages*, תוכלו להקיש C-x b *M<Tab>‎ ו־Emacs ישלים את שאר האותיות של
982שם החוצץ ככל שניתן להסיק ממה שהקשתם. השלמה פועלת גם על שמות הפקודות
983ושמות קבצים. תכונת ההשלמה מתוארת במלואה במדריך למשתמש Emacs בצומת
984(node) בשם "Completion".
985
986‏Dired מאפשר להציג רשימת קבצים בתיקיה (וכאפציה גם בתת-תיקיות שלה), לנוע
987בתוך הרשימה הזו, לפתוח קבצים, לשנות את שמותיהם, למחוק אותם ולבצע עליהם
988עוד פעולות רבות. Dired מתואר במלואו במדריך למשתמש בצומת בשם "Dired".
989
990בנוסף, מדריך למשתמש מתאר עוד הרבה מאד תכונות של Emacs.
991
992
993* לסיום
994-------
995
996כדי לצאת מ־Emacs יש להקיש C-x C-c.
997
998שיעור זה נכתב כדי להיות מובן לכל המשתמשים החדשים, לכן אם מצאתם שמשהו
999כאן אינו ברור, אל תשבו ותאשימו את עצמכם -- תתלוננו!
1000
1001
1002* זכויות שימוש
1003--------------
1004
1005שיעור זה הינו צאצא של שורה ארוכה של שיעורים בשימוש ב־Emacs, החל מהגרסה
1006הראשונה שנכתבה ע"י Stuart Cracraft עבור גירסת ה־Emacs המקורית.
1007
1008גירסה זו של השיעור הינה חלק מחבילת GNU Emacs. היא מוגנת בזכויות יוצרים
1009וניתנת להעתקה והפצת עותקים בתנאים מסויימים כדלקמן:
1010
1011 Copyright (C) 2010 Free Software Foundation, Inc.
1012
1013‏GNU Emacs הינו תכנה חפשית; זכותכם להפיצו ו\או לשנותו בכפוף לתנאי
1014הרשיון GNU General Public License, כפי שהוא יוצא לאור ע"י Free
1015Software Foundation, אם בגרסא 3 של הרשיון, ואם (כאופציה השמורה לכם)
1016בכל גרסא מאוחרת יותר.
1017
1018‏GNU Emacs מופץ מתוך תקווה שהוא יביא תועלת, אולם ללא כל כתב אחריות;
1019אפילו לא אחריות־במשתמע של סחירות או התאמה לאיזו תכלית מסוימת. לפרטים,
1020אנא עיינו ב־GNU General Public License.
1021
1022‏GNU Emacs אמור להיות מלווה בעותק של GNU General Public License; אם לא
1023קיבלתם אותו, תוכלו למצוא אותו ב־‭<http://www.gnu.org/licenses/>‬.
1024
1025הנכם מוזמנים לקרוא את הקובץ COPYING ואז אכן לחלק עותקים של GNU Emacs
1026לחבריכם. עזרו לנו לחסל את "הבעלות" על תוכנה שאינה אלא חבלה בתוכנה,
1027וזאת ע"י שימוש, כתיבה ושיתוף של תוכנה חופשית!
1028
1029
1030
1031--- end of TUTORIAL.he ---
1032
1033;;; Local Variables:
1034;;; coding: utf-8
1035;;; bidi-display-reordering: t
1036;;; sentence-end-double-space: nil
1037;;; bidi-paragraph-direction: nil
1038;;; End:
diff --git a/etc/tutorials/TUTORIAL.translators b/etc/tutorials/TUTORIAL.translators
index b9e1f4b6ad3..ea0b1ec040e 100644
--- a/etc/tutorials/TUTORIAL.translators
+++ b/etc/tutorials/TUTORIAL.translators
@@ -31,6 +31,10 @@ Maintainer: Rafael Sepúlveda <drs@gnulinux.org.mx>
31Author: Éric Jacoboni <jaco@teaser.fr> 31Author: Éric Jacoboni <jaco@teaser.fr>
32Maintainer: Éric Jacoboni <jaco@teaser.fr> 32Maintainer: Éric Jacoboni <jaco@teaser.fr>
33 33
34* TUTORIAL.he
35Author: Eli Zaretskii <eliz@gnu.org>
36Maintainer: Eli Zaretskii <eliz@gnu.org>
37
34* TUTORIAL.it: 38* TUTORIAL.it:
35Author: Alfredo Finelli <alfredofnl@tiscali.it> 39Author: Alfredo Finelli <alfredofnl@tiscali.it>
36 Italian GNU Translation Group <tp@lists.linux.it> 40 Italian GNU Translation Group <tp@lists.linux.it>