diff options
| author | Joakim Verona | 2010-08-17 23:19:11 +0200 |
|---|---|---|
| committer | Joakim Verona | 2010-08-17 23:19:11 +0200 |
| commit | a8101f663e6cbff953b67b8bef33bc0171818477 (patch) | |
| tree | 8f71a16188f75e91670e05379fb4de2d0136cbf4 /etc | |
| parent | fe72c5b4651334677326104ec138e7cdd50f2ffe (diff) | |
| parent | 489cd5bd5a0128d6c3bee49fa2c451f2927ddea9 (diff) | |
| download | emacs-a8101f663e6cbff953b67b8bef33bc0171818477.tar.gz emacs-a8101f663e6cbff953b67b8bef33bc0171818477.zip | |
merge from trunk
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/AUTHORS | 16 | ||||
| -rw-r--r-- | etc/ChangeLog | 55 | ||||
| -rw-r--r-- | etc/DEBUG | 29 | ||||
| -rw-r--r-- | etc/NEWS | 196 | ||||
| -rw-r--r-- | etc/NEWS.1-17 | 10 | ||||
| -rw-r--r-- | etc/NEWS.23 | 4 | ||||
| -rw-r--r-- | etc/PROBLEMS | 41 | ||||
| -rw-r--r-- | etc/compilation.txt | 90 | ||||
| -rw-r--r-- | etc/refcards/orgcard.tex | 92 | ||||
| -rw-r--r-- | etc/tutorials/TUTORIAL.bg | 2 | ||||
| -rw-r--r-- | etc/tutorials/TUTORIAL.es | 2 | ||||
| -rw-r--r-- | etc/tutorials/TUTORIAL.he | 1038 | ||||
| -rw-r--r-- | etc/tutorials/TUTORIAL.translators | 4 |
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 | ||
| 1043 | François-David Collin: changed message.el mm-decode.el | 1043 | François-David Collin: changed message.el mm-decode.el |
| 1044 | 1044 | ||
| 1045 | Fred Fish: changed linux.h unexec.c | 1045 | Fred Fish: changed linux.h unexcoff.c |
| 1046 | 1046 | ||
| 1047 | Fred Oberhauser: changed nnmail.el | 1047 | Fred Oberhauser: changed nnmail.el |
| 1048 | 1048 | ||
| @@ -1273,7 +1273,7 @@ Inge Wallin: co-wrote avl-tree.el ewoc.el | |||
| 1273 | Inoue Seiichiro: changed xterm.c xfns.c xterm.h | 1273 | Inoue Seiichiro: changed xterm.c xfns.c xterm.h |
| 1274 | 1274 | ||
| 1275 | International Business Machines: changed emacs.c fileio.c process.c | 1275 | International Business Machines: changed emacs.c fileio.c process.c |
| 1276 | sysdep.c unexec.c | 1276 | sysdep.c unexcoff.c |
| 1277 | 1277 | ||
| 1278 | Irie Tetsuya: changed gnus.texi message.texi | 1278 | Irie 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 | ||
| 1335 | James Troup: changed gnus-sum.el | 1335 | James Troup: changed gnus-sum.el |
| 1336 | 1336 | ||
| 1337 | James Van Artsdalen: changed unexec.c usg5-4.h | 1337 | James Van Artsdalen: changed unexcoff.c usg5-4.h |
| 1338 | 1338 | ||
| 1339 | James Wright: changed em-unix.el | 1339 | James 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 | ||
| 2178 | Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h | 2178 | Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h |
| 2179 | unexec.c | 2179 | unexcoff.c |
| 2180 | 2180 | ||
| 2181 | Michael D. Ernst: wrote reposition.el | 2181 | Michael D. Ernst: wrote reposition.el |
| 2182 | and changed dired-x.el uniquify.el ispell.el bibtex.el rmail.el dired.el | 2182 | and 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 | ||
| 2201 | Michael K. Johnson: changed configure.in emacs.c intel386.h linux.h | 2201 | Michael 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 | ||
| 2205 | Michael Kifer: wrote ediff-diff.el ediff-help.el ediff-hook.el | 2205 | Michael 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 | |||
| 2259 | Microelectronics and Computer Technology Corporation: changed | 2259 | Microelectronics 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 | ||
| 2264 | Mikael Djurfeldt: changed xdisp.c | 2264 | Mikael Djurfeldt: changed xdisp.c |
| 2265 | 2265 | ||
| @@ -2685,7 +2685,7 @@ and changed files.el keyboard.c simple.el xterm.c xdisp.c Makefile.in | |||
| 2685 | Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el rfc822.el | 2685 | Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el rfc822.el |
| 2686 | terminal.el yow.el | 2686 | terminal.el yow.el |
| 2687 | and changed files.el sysdep.c rmail.el info.el keyboard.c bytecomp.el | 2687 | and 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 | ||
| 2923 | Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el | 2923 | Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el |
| 2924 | unexec.c | 2924 | unexcoff.c |
| 2925 | 2925 | ||
| 2926 | Sriram Karra: changed message.el | 2926 | Sriram 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 @@ | |||
| 1 | 2010-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 | |||
| 6 | 2010-08-08 Ken Brown <kbrown@cornell.edu> | ||
| 7 | |||
| 8 | * PROBLEMS: Mention problem with Cygwin 1.5.19. | ||
| 9 | |||
| 10 | 2010-08-07 Eli Zaretskii <eliz@gnu.org> | ||
| 11 | |||
| 12 | * NEWS: Mention the Hebrew translation. | ||
| 13 | |||
| 14 | * tutorials/TUTORIAL.he: Don't use acronyms. | ||
| 15 | |||
| 16 | 2010-08-05 Eli Zaretskii <eliz@gnu.org> | ||
| 17 | |||
| 18 | * AUTHORS: Rename unexec.o => unexcoff.o. | ||
| 19 | * PROBLEMS: Rename unexec.o => unexcoff.o. | ||
| 20 | |||
| 21 | 2010-07-31 Eli Zaretskii <eliz@gnu.org> | ||
| 22 | |||
| 23 | * tutorials/TUTORIAL.he: New file. | ||
| 24 | |||
| 25 | * tutorials/TUTORIAL.translators: Add TUTORIAL.he. | ||
| 26 | |||
| 27 | 2010-07-24 Christoph Scholtes <cschol2112@gmail.com> | ||
| 28 | |||
| 29 | * NEWS: Document new --distfiles configure.bat option and | ||
| 30 | `dist' make target on Windows. | ||
| 31 | |||
| 32 | 2010-07-20 Juanma Barranquero <lekktu@gmail.com> | ||
| 33 | |||
| 34 | * PROBLEMS: Add note about use of backslashes in Windows paths. | ||
| 35 | |||
| 36 | 2010-07-19 Juanma Barranquero <lekktu@gmail.com> | ||
| 37 | |||
| 38 | * NEWS: Mention --enable-checking is now supported on Windows. | ||
| 39 | |||
| 40 | 2010-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 | |||
| 46 | 2010-06-19 Ken Brown <kbrown@cornell.edu> | ||
| 47 | |||
| 48 | * PROBLEMS: Update Cygwin GCC information. (Bug#6458) | ||
| 49 | |||
| 50 | 2010-06-12 Glenn Morris <rgm@gnu.org> | ||
| 51 | |||
| 52 | * tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos. | ||
| 53 | |||
| 1 | 2010-06-09 Michael Albinus <michael.albinus@gmx.de> | 54 | 2010-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. |
| @@ -5,9 +5,8 @@ Copyright (C) 1985, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, | |||
| 5 | See the end of the file for license conditions. | 5 | See 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 |
| 9 | should read the Windows-specific section near the end of this | 9 | read the Windows-specific section near the end of this document.] |
| 10 | document.] | ||
| 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 |
| 13 | where the executable was made. That directory has a .gdbinit file | 12 | where 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 | ||
| 52 | After this `handle' command, SIGINT will return control to GDB. If | 51 | After this `handle' command, SIGINT will return control to GDB. If |
| 53 | you want the C-g to cause a QUIT within Emacs as well, omit the | 52 | you want the C-g to cause a QUIT within Emacs as well, omit the `nopass'. |
| 54 | `nopass'. | ||
| 55 | 53 | ||
| 56 | A technique that can work when `handle SIGINT' does not is to store | 54 | A technique that can work when `handle SIGINT' does not is to store |
| 57 | the code for some character into the variable stop_character. Thus, | 55 | the 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 | |||
| 443 | numeric addresses into symbols and vice versa. | 441 | numeric addresses into symbols and vice versa. |
| 444 | 442 | ||
| 445 | It is useful to be running under a window system. | 443 | It is useful to be running under a window system. |
| 446 | Then, if Emacs becomes hopelessly wedged, you can create | 444 | Then, if Emacs becomes hopelessly wedged, you can create another |
| 447 | another window to do kill -9 in. kill -ILL is often | 445 | window to do kill -9 in. kill -ILL is often useful too, since that |
| 448 | useful too, since that may make Emacs dump core or return | 446 | may make Emacs dump core or return to adb. |
| 449 | to 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: | |||
| 483 | Building Emacs like that activates many assertions which scrutinize | 480 | Building Emacs like that activates many assertions which scrutinize |
| 484 | display code operation more than Emacs does normally. (To see the | 481 | display code operation more than Emacs does normally. (To see the |
| 485 | code which tests these assertions, look for calls to the `xassert' | 482 | code which tests these assertions, look for calls to the `xassert' |
| 486 | macros.) Any assertion that is reported to fail should be | 483 | macros.) Any assertion that is reported to fail should be investigated. |
| 487 | investigated. | ||
| 488 | 484 | ||
| 489 | Building with GLYPH_DEBUG defined also defines several helper | 485 | Building with GLYPH_DEBUG defined also defines several helper |
| 490 | functions which can help debugging display code. One such function is | 486 | functions 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 |
| 492 | contents of any glyph matrix by just calling that function with the | 488 | contents of any glyph matrix by just calling that function with the |
| 493 | matrix as its argument. For example, the following command will print | 489 | matrix as its argument. For example, the following command will print |
| 494 | the contents of the current matrix of the window whose pointer is in | 490 | the 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, | |||
| 621 | because Emacs replaces the system's memory allocation functions with | 616 | because Emacs replaces the system's memory allocation functions with |
| 622 | its own versions, and because the dumping process might be | 617 | its own versions, and because the dumping process might be |
| 623 | incompatible with the way these packages use to track allocated | 618 | incompatible with the way these packages use to track allocated |
| 624 | memory. Here are some of the changes you might find necessary | 619 | memory. Here are some of the changes you might find necessary: |
| 625 | (SYSTEM-NAME and MACHINE-NAME are the names of your OS- and | ||
| 626 | CPU-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 |
| @@ -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. |
| 42 | This is only useful if your crt*.o files are in a non-standard location. | 42 | This 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 | ||
| 46 | to configure. Note that other libraries used by Emacs, RSVG and GConf, | ||
| 47 | also 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. | ||
| 51 | This is only useful for Emacs developers to debug certain types of bugs. | ||
| 52 | These is not a new feature; only the configure flag is new. | ||
| 53 | |||
| 54 | --- | ||
| 55 | ** New translation of the Emacs Tutorial in Hebrew is available | ||
| 56 | Type `C-u C-h t' to choose it in case your language setup doesn't | ||
| 57 | automatically 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. | |||
| 89 | Customize `tool-bar-style' to choose style. On a Gnome desktop, the default | 104 | Customize `tool-bar-style' to choose style. On a Gnome desktop, the default |
| 90 | is taken from the desktop settings. | 105 | is taken from the desktop settings. |
| 91 | 106 | ||
| 107 | ** GTK tool bars can be placed on the left/right or top/bottom of the frame. | ||
| 108 | The frame-parameter tool-bar-position controls this. It takes the values | ||
| 109 | top, left, right or bottom. The Options => Show/Hide menu has entries | ||
| 110 | for this. | ||
| 111 | |||
| 112 | ** The colors for selected text (the region face) are taken from the GTK | ||
| 113 | theme when Emacs is built with GTK. | ||
| 114 | |||
| 115 | ** Emacs uses GTK tooltips by default if built with GTK. You can turn that | ||
| 116 | off 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 |
| 93 | with Xft. | 119 | with 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 |
| 126 | now forces true deletion, regardless of `delete-by-moving-to-trash'. | 152 | now forces true deletion, regardless of `delete-by-moving-to-trash'. |
| 127 | 153 | ||
| 154 | ** New option `list-colors-sort' defines the color sort order | ||
| 155 | for `list-colors-display'. | ||
| 156 | |||
| 157 | ** An Emacs Lisp package manager is now included. | ||
| 158 | This is a convenient way to download and install additional packages, | ||
| 159 | from elpa.gnu.org. `M-x package-list-packages' shows a list of | ||
| 160 | packages, which can be selected for installation. | ||
| 161 | |||
| 162 | *** By default, all installed packages are loaded and activated | ||
| 163 | automatically when Emacs starts up. To disable this, set | ||
| 164 | `package-enable-at-startup' to nil. To change which packages are | ||
| 165 | loaded, 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'. | ||
| 177 | If non-nil, C-d, [delete], and DEL delete the region if it is active | ||
| 178 | and no prefix argument is given. If set to `kill', these commands | ||
| 179 | kill instead. | ||
| 180 | |||
| 181 | *** New command `delete-forward-char', bound to C-d and [delete]. | ||
| 182 | This is meant for interactive use, and obeys `delete-active-region'; | ||
| 183 | delete-char, meant for Lisp, does not obey `delete-active-region'. | ||
| 184 | |||
| 185 | *** `delete-backward-char' is now a Lisp function. | ||
| 186 | Apart from obeying `delete-active-region', its behavior is unchanged. | ||
| 187 | However, the byte compiler now warns if it is called from Lisp; you | ||
| 188 | should use delete-char with a negative argument instead. | ||
| 189 | |||
| 190 | *** The option `mouse-region-delete-keys' has been deleted. | ||
| 191 | |||
| 192 | ** Selection changes. | ||
| 193 | |||
| 194 | The default handling of clipboard and primary selections has been | ||
| 195 | changed to conform with other X applications. | ||
| 196 | |||
| 197 | *** `select-active-regions' now defaults to t, so active regions set | ||
| 198 | the primary selection. | ||
| 199 | |||
| 200 | It also accepts a new value, `lazy', which means to only set the | ||
| 201 | primary selection for temporarily active regions (usually made by | ||
| 202 | mouse-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. | ||
| 207 | Thus, killing and yanking now use the clipboard (in addition to the | ||
| 208 | kill 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'. | ||
| 222 | If the value of `erc-autojoin-timing' is 'ident, ERC autojoins after a | ||
| 223 | successful NickServ identification, or after `erc-autojoin-delay' | ||
| 224 | seconds. The default value, 'ident, means to autojoin immediately | ||
| 225 | after 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. |
| 140 | The reason is that this interferes with cua-mode. | 228 | The 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 | ||
| 284 | produce 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. |
| 196 | For example, adding "(diff-mode . ((mode . whitespace)))" to your | 287 | For 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 |
| 202 | The variables `sql-product', `sql-user', `sql-server', and | 293 | variables `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. |
| 206 | The custom variable `sql-port' can be specified for connection to | 297 | The custom variable `sql-port' can be specified for connection to |
| 207 | MySQL servers. | 298 | MySQL servers. |
| 208 | 299 | ||
| 300 | *** Command continuation prompts in SQL interactive mode are suppressed. | ||
| 301 | Multiple line commands in SQL interactive mode, generate command | ||
| 302 | continuation prompts which needlessly confuse the output. These | ||
| 303 | prompts are now filtered out from the output. This change impacts | ||
| 304 | multiple line SQL statements entered with C-j between each line, | ||
| 305 | statements 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. |
| 210 | Each supported product has a custom variable `sql-*-login-params' | 309 | Each supported product has a custom variable `sql-*-login-params' |
| 211 | which is a list of the parameters to be prompted for before a | 310 | which is a list of the parameters to be prompted for before a |
| 212 | connection is established. | 311 | connection is established. |
| 213 | 312 | ||
| 313 | By default, the value of the parameter is simply prompted for. For | ||
| 314 | `server' and `database', they can be specified in a list as shown | ||
| 315 | below: | ||
| 316 | |||
| 317 | (server :file ARG) | ||
| 318 | (database :file ARG) | ||
| 319 | (server :completion ARG) | ||
| 320 | (database :completion ARG) | ||
| 321 | |||
| 322 | The ARG when :file is specified is a regexp that will match valid file | ||
| 323 | names (without the directory portion). Generally these strings will | ||
| 324 | be of the form ".+\.SUF" where SUF is the desired file suffix. | ||
| 325 | |||
| 326 | When :completion is specified, the ARG corresponds to the PREDICATE | ||
| 327 | argument to the `completing-read' function (a list of possible values | ||
| 328 | or a function returning such a list). | ||
| 329 | |||
| 330 | *** Added `sql-connection-alist' to record login parameter values. | ||
| 331 | An alist for recording different username, database and server | ||
| 332 | values. If there are multiple databases that you connect to the | ||
| 333 | parameters needed can be stored in this alist. | ||
| 334 | |||
| 335 | For 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 | |||
| 344 | This defines two connections named "dev" and "prd". | ||
| 345 | |||
| 346 | *** Added `sql-connect' to use predefined connections. | ||
| 347 | Sets the login parameters based on the values in the | ||
| 348 | `sql-connection-alist' and start a SQL interactive session. Any | ||
| 349 | values specified in the connection will not be prompted for. | ||
| 350 | |||
| 351 | In the example above, if the user were to invoke M-x sql-connect, they | ||
| 352 | would be prompted for the connection. The user can respond with | ||
| 353 | either "dev" or "prd". The "dev" connection would connect to the | ||
| 354 | SQLite database without prompting; the "prd" connection would prompt | ||
| 355 | for the users password and then connect to the Oracle database. | ||
| 356 | |||
| 357 | **** Added SQL->Start... submenu when connections are defined. | ||
| 358 | When connections have been defined, There is a submenu available that | ||
| 359 | allows the user to select one to start a SQLi session. The "Start | ||
| 360 | SQLi Session" item moves to the "Start..." submenu when cnnections | ||
| 361 | have been defined. | ||
| 362 | |||
| 363 | **** Added "Save Connection" menu item in SQLi buffers. | ||
| 364 | When a SQLi session is not started by a connection then | ||
| 365 | `sql-save-connection' will gather the login params specified for the | ||
| 366 | session and save them as a new connection. | ||
| 367 | |||
| 214 | *** Added option `sql-send-terminator'. | 368 | *** Added option `sql-send-terminator'. |
| 215 | When set makes sure that each command sent with `sql-send-*' commands | 369 | When set makes sure that each command sent with `sql-send-*' commands |
| 216 | are properly terminated and submitted to the SQL processor. | 370 | are properly terminated and submitted to the SQL processor. |
| 217 | 371 | ||
| 218 | *** Added option `sql-oracle-scan-on'. | 372 | *** Added option `sql-oracle-scan-on'. |
| 219 | When set commands sent to Oracle's SQL*Plus are scanned for strings | 373 | When set commands sent to Oracle's SQL*Plus are scanned for strings |
| 220 | starting with an ampersand and the user is asked for replacement | 374 | starting with an ampersand and the user is asked for replacement text. |
| 221 | text. In general, the SQL*Plus option SCAN should be set OFF under | 375 | In general, the SQL*Plus option SCAN should always be set OFF under |
| 222 | SQL interactive mode. | 376 | SQL 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. |
| 225 | This prevents the comand interpretter for MySQL and Postgres from | 379 | This 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. |
| 416 | FIXME: This only says what was changed, but not what are the | ||
| 417 | programmer-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' | ||
| 423 | and `tool-bar-lines' to `default-frame-alist' and | ||
| 424 | `initial-frame-alist'. With these alist entries omitted, `make-frame' | ||
| 425 | checks the value of the variable `menu-bar-mode'/`tool-bar-mode' to | ||
| 426 | determine whether to create a menu-bar or tool-bar, respectively. | ||
| 427 | If 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, | ||
| 431 | similar to the ones created by shift-selection. In previous Emacs | ||
| 432 | versions, these regions were delineated by `mouse-drag-overlay', which | ||
| 433 | has 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 | ||
| 478 | runtime 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 | ---------------------------------------------------------------------- |
| 304 | This file is part of GNU Emacs. | 488 | This 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 | ||
| 762 | This is the new primitive to select a specified buffer (the | 762 | This is the new primitive to select a specified buffer (the |
| 763 | argument) in another window. It is not quite the same as | 763 | argument) 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 |
| 765 | window (assuming there is room on the screen) so that it can | 765 | window (assuming there is room on the screen) so that it can |
| 766 | leave the current window's old buffer displayed as well. | 766 | leave the current window's old buffer displayed as well. |
| @@ -971,7 +971,7 @@ once again "unmodified". | |||
| 971 | This command creates an inferior Lisp process whose input and output | 971 | This command creates an inferior Lisp process whose input and output |
| 972 | appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode | 972 | appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode |
| 973 | called inferior-lisp-mode, which has many of the commands of lisp-mode | 973 | called inferior-lisp-mode, which has many of the commands of lisp-mode |
| 974 | and those of shell-mode. Calls the value of shell-mode-hook and | 974 | and those of shell-mode. Calls the value of shell-mode-hook and |
| 975 | lisp-mode-hook, in that order, if non-nil. | 975 | lisp-mode-hook, in that order, if non-nil. |
| 976 | 976 | ||
| 977 | Meanwhile, in lisp-mode, the command C-M-x is defined to | 977 | Meanwhile, 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. | ||
| 32 | This 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 | ||
| 1038 | This happens sometimes when using Metacity. Resizing Emacs or ALT-Tab:bing | 1038 | This happens sometimes when using Metacity. Resizing Emacs or ALT-Tab:bing |
| 1039 | makes the system unresponsive to the mouse or the keyboard. Killing Emacs | 1039 | makes the system unresponsive to the mouse or the keyboard. Killing Emacs |
| 1040 | or shifting out from X11 and back again usually cures it (i.e. Ctrl-Alt-F1 | 1040 | or shifting out from X11 and back again usually cures it (i.e. Ctrl-Alt-F1 |
| 1041 | and then Alt-F7). A bug for it is here: | 1041 | and then Alt-F7). A bug for it is here: |
| 1042 | https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/231034. | 1042 | https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/231034. |
| 1043 | Note that a permanent fix seems to be to disable "assistive technologies". | 1043 | Note 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 |
| 1515 | stty command, before starting the rlogin process. On many systems, | 1515 | stty 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 | ||
| 1519 | Some versions of tcsh will prevent even this from working. One way | 1519 | Some versions of tcsh will prevent even this from working. One way |
| 1520 | around this is to start another shell before starting rlogin, and | 1520 | around 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 | ||
| 2344 | Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is | 2344 | As of Emacs 22.1, there have been stability problems with Cygwin |
| 2345 | reported to either fail or cause Emacs to segfault at run time. In | 2345 | builds of Emacs using GCC 3. Cygwin users are advised to use GCC 4. |
| 2346 | addition, the Cygwin GCC 3.4.4-2 has problems with generating debug | 2346 | |
| 2347 | info. 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 |
| 2348 | compiling Emacs. GCC versions 4.0.3, 4.0.4, 4.1.1, and 4.1.2 | 2348 | |
| 2349 | reportedly build a working Cygwin binary of Emacs, so we recommend | 2349 | This is a consequence of a change to src/dired.c on 2010-07-27. The |
| 2350 | these GCC versions. Note that these versions of GCC, 4.0.3, 4.0.4, | 2350 | issue is that Cygwin 1.5.19 did not have d_ino in 'struct dirent'. |
| 2351 | 4.1.1, and 4.1.2, are currently the _only_ versions known to succeed | 2351 | See |
| 2352 | in 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 | |||
| 2446 | Errors 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 | |||
| 2451 | This happens when paths using backslashes are passed to the compiler or | ||
| 2452 | linker (via -I and possibly other compiler flags); when these paths are | ||
| 2453 | included in source code, the backslashes are interpreted as escape sequences. | ||
| 2454 | See http://lists.gnu.org/archive/html/emacs-devel/2010-07/msg00995.html | ||
| 2455 | |||
| 2456 | The 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. | |||
| 2733 | Two causes have been seen for such problems. | 2748 | Two causes have been seen for such problems. |
| 2734 | 2749 | ||
| 2735 | 1) On a system where getpagesize is not a system call, it is defined | 2750 | 1) On a system where getpagesize is not a system call, it is defined |
| 2736 | as a macro. If the definition (in both unexec.c and malloc.c) is wrong, | 2751 | as a macro. If the definition (in both unex*.c and malloc.c) is wrong, |
| 2737 | it can cause problems like this. You might be able to find the correct | 2752 | it can cause problems like this. You might be able to find the correct |
| 2738 | value in the man page for a.out (5). | 2753 | value 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 | |||
| 98 | symbol: cucumber | ||
| 99 | |||
| 100 | Feature: 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 | |||
| 124 | Failing Scenarios: | ||
| 125 | cucumber foo/cucumber.feature:6 # Scenario: assertion false (Test::Unit) | ||
| 126 | cucumber foo/cucumber.feature:9 # Scenario: assertion false (RSpec) | ||
| 127 | cucumber foo/cucumber.feature:12 # Scenario: backtrace in step definition | ||
| 128 | cucumber foo/cucumber.feature:15 # Scenario: deeep backtrace in step definition | ||
| 129 | |||
| 130 | 5 scenarios (4 failed, 1 undefined) | ||
| 131 | 5 steps (4 failed, 1 undefined) | ||
| 132 | 0m0.007s | ||
| 96 | 133 | ||
| 97 | * EDG C/C++ | 134 | * EDG C/C++ |
| 98 | 135 | ||
| @@ -318,6 +355,51 @@ symbol: php | |||
| 318 | Parse error: parse error, unexpected $ in main.php on line 59 | 355 | Parse error: parse error, unexpected $ in main.php on line 59 |
| 319 | Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66 | 356 | Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66 |
| 320 | 357 | ||
| 358 | * Ruby | ||
| 359 | |||
| 360 | symbol: ruby | ||
| 361 | |||
| 362 | plain-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 | |||
| 368 | symbol: ruby-Test::Unit | ||
| 369 | |||
| 370 | Loaded suite examples/test-unit | ||
| 371 | Started | ||
| 372 | FFFE | ||
| 373 | Finished in 0.023173 seconds. | ||
| 374 | |||
| 375 | 1) Failure: | ||
| 376 | test_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: | ||
| 382 | test_assert(BacktracesTest) [examples/test-unit.rb:5]: | ||
| 383 | <false> is not true. | ||
| 384 | |||
| 385 | 3) Failure: | ||
| 386 | test_assert_raise(BacktracesTest) [examples/test-unit.rb:9]: | ||
| 387 | Exception raised: | ||
| 388 | Class: <RuntimeError> | ||
| 389 | Message: <""> | ||
| 390 | ---Backtrace--- | ||
| 391 | examples/test-unit.rb:10:in `test_assert_raise' | ||
| 392 | examples/test-unit.rb:9:in `test_assert_raise' | ||
| 393 | --------------- | ||
| 394 | |||
| 395 | 4) Error: | ||
| 396 | test_backtrace(BacktracesTest): | ||
| 397 | NoMethodError: 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 | |||
| 401 | 4 tests, 3 assertions, 3 failures, 1 errors | ||
| 402 | |||
| 321 | * RXP | 403 | * RXP |
| 322 | 404 | ||
| 323 | symbol: rxp | 405 | symbol: 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 | ||
| 378 | symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line | 460 | symbol: 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 | ||
| 733 | Text before the first headline is not considered part of the document | 751 | Lines starting with \kbd{\#} and subtrees starting with COMMENT are |
| 734 | and is therefore never exported. | 752 | never exported. |
| 735 | Lines starting with \kbd{\#} are comments and are not exported. | ||
| 736 | Subtrees 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, |
| 750 | press \kbd{C-c C-c} with the cursor still in the line to update. | 766 | press \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 | |||
| 630 | su sesin de Emacs. | 630 | su 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 | ||
| 635 | Si hace cambios al texto de un archivo, y luego encuentra otro | 635 | Si hace cambios al texto de un archivo, y luego encuentra otro |
| 636 | archivo, esto no guarda el primer archivo. Sus cambios permanecern | 636 | archivo, 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 | קל יותר לזכור את המקשים הללו באמצעות המלים שהם מייצגים: | ||
| 77 | P מ־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 זז לסוף המילה. אם הסמן נמצא בין שתי מלים, | ||
| 110 | M-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 | משמש כמונה של מספר החזרות על הפקודה. כדי לספק ארגומנט לפקודה, יש להקיש | ||
| 176 | C-u ואחר־כך ספרות, וזאת לפני שמקישים את הפקודה עצמה. עם במקלדת קיים | ||
| 177 | מקש META (או EDIT או ALT), יש גם אפשרות אחרת לציין ארגומנט נומרי: | ||
| 178 | הקישו את הספרות תוך כדי החזקת מקש META. אנו ממליצים על C-u משום שהוא | ||
| 179 | יעבוד עם כל מקלדת. הארגומנט הנומרי נקרא גם "ארגומנט קידומת" (prefix | ||
| 180 | argument) משום מקישים אותו לפני הפקודה אליה הוא מתייחס. | ||
| 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> הוא מקש הרווח.) עתה הניעו את הסמן לקצה השני של חלק הטקסט והקישו | ||
| 337 | C-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 מבטל את השינויים שבוצעו ע"י פקודה אחת. הפעלה חוזרת של | ||
| 412 | C-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> לסיים את הקלט. או־אז תיגש | ||
| 469 | C-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 | שיהיה תחילה ריק ואז התחילו להקיש טקסט לתוכו. כשתפעילו את פקודת השמירה, | ||
| 491 | Emacs ייצור את הקובץ עם הטקסט שהקשתם. מאותו רגע ואילך, תוכלו לחשוב | ||
| 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 ואז לשמור עם | ||
| 548 | C-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 "משעה" את | ||
| 584 | Emacs: הוא מחזיר אתכם לשורת הפקודות הבסיסית של מערכת ההפעלה ("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) מיוחדים. דוגמא לכך היא פקודה | ||
| 606 | replace-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 | אחד מאופני־המשנה השימושיים ביותר, במיוחד לשם עריכת טקס בשפת־אנוש, הוא | ||
| 712 | Auto 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 | ||
| 773 | control" מופעלת ע"י C-s ואינה מעבירה את C-s ל־Emacs. לביטול הקפאת | ||
| 774 | התצוגה במערכות אלו יש להקיש C-q.) | ||
| 775 | |||
| 776 | אם במהלך החיפוש תקישו על <Delback>, תראו שהתו האחרון של המחרוזת | ||
| 777 | המבוקשת נמחק והחיפוש חוזר למקום הקודם בו נמצאה המחרוזת ללא התו האחרון. | ||
| 778 | למשל, נניח שהקשתם "ס" על־מנת למצוא את המקום הבא בו מופיעה האות "ס". אם | ||
| 779 | עכשיו תקישו "מ", הסמן יזוז למקום בו נמצא "סמ". עתה הקישו <Delback>. | ||
| 780 | ה־"מ" נמחק מהמחרוזת והסמן חוזר למקום בו הוא מצא את "ס" לראשונה. | ||
| 781 | |||
| 782 | אם במהלך החיפוש תפעילו פקודה כלשהי ע"י הקשה על מקש תוך לחיצה על | ||
| 783 | CONTROL או 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. אם במקלדת שלכם קיים מקש | ||
| 825 | META אמיתי, תוכלו להקיש את הפקודה ע"י לחיצה והחזקה של מקשי 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 או | ||
| 909 | M-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 לצד שמות הפקודות כגון | ||
| 956 | find-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 | ||
| 1015 | Software 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> | |||
| 31 | Author: Éric Jacoboni <jaco@teaser.fr> | 31 | Author: Éric Jacoboni <jaco@teaser.fr> |
| 32 | Maintainer: Éric Jacoboni <jaco@teaser.fr> | 32 | Maintainer: Éric Jacoboni <jaco@teaser.fr> |
| 33 | 33 | ||
| 34 | * TUTORIAL.he | ||
| 35 | Author: Eli Zaretskii <eliz@gnu.org> | ||
| 36 | Maintainer: Eli Zaretskii <eliz@gnu.org> | ||
| 37 | |||
| 34 | * TUTORIAL.it: | 38 | * TUTORIAL.it: |
| 35 | Author: Alfredo Finelli <alfredofnl@tiscali.it> | 39 | Author: Alfredo Finelli <alfredofnl@tiscali.it> |
| 36 | Italian GNU Translation Group <tp@lists.linux.it> | 40 | Italian GNU Translation Group <tp@lists.linux.it> |