• R/O
  • SSH

vim: Commit

Mirror of the Vim source from https://github.com/vim/vim


Commit MetaInfo

Revision8ff7fd162d3cf15129e377401e49f8210d62aee6 (tree)
Time2004-09-14 05:26:32
Authorvimboss
Commitervimboss

Log Message

updated for version 7.0016

Change Summary

Incremental Difference

diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/eval.txt
--- a/runtime/doc/eval.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/eval.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*eval.txt* For Vim version 7.0aa. Last change: 2004 Aug 30
1+*eval.txt* For Vim version 7.0aa. Last change: 2004 Sep 13
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -930,7 +930,7 @@
930930 synIDattr( {synID}, {what} [, {mode}])
931931 String attribute {what} of syntax ID {synID}
932932 synIDtrans( {synID}) Number translated syntax ID of {synID}
933-system( {expr}) String output of shell command {expr}
933+system( {expr} [, {input}]) String output of shell command/filter {expr}
934934 tempname() String name for a temporary file
935935 tolower( {expr}) String the String {expr} switched to lowercase
936936 toupper( {expr}) String the String {expr} switched to uppercase
@@ -1111,7 +1111,7 @@
11111111 feature, -1 is returned.
11121112
11131113 *col()*
1114-col({expr}) The result is a Number, which is the column of the file
1114+col({expr}) The result is a Number, which is the byte index of the column
11151115 position given with {expr}. The accepted positions are:
11161116 . the cursor position
11171117 $ the end of the cursor line (the result is the
@@ -2653,10 +2653,15 @@
26532653 highlight the character. Highlight links given with
26542654 ":highlight link" are followed.
26552655
2656- *system()*
2657-system({expr}) Get the output of the shell command {expr}. Note: newlines
2658- in {expr} may cause the command to fail. The characters in
2659- 'shellquote' and 'shellxquote' may also cause trouble.
2656+system({expr} [, {input}]) *system()* *E677*
2657+ Get the output of the shell command {expr}.
2658+ When {input} is given, this string is written to a file and
2659+ passed as stdin to the command. The string is written as-is,
2660+ you need to take care of using the correct line separators
2661+ yourself.
2662+ Note: newlines in {expr} may cause the command to fail. The
2663+ characters in 'shellquote' and 'shellxquote' may also cause
2664+ trouble.
26602665 This is not to be used for interactive commands.
26612666 The result is a String. Example: >
26622667
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/index.txt
--- a/runtime/doc/index.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/index.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*index.txt* For Vim version 7.0aa. Last change: 2004 Jul 11
1+*index.txt* For Vim version 7.0aa. Last change: 2004 Sep 07
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1103,6 +1103,7 @@
11031103 |:cunmenu| :cunme[nu] remove menu for Command-line mode
11041104 |:cwindow| :cw[indow] open or close quickfix window
11051105 |:delete| :d[elete] delete lines
1106+|:delmarks| :delm[arks] delete marks
11061107 |:debug| :deb[ug] run a command in debugging mode
11071108 |:debuggreedy| :debugg[reedy] read debug mode commands from normal input
11081109 |:delcommand| :delc[ommand] delete user-defined command
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/motion.txt
--- a/runtime/doc/motion.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/motion.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*motion.txt* For Vim version 7.0aa. Last change: 2004 Jul 25
1+*motion.txt* For Vim version 7.0aa. Last change: 2004 Sep 07
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -732,6 +732,24 @@
732732 :marks aB
733733 < to list marks 'a' and 'B'. {not in Vi}
734734
735+ *:delm* *:delmarks*
736+:delm[arks] {marks} Delete the specified marks. Marks that can be deleted
737+ include A-Z and 0-9. You cannot delete the ' mark.
738+ They can be specified by giving the list of mark
739+ names, or with a range, separated with a dash. Spaces
740+ are ignored. Examples: >
741+ :delmarks a deletes mark a
742+ :delmarks a b 1 deletes marks a, b and 1
743+ :delmarks Aa deletes marks A and a
744+ :delmarks p-z deletes marks in the range p to z
745+ :delmarks ^.[] deletes marks ^ . [ ]
746+ :delmarks \" deletes mark "
747+< {not in Vi}
748+
749+:delm[arks]! Delete all marks for the current buffer, but not marks
750+ A-Z or 0-9.
751+ {not in Vi}
752+
735753 A mark is not visible in any way. It is just a position in the file that is
736754 remembered. Do not confuse marks with named registers, they are totally
737755 unrelated.
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/pattern.txt
--- a/runtime/doc/pattern.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/pattern.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*pattern.txt* For Vim version 7.0aa. Last change: 2004 Jul 24
1+*pattern.txt* For Vim version 7.0aa. Last change: 2004 Sep 07
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -431,7 +431,7 @@
431431 x x a character with no special meaning matches itself
432432
433433 |/[]| [] \[] any character specified inside the []
434-|/\%[]| \%[] \%[] a list of optionally matched atoms
434+|/\%[]| \%[] \%[] a sequence of optionally matched atoms
435435
436436 |/\c| \c \c ignore case
437437 |/\C| \C \C match case
@@ -442,6 +442,12 @@
442442 |/\Z| \Z \Z ignore differences in Unicode "combining characters".
443443 Useful when searching voweled Hebrew or Arabic text.
444444
445+|/\%d| \%d \%d match specified decimal character (eg \%d123
446+|/\%x| \%x \%x match specified hex character (eg \%x2a)
447+|/\%o| \%o \%o match specified octal character (eg \%o040)
448+|/\%u| \%u \%u match specified multibyte character (eg \%u20ac)
449+|/\%U| \%U \%U match specified large multibyte character (eg
450+ \%U12345678)
445451
446452 Example matches ~
447453 \<\I\i* or
@@ -988,6 +994,11 @@
988994 \t <Tab>
989995 \r <CR> (NOT end-of-line!)
990996 \b <BS>
997+ \d123 decimal number of character
998+ \o40 octal number of character up to 0377
999+ \x20 hexadecimal number of character up to 0xff
1000+ \u20AC hex. number of multibyte character up to 0xffff
1001+ \U1234 hex. number of multibyte character up to 0xffffffff
9911002 NOTE: The other backslash codes mentioned above do not work inside
9921003 []!
9931004 - Matching with a collection can be slow, because each character in
@@ -996,7 +1007,7 @@
9961007 much faster than "[0-9]" and matches the same characters.
9971008
9981009 */\%[]* *E69* *E70* *E369*
999-\%[] A list of optionally matched atoms. This always matches.
1010+\%[] A sequence of optionally matched atoms. This always matches.
10001011 It matches as much of the list of atoms it contains as possible. Thus
10011012 it stops at the first atom that doesn't match. For example: >
10021013 /r\%[ead]
@@ -1011,6 +1022,17 @@
10111022 < Matches the words "r", "re", "ro", "rea", "roa", "read" and "road".
10121023 {not available when compiled without the +syntax feature}
10131024
1025+ */\%d* */\%x* */\%o* */\%u* */\%U/* *E678*
1026+
1027+\%d123 Matches the character specified with a decimal number. Must be
1028+ followed by a non-digit.
1029+\%o40 Matches the character specified with an octal number up to 0377.
1030+ Numbers below 040 must be followed by a non-octal digit or a non-digit.
1031+\%x2a Matches the character specified with up to two hexadecimal characters.
1032+\%u20AC Matches the character specified with up to four hexadecimal
1033+ characters.
1034+\%U1234abcd Matches the character specified with up to eight hexadecimal
1035+ characters.
10141036
10151037 ==============================================================================
10161038 7. Ignoring case in a pattern */ignorecase*
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/pi_netrw.txt
--- a/runtime/doc/pi_netrw.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/pi_netrw.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*pi_netrw.txt For Vim version 6.2. Last change: Jul 30, 2004
1+*pi_netrw.txt For Vim version 6.2. Last change: Sep 10, 2004
22
33
44 VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -17,9 +17,10 @@
1717 5. Ex Commands.........................................|netrw-ex|
1818 6. Variables and Options...............................|netrw-var|
1919 7. Directory Browser...................................|netrw-browse|
20-8. Debugging...........................................|netrw-debug|
21-9. History.............................................|netrw-history|
22-10. Credits.............................................|netrw-credits|
20+8. Problems and Fixes..................................|netrw-problems|
21+9. Debugging...........................................|netrw-debug|
22+10. History.............................................|netrw-history|
23+11. Credits.............................................|netrw-credits|
2324
2425 The functionality mentioned here is done via using |standard-plugin|
2526 techniques. This plugin is only available if
@@ -114,17 +115,22 @@
114115 =0 use default ftp (uid password)
115116 =1 use alternate ftp method (user uid password)
116117 g:netrw_ftpmode ="binary" (default)
117- ="ascii" (or your choice)
118+ ="ascii"
118119 g:netrw_uid (ftp) user-id, retained on a per-session basis
119120 g:netrw_passwd (ftp) password, retained on a per-session basis
120- g:netrw_win95ftp =0 use unix-style ftp even if win95/win98/winME
121- =1 use default method to do ftp
121+ g:netrw_win95ftp =1 if using Win95, will remove four trailing blank
122+ lines that o/s's ftp "provides" on transfers
123+ =0 force normal ftp behavior (no trailing line
124+ removal)
122125 g:netrw_cygwin =1 assume scp under windows is from cygwin
126+ Also permits network browsing to use
127+ ls with time and size sorting
123128 (default if windows)
124- =0 assume scp under windows accepts
125- windows-style paths (default otherwise)
126- g:netrw_use_nt_rcp=0 don't use the rcp of WinNT, Win2000 and WinXP (default)
127- =1 use the rcp of WinNT,... in binary mode
129+ =0 assume Windows' scp accepts windows-style paths
130+ Network browsing uses dir instead of ls
131+ This option is ignored if you're using unix
132+ g:netrw_use_nt_rcp=0 don't use the rcp of WinNT, Win2000 and WinXP
133+ =1 use WinNT's rcp in binary mode (default)
128134
129135 PATHS *netrw-path*
130136
@@ -167,7 +173,7 @@
167173 clean up.
168174
169175 One may modify any protocol's implementing external application
170-by settinbg a variable (ex. scp uses the variable g:netrw_scp_cmd,
176+by setting a variable (ex. scp uses the variable g:netrw_scp_cmd,
171177 which is defaulted to "scp -q").
172178
173179 Ftp, an old protocol, seems to be blessed by numerous implementations.
@@ -529,6 +535,7 @@
529535 i..........Long Listing............................|netrw-i|
530536 <c-l>......Refreshing the Listing..................|netrw-ctrl-l|
531537 o..........Browsing with a Horizontal Split........|netrw-o|
538+ p..........Preview Window..........................|netrw-p|
532539 q..........Listing Bookmarks.......................|netrw-q|
533540 r..........Reversing Sorting Order.................|netrw-r|
534541 R..........Renaming Files or Directories...........|netrw-R|
@@ -542,14 +549,16 @@
542549 ------- -----------
543550 Command Explanation
544551 ------- -----------
545- ? Causes Netrw to issue help
552+< ? Causes Netrw to issue help
546553 <cr> Netrw will enter the directory or read the file
547554 <del> Netrw will attempt to remove the file/directory
548555 d Make a directory
549556 D Netrw will attempt to remove the file(s)/directory(ies)
550557 R Netrw will attempt to rename the file(s)/directory(ies)
551558 - Makes Netrw go up one directory
552- a Show all of a directory (temporarily ignore g:netrw_list_hide)
559+ a Toggles between normal display,
560+ hiding (suppress display of files matching g:netrw_list_hide)
561+ showing (display only files which match g:netrw_list_hide)
553562 c Make current browsing directory the current directory
554563 <c-h> Edit file hiding list
555564 i Toggles between long and short listing
@@ -561,12 +570,18 @@
561570 v Enter the file/directory under the cursor in a new browser
562571 window. A vertical split is used.
563572 x Apply a function to a file.
564-<
573+
565574 NETRW BROWSER VARIABLES *netrw-browse-var*
566575 >
567576 --- -----------
568577 Var Explanation
569578 --- -----------
579+< g:netrw_alto change from above splitting to
580+ below splitting by setting this
581+ variable (see |netrw-o|)
582+ g:netrw_altv change from left splitting to
583+ right splitting by setting this
584+ variable (see |netrw-v|)
570585 g:netrw_ftp_browse_reject ftp can produce a number of errors
571586 and warnings that can show up as
572587 "directories" and "files" in the
@@ -576,6 +591,10 @@
576591 browsing directory. The browsing
577592 directory is contained in b:netrw_curdir
578593 g:netrw_list_cmd command for listing remote directories
594+ g:netrw_ftp_list_cmd options for passing along to ftp for
595+ directory listing. Defaults:
596+ unix or g:netrw_cygwin set: : "ls -lF"
597+ otherwise "dir"
579598 g:netrw_list_hide comma separated list of patterns for
580599 hiding files
581600 g:netrw_local_mkdir command for making a local directory
@@ -593,7 +612,7 @@
593612 comma-separated pattern sequence
594613 g:netrw_timefmt specify format string to strftime() (%c)
595614 g:netrw_winsize specify initial size of new o/v windows
596-<
615+
597616 INTRODUCTION TO DIRECTORY BROWSING
598617
599618 Netrw supports the browsing of directories on the local system and on remote
@@ -711,10 +730,10 @@
711730
712731 HIDING FILES OR DIRECTORIES *g:netrw-a* *g:netrw_list_hide*
713732
714-The "a" map toggles the netrw vim file browser (both remote and local) between
715-displaying hidden files (show-all) versus hiding files. For files to be
716-hidden, the g:netrw_list_hide variable must hold a comma delimited list of
717-patterns (ex. \.obj) to be hidden from normal listing. (see |netrw-h|)
733+Netrw's browsing facility allows one to use the hiding list in one of
734+three ways: ignore it, hide files which match, and show only those files
735+which match. The g:netrw_list_hide variable holds a comma delimited list
736+of patterns (ex. \.obj) which specify the hiding list. (also see |netrw-h|)
718737
719738
720739 EDIT FILE OR DIRECTORY HIDING LIST *netrw-h*
@@ -729,7 +748,20 @@
729748
730749 Normally one enters a file or directory using the <cr>. However, the "o" map
731750 allows one to open a new window to hold the new directory listing or file. A
732-horizontal split is used. (also see |netrw-v|)
751+horizontal split is used. (for vertical splitting, see |netrw-v|)
752+
753+Normally, the o key splits the window horizontally with the new window
754+and cursor at the top. To change to splitting the window horizontally
755+with the new window and cursor at the bottom, have
756+
757+ let g:netrw_alto = 1
758+
759+in your <.vimrc>.
760+
761+PREVIEW WINDOW
762+
763+One may use a preview window (currently only for local browsing) by using
764+the "p" key when the cursor is atop the desired filename to be previewed.
733765
734766
735767 SELECTING SORTING STYLE *netrw-s*
@@ -764,7 +796,15 @@
764796
765797 Normally one enters a file or directory using the <cr>. However, the "v"
766798 map allows one to open a new window to hold the new directory listing or
767-file. A vertical split is used. (also see |netrw-o|)
799+file. A vertical split is used. (for horizontal splitting, see |netrw-o|)
800+
801+Normally, the v key splits the window vertically with the new window
802+and cursor at the left. To change to splitting the window vertically
803+with the new window and cursor at the right, have
804+
805+ let g:netrw_altv = 1
806+
807+in your <.vimrc>.
768808
769809
770810 CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x*
@@ -831,7 +871,66 @@
831871
832872
833873 ==============================================================================
834-8. Debugging *netrw-debug*
874+8. Problems and Fixes *netrw-problems*
875+
876+ (This section is likely to grow as I get feedback)
877+ (also see |netrw-debug|)
878+
879+ P1. I use windows 95, and my ftp dumps four blank lines at the
880+ end of every read.
881+
882+ See |netrw-fixup|, and put the following into your
883+ <.vimrc> file:
884+
885+ let g:netrw_win95ftp= 1
886+
887+
888+
889+ P2. I use windows, and my network browsing with ftp doesn't sort by
890+ time or size
891+
892+ Windows' ftp has a minimal support for ls (ie. it doesn't
893+ accept sorting options). It doesn't support the -F which
894+ gives an explanatory character (ABC/ for "ABC is a directory").
895+ Netrw uses dir to get its short and long listings. If you
896+ think your ftp does support a full-up ls, put the following
897+ into your <.vimrc>:
898+
899+ let g:netrw_ftp_list_cmd= "ls -lF"
900+
901+ Alternatively, if you have cygwin on your Windows box, put
902+ into your <.vimrc>:
903+
904+ let g:netrw_cygwin= 1
905+
906+ P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw
907+ used ssh! That wasn't what I asked for...
908+
909+ Netrw has two methods for browsing remote directories: ssh
910+ and ftp. Unless you specify ftp specifically, ssh is used.
911+ When it comes time to do download a file (not just a directory
912+ listing), netrw will use the given protocol to do so.
913+
914+ P4. I would like long listings to be the default.
915+
916+ let g:netrw_longlist=1
917+
918+ P5. My times come up oddly in local browsing
919+
920+ Does your system's strftime() accept the "%c" to yield dates
921+ such as "Sun Apr 27 11:49:23 1997"? If not, do a "man strftime"
922+ and find out what option should be used. Then put it into
923+ your <.vimrc>:
924+ let g:netrw_timefmt= "%X" (where X is the option)
925+
926+ P6. I don't want my current directory changing just because I'm
927+ browsing somewhere.
928+
929+ let g:netrw_keepdir= 1
930+
931+
932+==============================================================================
933+9. Debugging *netrw-debug*
835934
836935 The <netrw.vim> script is typically available as:
837936
@@ -878,8 +977,37 @@
878977 drchipNOSPAM at campbellfamily.biz - NOSPAM
879978
880979 ==============================================================================
881-9. History *netrw-history*
980+10. History *netrw-history*
882981
982+ v48: * One may use ftp to do remote host file browsing
983+ * (windows and !cygwin) remote browsing with ftp can now use
984+ the "dir" command internally to provide listings
985+ * g:netrw_keepdir now allows one to keep the initial current
986+ directory as the current directory (normally the local
987+ file browser makes the currently viewed directory the
988+ current directory)
989+ * g:netrw_alto and g:netrw_altv now support alternate placement
990+ of windows started with o or v
991+ * Nread ? and Nwrite ? now uses echomsg (instead of echo) so
992+ :messages can repeat showing the help
993+ * bugfix: avoids problems with partial matches of directory names
994+ to prior buffers with longer names
995+ * one can suppress error messages with g:netrw_quiet
996+ * ctrl-h used instead of <Leader>h for editing hiding list
997+ * one may edit the sorting sequence with the S map
998+ * now allows confirmation of deletion with [y(es) n(o) a(ll) q(uit)]
999+ * the "x" map now handles special file viewing with:
1000+ (windows) rundll32 url.dll
1001+ (gnome) gnome-open
1002+ (kde) kfmclient
1003+ If none of these are on the executable path, then
1004+ NetrwFileHandlers.vim is used.
1005+ * directory bookmarking during both local and remote browsing
1006+ implemented
1007+ * one may view all, use the hiding list to suppress, or use the
1008+ hiding list to show-only remote and local file/directory listings
1009+ * improved unusual file and directory name handling
1010+ * preview window support
8831011 v47: * now handles local directory browsing.
8841012 v46: * now handles remote directory browsing
8851013 * g:netrw_silent (if 1) will cause all transfers to be silent'd
@@ -912,7 +1040,7 @@
9121040
9131041
9141042 ==============================================================================
915-10. Credits *netrw-credits*
1043+11. Credits *netrw-credits*
9161044
9171045 Vim editor by Bram Moolenaar (Thanks, Bram!)
9181046 dav support by C Campbell
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/syntax.txt
--- a/runtime/doc/syntax.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/syntax.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*syntax.txt* For Vim version 7.0aa. Last change: 2004 Sep 01
1+*syntax.txt* For Vim version 7.0aa. Last change: 2004 Sep 13
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -4014,6 +4014,11 @@
40144014 highlight comment ctermfg=green guifg=green
40154015 endif
40164016
4017+ *E679*
4018+Do make sure this syncolor.vim script does not use a "syntax on", set the
4019+'background' option or uses a "colorscheme" command, because it results in an
4020+endless loop.
4021+
40174022 Note that when a color scheme is used, there might be some confusion whether
40184023 your defined colors are to be used or the colors from the scheme. This
40194024 depends on the color scheme file. See |:colorscheme|.
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/tags
--- a/runtime/doc/tags Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/tags Mon Sep 13 20:26:32 2004 +0000
@@ -1218,11 +1218,16 @@
12181218 /\%>c pattern.txt /*\/\\%>c*
12191219 /\%>l pattern.txt /*\/\\%>l*
12201220 /\%>v pattern.txt /*\/\\%>v*
1221+/\%U/ pattern.txt /*\/\\%U\/*
12211222 /\%[] pattern.txt /*\/\\%[]*
12221223 /\%^ pattern.txt /*\/\\%^*
12231224 /\%c pattern.txt /*\/\\%c*
1225+/\%d pattern.txt /*\/\\%d*
12241226 /\%l pattern.txt /*\/\\%l*
1227+/\%o pattern.txt /*\/\\%o*
1228+/\%u pattern.txt /*\/\\%u*
12251229 /\%v pattern.txt /*\/\\%v*
1230+/\%x pattern.txt /*\/\\%x*
12261231 /\& pattern.txt /*\/\\&*
12271232 /\( pattern.txt /*\/\\(*
12281233 /\(\) pattern.txt /*\/\\(\\)*
@@ -1811,6 +1816,8 @@
18111816 :delete change.txt /*:delete*
18121817 :delf eval.txt /*:delf*
18131818 :delfunction eval.txt /*:delfunction*
1819+:delm motion.txt /*:delm*
1820+:delmarks motion.txt /*:delmarks*
18141821 :di change.txt /*:di*
18151822 :diffg diff.txt /*:diffg*
18161823 :diffget diff.txt /*:diffget*
@@ -3533,6 +3540,8 @@
35333540 E674 print.txt /*E674*
35343541 E675 print.txt /*E675*
35353542 E676 options.txt /*E676*
3543+E677 eval.txt /*E677*
3544+E678 pattern.txt /*E678*
35363545 E68 pattern.txt /*E68*
35373546 E69 pattern.txt /*E69*
35383547 E70 pattern.txt /*E70*
@@ -5476,6 +5485,7 @@
54765485 netrw-options pi_netrw.txt /*netrw-options*
54775486 netrw-passwd pi_netrw.txt /*netrw-passwd*
54785487 netrw-path pi_netrw.txt /*netrw-path*
5488+netrw-problems pi_netrw.txt /*netrw-problems*
54795489 netrw-protocol pi_netrw.txt /*netrw-protocol*
54805490 netrw-q pi_netrw.txt /*netrw-q*
54815491 netrw-r pi_netrw.txt /*netrw-r*
@@ -6554,6 +6564,7 @@
65546564 vim-arguments starting.txt /*vim-arguments*
65556565 vim-default-editor gui_w32.txt /*vim-default-editor*
65566566 vim-dev intro.txt /*vim-dev*
6567+vim-indent indent.txt /*vim-indent*
65576568 vim-kpart gui_x11.txt /*vim-kpart*
65586569 vim-mac intro.txt /*vim-mac*
65596570 vim-modes intro.txt /*vim-modes*
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/todo.txt
--- a/runtime/doc/todo.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/todo.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*todo.txt* For Vim version 7.0aa. Last change: 2004 Sep 06
1+*todo.txt* For Vim version 7.0aa. Last change: 2004 Sep 13
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,34 +30,40 @@
3030 *known-bugs*
3131 -------------------- Known bugs and current work -----------------------
3232
33+Endless loop when "syntax reset" in ~/.vim/after/syntax/syncolor.vim.
34+Crash when using ":set background=dark". Solved!
35+Limit init_highlight() to five recursive calls?
36+ patch for Vim 6.3 for free_oldval and init_highlight()?
37+
38+Crash with long line. (Walter Briscoe, Sep 13)
39+
40+Add fix for appending BOM to 6.3? Reported by Alex Jakushev.
41+
42+Win32 console doesn't compile. Does GetCommandLineW() work for non-GUI?
43+(Dave Roberts) If yes, then move the functions to another file.
44+link with kernel32.lib?
45+
3346 Aborting at the ATTENTION prompt causes trouble:
3447 buffer remains active, nwindows isn't closed (fixed in buffer.c)
3548 alternate buffer gets "read error" flag.
3649 ":sbuf" and ":ball" leave an empty window behind.
3750 Change in handle_swap_exists() also in 6.3?
51+Add enter_cleanup() and leave_cleanup() also in 6.3?
52+ buffer.c
53+ ex_eval.c
54+ proto/ex_eval.pro
55+ structs.h
56+ vim.h
3857
3958 Win32: When the path to a file has Russian characters, ":cd %:p:h" doesn't
4059 work. (Valery Kondakoff)
4160 Solved in os_mswin.c. Add to 6.3?
4261
62+Valencia: executable("xxd.exe") returns true while "!xxd" doesn't work.
63+
4364 For version 7.0:
65+
4466 - Include many PATCHES:
45- 8 Add functions:
46- setbufline() set line in any buffer (patch from Yegappan
47- Lakshmanan, 2003 Jan 21)
48- filter() Patch from Yegappan Lakshmanan, 2004 Jul 11
49- 8 Make it possible to delete marks. Charles Campbell has a patch that
50- does this with the markclear() function (2004 Jan 9).
51- And the ":delmark" command (2004 Feb 9)
52- http://mysite.verizon.net/astronaut/vim/index.html#Patch
53- ~/tmp/ptch.delmark.bz2
54- ~/tmp/ptch.markclear
55- Implement setmark(markname, lnum [, col [, filename]]) instead?
56- When "lnum" is zero delete the mark.
57- When "filename" has no wildcards and there is no matching buffer, add
58- the buffer (unlisted).
59- Patch for \xnn (Ciaran McCreesh) 2004 Jul 10
60- http://dev.gentoo.org/~ciaranm/patches/vim/vim-7.00a-regexp-numbered-characters-r5.patch
6167 7 Add 'taglistfiles' option, show file name and type when listing matching
6268 tags name with CTRL-D completion. Patch from Yegappan Lakshmanan.
6369 2004 Jul 11
@@ -94,9 +100,9 @@
94100 7 Completion of network shares, patch by Yasuhiro Matsumoto.
95101 Update 2004 Sep 6.
96102 How does this work? Missing comments.
97- gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
98- Update 2004 Sep 5
99- Missing docs. Search in 'runtimepath'?
103+ gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
104+ Update 2004 Sep 10
105+ More docs. Search in 'runtimepath'?
100106 How to get the messages into the .po files?
101107 --- did not respond (yet) --
102108 7 Make "5dd" on last-but-one-line not delete anything (Vi compatible).
@@ -198,6 +204,7 @@
198204 http://www.vim.org/scripts/script.php?script_id=747
199205 http://sourceforge.net/projects/insenvim
200206 http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
207+ Ivan Villanueva has something for Java.
201208 - PERSISTENT UNDO: store undo in a file.
202209 Support multiple threads. Show the list of changes in a window to be able
203210 to select a version.
@@ -262,7 +269,27 @@
262269 2004). Should also work for 'filetype'.
263270
264271 Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
265-Smilauer, 2004 Sep 5)
272+Smilauer, 2004 Sep 13)
273+
274+Win32: In 'fileencodings' allow using "acp" for the active codepage. Useful
275+value: "ucs-bom,utf-8,acp,latin1"
276+
277+For manipulating buffers without opening a new window, support Virtual
278+windows. Example:
279+ :virtwin let l = GetBufLine(4, 10)
280+ :fun GetBufLine(bufnr, lnum)
281+ : exe "buffer " . a:bufnr
282+ : return getline(lnum)
283+ :endfun
284+The getline() and setline() functions could work for other buffers, using a
285+Virtual window.
286+A Virtual window only exists for one command. There can be several (for
287+nested commands). The window works as if it comes after the last window, size
288+is the Vim window size, but it's never displayed.
289+
290+Win32: In the generated batch files, use $VIMRUNTIME if it's set. Examples by
291+Mathias Michaelis (2004 Sep 6)
292+Also place vimtutor.bat in %windir%?
266293
267294
268295 Vi incompatibility:
@@ -854,6 +881,7 @@
854881 dithering to make grey text?
855882 - Add a flag in 'printoptions' to add an empty page to make the total
856883 number even. "addempty"? (Mike Williams)
884+ - Respect 'linebreak'. Perhaps also 'showbreak'?
857885 - Should interpreted CTRL-L as a page break.
858886 - Grey line numbers are not always readable. Add field in 'printoptions'.
859887 Default to black when no syntax highlighting.
@@ -1457,6 +1485,13 @@
14571485 Packages are loaded automatically when first used, from
14581486 $VIMRUNTIME/packages (or use a search path).
14591487 7 Make globpath() also work with "**" and upwards search. (Brian Medley)
1488+7 Add the markclear() function to delete a mark in another buffer. Charles
1489+ Campbell (2004 Jan 9)
1490+ http://mysite.verizon.net/astronaut/vim/index.html#Patch
1491+ Implement setmark(markname, lnum [, col [, filename]]) instead?
1492+ When "lnum" is zero delete the mark.
1493+ When "filename" has no wildcards and there is no matching buffer, add
1494+ the buffer (unlisted).
14601495 7 Pre-parse or compile Vim scripts into a bytecode.
14611496 1. Put the bytecode with the original script, with an ":if
14621497 has('bytecode')" around it, so that it's only used with a Vim that
@@ -2556,8 +2591,8 @@
25562591 This one is also very slow on "/* some comment */": "^\/\*\(.*[^/]\)*$".
25572592 7 Recognize "[a-z]", "[0-9]", etc. and replace them with the faster "\l" and
25582593 "\d".
2559-7 Add a way to specify characters as hex, octal or <C-M> form. Could be
2560- \%1ax, \%200o and \%<C-M>. Also \%1234u for multi-byte chars.
2594+7 Add a way to specify characters in <C-M> or <Key> form. Could be
2595+ \%<C-M>.
25612596 8 Flags that apply to the whole pattern.
25622597 This works for all places where a regexp is used.
25632598 Add "\q" to not store this pattern as the last search pattern?
@@ -2612,11 +2647,6 @@
26122647 before saving files: "Save modified buffer "/path/file"? (Yes/Hide/No
26132648 Save-all/hide-All/Quit) ".
26142649 - ":s/pat/foo/3": find 3rd match of "pat", like sed. (Thomas Koehler)
2615-- Special characters in patterns:
2616- Inside []:
2617- \012 octal character
2618- \0x1a hex character
2619- \0<BS> \0<Esc>: special character
26202650 7 When searching with 'n' give message when getting back where the search
26212651 first started. Remember start of search in '/ mark.
26222652 7 Add option that scrolls screen to put cursor in middle of screen after
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/usr_01.txt
--- a/runtime/doc/usr_01.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/usr_01.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*usr_01.txt* For Vim version 7.0aa. Last change: 2004 May 01
1+*usr_01.txt* For Vim version 7.0aa. Last change: 2004 Sep 09
22
33 VIM USER MANUAL - by Bram Moolenaar
44
@@ -104,11 +104,13 @@
104104 first Vim commands. This is a 30 minute tutorial that teaches the most basic
105105 Vim functionality hands-on.
106106
107-On Unix and MS-Windows, if Vim has been properly installed, you can start it
108-from the shell:
107+On Unix, if Vim has been properly installed, you can start it from the shell:
109108 >
110109 vimtutor
111110
111+On MS-Windows you can find it in the Program/Vim menu. Or execute
112+vimtutor.bat in the $VIMRUNTIME directory.
113+
112114 This will make a copy of the tutor file, so that you can edit it without
113115 the risk of damaging the original.
114116 There are a few translated versions of the tutor. To find out if yours is
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/doc/version7.txt
--- a/runtime/doc/version7.txt Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/doc/version7.txt Mon Sep 13 20:26:32 2004 +0000
@@ -1,4 +1,4 @@
1-*version7.txt* For Vim version 7.0aa. Last change: 2004 Sep 06
1+*version7.txt* For Vim version 7.0aa. Last change: 2004 Sep 13
22
33
44 VIM REFERENCE MANUAL by Bram Moolenaar
@@ -122,6 +122,8 @@
122122
123123 |:keepalt| Do not change the alternate file.
124124
125+|:delmarks| Delete marks.
126+
125127
126128 New functions: ~
127129
@@ -135,6 +137,8 @@
135137 repeat(expr, count) |repeat()| Repeat "expr" "count" times.
136138 (Christophe Poucet)
137139 tr(expr, from, to) |tr()| Translate characters. (Ron Aaron)
140+system(cmd, input) |system()| Filters {input} through a shell
141+ command.
138142
139143
140144 New autocommand events: ~
@@ -146,6 +150,20 @@
146150 |ColorScheme| after loading a color scheme
147151
148152
153+New items in search patterns: ~
154+|/\%d| \%d123 search for character with decimal number
155+|/\]| [\d123] idem, in a colletion
156+|/\%o| \%o103 search for character with octal number
157+|/\]| [\o1o3] idem, in a colletion
158+|/\%x| \%x1a search for character with 2 pos. hex number
159+|/\]| [\x1a] idem, in a colletion
160+|/\%u| \%u12ab search for character with 4 pos. hex number
161+|/\]| [\u12ab] idem, in a colletion
162+|/\%U| \%U1234abcd search for character with 8 pos. hex number
163+|/\]| [\U1234abcd] idem, in a colletion
164+ (The above partly by Ciaran McCreesh)
165+
166+
149167 New Syntax/Indent/FTplugin files: ~
150168
151169 MuPAD source syntax, indent and ftplugin. (Dave Silvia)
@@ -348,4 +366,11 @@
348366 command line with non-ASCII characters are not used correctly. Recode the
349367 file names when 'encoding' is set, using the Unicode command line.
350368
369+Win32 console: When the default for 'encoding' ends up to be "latin1", the
370+default value of 'isprint' was wrong.
371+
372+When an error message is given while waiting for a character (e.g., when an
373+xterm reports the number of colors), the hit-enter prompt overwrote the last
374+line. Don't reset msg_didout in normal_cmd() for K_IGNORE.
375+
351376 vim:tw=78:ts=8:ft=help:norl:
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/filetype.vim
--- a/runtime/filetype.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/filetype.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,7 +1,7 @@
11 " Vim support file to detect file types
22 "
33 " Maintainer: Bram Moolenaar <Bram@vim.org>
4-" Last Change: 2004 Aug 30
4+" Last Change: 2004 Sep 11
55
66 " Listen very carefully, I will say this only once
77 if exists("did_load_filetypes")
@@ -100,6 +100,9 @@
100100 au BufNewFile,BufRead *.am
101101 \ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif
102102
103+" ALSA configuration
104+au BufNewFile,BufRead ~/.asoundrc,/usr/share/alsa/alsa.conf,/etc/asound.conf setf alsaconf
105+
103106 " Arc Macro Language
104107 au BufNewFile,BufRead *.aml setf aml
105108
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/ftplugin/vim.vim
--- a/runtime/ftplugin/vim.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/ftplugin/vim.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,7 +1,7 @@
11 " Vim filetype plugin
22 " Language: Vim
33 " Maintainer: Bram Moolenaar <Bram@vim.org>
4-" Last Change: 2004 Feb 20
4+" Last Change: 2004 Sep 13
55
66 " Only do this when not done yet for this buffer
77 if exists("b:did_ftplugin")
@@ -33,10 +33,10 @@
3333 setlocal commentstring=\"%s
3434
3535 " Move around functions.
36-noremap <silent><buffer> [[ :call search('^\s*fu\%[nction]\>', "bW")<CR>
37-noremap <silent><buffer> ]] :call search('^\s*fu\%[nction]\>', "W")<CR>
38-noremap <silent><buffer> [] :call search('^\s*endf*\%[unction]\>', "bW")<CR>
39-noremap <silent><buffer> ][ :call search('^\s*endf*\%[unction]\>', "W")<CR>
36+noremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
37+noremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
38+noremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
39+noremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
4040
4141 " Move around comments
4242 noremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/makemenu.vim
--- a/runtime/makemenu.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/makemenu.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,6 +1,6 @@
11 " Script to define the syntax menu in synmenu.vim
22 " Maintainer: Bram Moolenaar <Bram@vim.org>
3-" Last Change: 2004 Aug 30
3+" Last Change: 2004 Sep 11
44
55 " This is used by "make menu" in the src directory.
66 edit <sfile>:p:h/synmenu.vim
@@ -56,6 +56,7 @@
5656 SynMenu AB.AceDB\ model:acedb
5757 SynMenu AB.Ada:ada
5858 SynMenu AB.AfLex:aflex
59+SynMenu AB.ALSA\ config:alsaconf
5960 SynMenu AB.Altera\ AHDL:ahdl
6061 SynMenu AB.Amiga\ DOS:amiga
6162 SynMenu AB.AMPL:ampl
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/plugin/NetrwFileHandlers.vim
--- a/runtime/plugin/NetrwFileHandlers.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/plugin/NetrwFileHandlers.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,15 +1,15 @@
11 " NetrwFileHandlers: contains various extension-based file handlers for
22 " netrw's browsers' x command ("eXecute launcher")
33 " Author: Charles E. Campbell, Jr.
4-" Date: Aug 27, 2004
5-" Version: 2
4+" Date: Aug 31, 2004
5+" Version: 3a NOT RELEASED
66
77 " ---------------------------------------------------------------------
88 " Prevent Reloading: {{{1
99 if exists("g:loaded_netrwfilehandlers") || &cp
1010 finish
1111 endif
12-let g:loaded_netrwfilehandlers= "v2"
12+let g:loaded_netrwfilehandlers= "v3a"
1313
1414 " ---------------------------------------------------------------------
1515 " NetrwFileHandler_html: handles html when the user hits "x" when the {{{1
@@ -245,6 +245,7 @@
245245 elseif executable("gswin32")
246246 exe "silent! !gswin32 \"".a:ps.'"'
247247 redraw!
248+ else
248249 " call Dret("NetrwFileHandler_ps 0")
249250 return 0
250251 endif
@@ -254,4 +255,59 @@
254255 endfun
255256
256257 " ---------------------------------------------------------------------
258+" NetrwFileHandler_eps: handles encapsulated PostScript files {{{1
259+fun! NetrwFileHandler_eps(eps)
260+" call Dfunc("NetrwFileHandler_ps()")
261+ if executable("gs")
262+ exe "silent! !gs ".a:eps
263+ redraw!
264+ elseif executable("ghostscript")
265+ exe "silent! !ghostscript ".a:eps
266+ redraw!
267+ elseif executable("ghostscript")
268+ exe "silent! !ghostscript ".a:eps
269+ redraw!
270+ elseif executable("gswin32")
271+ exe "silent! !gswin32 \"".a:eps.'"'
272+ redraw!
273+ else
274+" call Dret("NetrwFileHandler_ps 0")
275+ return 0
276+ endif
277+endfun
278+
279+" ---------------------------------------------------------------------
280+" NetrwFileHandler_fig: handles xfig files {{{1
281+fun! NetrwFileHandler_fig(fig)
282+" call Dfunc("NetrwFileHandler_fig()")
283+ if executable("xfig")
284+ exe "silent! !xfig ".a:fig
285+ redraw!
286+ else
287+" call Dret("NetrwFileHandler_fig 0")
288+ return 0
289+ endif
290+
291+" call Dret("NetrwFileHandler_fig 1")
292+ return 1
293+endfun
294+
295+" ---------------------------------------------------------------------
296+" NetrwFileHandler_obj: handles tgif's obj files {{{1
297+fun! NetrwFileHandler_obj(obj)
298+" call Dfunc("NetrwFileHandler_obj()")
299+ if has("unix") && executable("tgif")
300+ exe "silent! !tgif ".a:obj
301+ redraw!
302+ else
303+" call Dret("NetrwFileHandler_obj 0")
304+ return 0
305+ endif
306+
307+" call Dret("NetrwFileHandler_obj 1")
308+ return 1
309+endfun
310+
311+
312+" ---------------------------------------------------------------------
257313 " vim: ts=4 fdm=marker
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/plugin/netrw.vim
--- a/runtime/plugin/netrw.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/plugin/netrw.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,20 +1,20 @@
11 " netrw.vim: Handles file transfer and remote directory listing across a network
2-" Last Change: Aug 27, 2004
2+" Last Change: Sep 10, 2004
33 " Maintainer: Charles E. Campbell, Jr. PhD <drchipNOSPAM at campbellfamily.biz>
4-" Version: 47
4+" Version: 48
55 " License: Vim License (see vim's :help license)
66 "
7-" But be doers of the word, and not only hearers, deluding your own selves
7+" But be doers of the Word, and not only hearers, deluding your own selves
88 " (James 1:22 RSV)
99 " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1010 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
1111
1212 " ---------------------------------------------------------------------
1313 " Prevent Reloading: {{{1
14-if exists("loaded_netrw") || &cp
14+if exists("g:loaded_netrw") || &cp
1515 finish
1616 endif
17-let loaded_netrw = "v47"
17+let g:loaded_netrw = "v48"
1818 let s:save_cpo = &cpo
1919 let loaded_explorer = 1
2020 set cpo&vim
@@ -43,6 +43,13 @@
4343 let g:netrw_list_cmd= ""
4444 endif
4545 endif
46+if !exists("g:netrw_ftp_list_cmd")
47+ if has("unix") || exists("g:netrw_cygwin")
48+ let g:netrw_ftp_list_cmd= "ls -lF"
49+ else
50+ let g:netrw_ftp_list_cmd= "dir"
51+ endif
52+endif
4653 if !exists("g:netrw_rm_cmd")
4754 let g:netrw_rm_cmd = "ssh HOSTNAME rm"
4855 endif
@@ -111,22 +118,28 @@
111118 let g:netrw_ftp_browse_reject='^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not'
112119 endif
113120 if !exists("g:netrw_keepdir")
114- let g:netrw_keepdir= 0
121+ let g:netrw_keepdir= 1
115122 endif
116123 if !exists("s:netrw_cd_escape")
117124 if has("win32") || has("win95") || has("win64") || has("win16")
118125 let s:netrw_cd_escape="#% "
119126 else
120- let s:netrw_cd_escape="*$%'\" ?`"
127+ let s:netrw_cd_escape="[]#*$%'\" ?`!&();<>\\"
121128 endif
122129 endif
123130 if !exists("s:netrw_glob_escape")
124131 if has("win32") || has("win95") || has("win64") || has("win16")
125132 let s:netrw_glob_escape= ""
126133 else
127- let s:netrw_glob_escape= '[]*?`{~'
134+ let s:netrw_glob_escape= '[]*?`{~$'
128135 endif
129136 endif
137+if !exists("g:netrw_alto")
138+ let g:netrw_alto= 0
139+endif
140+if !exists("g:netrw_altv")
141+ let g:netrw_altv= 0
142+endif
130143
131144 " BufEnter event ignored by decho when following variable is true
132145 " Has a side effect that doau BufReadPost doesn't work, so
@@ -286,18 +299,18 @@
286299
287300 if match(choice,"?") == 0
288301 " give help
289- echo 'NetRead Usage:'
290- echo ':Nread machine:path uses rcp'
291- echo ':Nread "machine path" uses ftp with <.netrc>'
292- echo ':Nread "machine id password path" uses ftp'
293- echo ':Nread dav://machine[:port]/path uses cadaver'
294- echo ':Nread fetch://machine/path uses fetch'
295- echo ':Nread ftp://[user@]machine[:port]/path uses ftp autodetects <.netrc>'
296- echo ':Nread http://[user@]machine/path uses http wget'
297- echo ':Nread rcp://[user@]machine/path uses rcp'
298- echo ':Nread rsync://machine[:port]/path uses rsync'
299- echo ':Nread scp://[user@]machine[[:#]port]/path uses scp'
300- echo ':Nread sftp://[user@]machine[[:#]port]/path uses sftp'
302+ echomsg 'NetRead Usage:'
303+ echomsg ':Nread machine:path uses rcp'
304+ echomsg ':Nread "machine path" uses ftp with <.netrc>'
305+ echomsg ':Nread "machine id password path" uses ftp'
306+ echomsg ':Nread dav://machine[:port]/path uses cadaver'
307+ echomsg ':Nread fetch://machine/path uses fetch'
308+ echomsg ':Nread ftp://[user@]machine[:port]/path uses ftp autodetects <.netrc>'
309+ echomsg ':Nread http://[user@]machine/path uses http wget'
310+ echomsg ':Nread rcp://[user@]machine/path uses rcp'
311+ echomsg ':Nread rsync://machine[:port]/path uses rsync'
312+ echomsg ':Nread scp://[user@]machine[[:#]port]/path uses scp'
313+ echomsg ':Nread sftp://[user@]machine[[:#]port]/path uses sftp'
301314 break
302315
303316 elseif match(choice,"^\"") != -1
@@ -315,7 +328,9 @@
315328 let wholechoice = wholechoice . " " . choice
316329 let ichoice = ichoice + 1
317330 if ichoice > a:0
318- echoerr "Unbalanced string in filename '". wholechoice ."'"
331+ if !exists("g:netrw_quiet")
332+ echoerr "Unbalanced string in filename '". wholechoice ."'"
333+ endif
319334 " call Dret("NetRead")
320335 return
321336 endif
@@ -397,11 +412,10 @@
397412 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
398413 endif
399414 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
400- if getline(1) !~ "^$"
415+ if getline(1) !~ "^$" && !exists("g:netrw_quiet")
401416 let debugkeep= &debug
402417 set debug=msg
403418 echoerr getline(1)
404- exe "echomsg '".getline(1)."'"
405419 let &debug= debugkeep
406420 endif
407421 bd!
@@ -445,7 +459,9 @@
445459 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
446460 if getline(1) !~ "^$"
447461 " call Decho("error<".getline(1).">")
448- echoerr getline(1)
462+ if !exists("g:netrw_quiet")
463+ echoerr getline(1)
464+ endif
449465 endif
450466 bd!
451467 let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
@@ -475,7 +491,9 @@
475491 elseif b:netrw_method == 5 " read with http (wget)
476492 " call Decho("read via http (method #5)")
477493 if g:netrw_http_cmd == ""
478- echoerr "neither wget nor fetch command is available"
494+ if !exists("g:netrw_quiet")
495+ echoerr "neither wget nor fetch command is available"
496+ endif
479497 exit
480498 endif
481499
@@ -550,7 +568,9 @@
550568 " fetch://[user@]host[:http]/path
551569 elseif b:netrw_method == 8 " read with fetch
552570 if g:netrw_fetch_cmd == ""
553- echoerr "fetch command not available"
571+ if !exists("g:netrw_quiet")
572+ echoerr "fetch command not available"
573+ endif
554574 exit
555575 endif
556576 if exists("g:netrw_option") && g:netrw_option == ":http"
@@ -749,17 +769,17 @@
749769
750770 " Reconstruct Choice if choice starts with '"'
751771 if match(choice,"?") == 0
752- echo 'NetWrite Usage:"'
753- echo ':Nwrite machine:path uses rcp'
754- echo ':Nwrite "machine path" uses ftp with <.netrc>'
755- echo ':Nwrite "machine id password path" uses ftp'
756- echo ':Nwrite dav://[user@]machine/path uses cadaver'
757- echo ':Nwrite fetch://[user@]machine/path uses fetch'
758- echo ':Nwrite ftp://machine[#port]/path uses ftp (autodetects <.netrc>)'
759- echo ':Nwrite rcp://machine/path uses rcp'
760- echo ':Nwrite rsync://[user@]machine/path uses rsync'
761- echo ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
762- echo ':Nwrite sftp://[user@]machine/path uses sftp'
772+ echomsg 'NetWrite Usage:"'
773+ echomsg ':Nwrite machine:path uses rcp'
774+ echomsg ':Nwrite "machine path" uses ftp with <.netrc>'
775+ echomsg ':Nwrite "machine id password path" uses ftp'
776+ echomsg ':Nwrite dav://[user@]machine/path uses cadaver'
777+ echomsg ':Nwrite fetch://[user@]machine/path uses fetch'
778+ echomsg ':Nwrite ftp://machine[#port]/path uses ftp (autodetects <.netrc>)'
779+ echomsg ':Nwrite rcp://machine/path uses rcp'
780+ echomsg ':Nwrite rsync://[user@]machine/path uses rsync'
781+ echomsg ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
782+ echomsg ':Nwrite sftp://[user@]machine/path uses sftp'
763783 break
764784
765785 elseif match(choice,"^\"") != -1
@@ -775,7 +795,9 @@
775795 let wholechoice= wholechoice . " " . choice
776796 let ichoice = ichoice + 1
777797 if choice > a:0
778- echoerr "Unbalanced string in filename '". wholechoice ."'"
798+ if !exists("g:netrw_quiet")
799+ echoerr "Unbalanced string in filename '". wholechoice ."'"
800+ endif
779801 " call Dret("NetWrite")
780802 return
781803 endif
@@ -843,7 +865,9 @@
843865 endif
844866 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
845867 if getline(1) !~ "^$"
846- echoerr getline(1)
868+ if !exists("g:netrw_quiet")
869+ echoerr getline(1)
870+ endif
847871 let mod=1
848872 endif
849873 bd!
@@ -880,7 +904,9 @@
880904 exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
881905 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
882906 if getline(1) !~ "^$"
883- echoerr getline(1)
907+ if !exists("g:netrw_quiet")
908+ echoerr getline(1)
909+ endif
884910 let mod=1
885911 endif
886912 bd!
@@ -906,7 +932,9 @@
906932 ".........................................
907933 " http: NetWrite Method #5
908934 elseif b:netrw_method == 5
909- echoerr "***warning*** currently <netrw.vim> does not support writing using http:"
935+ if !exists("g:netrw_quiet")
936+ echoerr "***warning*** currently <netrw.vim> does not support writing using http:"
937+ endif
910938
911939 ".........................................
912940 " dav: NetWrite Method #6
@@ -997,12 +1025,18 @@
9971025 " call Dfunc("NetBrowse(dirname<".a:dirname.">) longlist=".g:netrw_longlist)
9981026
9991027 " sanity check
1000- if exists("b:netrw_method") && (b:netrw_method =~ '[23]' && !executable("ftp"))
1001- echoerr "***netrw*** this system doesn't support remote directory listing via ftp"
1002-" call Dret("NetBrowse")
1003- return
1028+ if exists("b:netrw_method") && b:netrw_method =~ '[23]'
1029+ if !executable("ftp")
1030+ if !exists("g:netrw_quiet")
1031+ echoerr "***netrw*** this system doesn't support remote directory listing via ftp"
1032+ endif
1033+" call Dret("NetBrowse")
1034+ return
1035+ endif
10041036 elseif !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ''
1005- echoerr "***netrw*** this system doesn't support remote directory listing via ssh"
1037+ if !exists("g:netrw_quiet")
1038+ echoerr "***netrw*** this system doesn't support remote directory listing via ssh"
1039+ endif
10061040 " call Dret("NetBrowse")
10071041 return
10081042 endif
@@ -1014,7 +1048,9 @@
10141048 let dirpat = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
10151049 " call Decho("dirpat<".dirpat.">")
10161050 if a:dirname !~ dirpat
1017- echoerr "NetBrowse: I don't understand your dirname<".a:dirname.">"
1051+ if !exists("g:netrw_quiet")
1052+ echoerr "NetBrowse: I don't understand your dirname<".a:dirname.">"
1053+ endif
10181054 " call Dret("NetBrowse : badly formatted dirname<".a:dirname.">")
10191055 return
10201056 endif
@@ -1031,7 +1067,7 @@
10311067 " call Decho("set up fname <".fname .">")
10321068
10331069 if method == "ftp"
1034- let listcmd = "-lF"
1070+ let listcmd = g:netrw_ftp_list_cmd
10351071 else
10361072 let listcmd = substitute(g:netrw_list_cmd,'\<HOSTNAME\>',user.machine,'')
10371073 endif
@@ -1041,14 +1077,18 @@
10411077 endif
10421078
10431079 " optionally sort by time (-t) or by size (-S)
1044- if g:netrw_sort_by =~ "^t"
1045- let listcmd= listcmd."t"
1046- elseif g:netrw_sort_by =~ "^s"
1047- let listcmd= listcmd."S"
1048- endif
1049- " optionally sort in reverse
1050- if g:netrw_sort_direction =~ "^r"
1051- let listcmd= listcmd."r"
1080+ if listcmd == "dir" && g:netrw_sort_by =~ "^[ts]"
1081+ echoerr "***warning*** windows' ftp doesn't support time/size sorts (get cygwin, set g:netrw_cygwin)"
1082+ else
1083+ if g:netrw_sort_by =~ "^t"
1084+ let listcmd= listcmd."t"
1085+ elseif g:netrw_sort_by =~ "^s"
1086+ let listcmd= listcmd."S"
1087+ endif
1088+ " optionally sort in reverse
1089+ if g:netrw_sort_direction =~ "^r" && listcmd == "dir"
1090+ let listcmd= listcmd."r"
1091+ endif
10521092 endif
10531093
10541094 " call Decho("set up listcmd<".listcmd.">")
@@ -1071,6 +1111,7 @@
10711111
10721112 " remote-read the requested file into current buffer
10731113 enew!
1114+" call Decho("exe file .method."://".user.machine."/".escape(path,s:netrw_cd_escape))
10741115 exe "file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape)
10751116 exe "silent doau BufReadPre ".fname
10761117 silent call s:NetRead(method."://".user.machine."/".path)
@@ -1087,9 +1128,9 @@
10871128 " call Decho("Perform directory listing...")
10881129 " set up new buffer and map
10891130 let bufname = method.'://'.user.machine.'/'.path
1090- let bufnamenr = bufexists(bufname)
1131+ let bufnamenr = bufnr(bufname.'$')
10911132 " call Decho("bufname<".bufname."> bufnamenr=".bufnamenr)
1092- if bufnamenr != 0
1133+ if bufnamenr != -1
10931134 " buffer already exists, switch to it!
10941135 " call Decho("buffer already exists, switching to it")
10951136 exe "b ".bufnamenr
@@ -1104,6 +1145,7 @@
11041145
11051146 " rename file to reflect where its from
11061147 setlocal ts=32 bt=nofile bh=wipe nobl
1148+" call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
11071149 exe 'file '.escape(bufname,s:netrw_cd_escape)
11081150 " call Decho("renaming file to bufname<".bufname.">")
11091151 setlocal bt=nowrite bh=hide nobl
@@ -1113,17 +1155,17 @@
11131155 nnoremap <buffer> <silent> <cr> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
11141156 nnoremap <buffer> <silent> <c-l> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
11151157 nnoremap <buffer> <silent> - :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'../'))<cr>
1116- nnoremap <buffer> <silent> a :let g:netrw_hide=!g:netrw_hide<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
1158+ nnoremap <buffer> <silent> a :let g:netrw_hide=(g:netrw_hide+1)%3<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
11171159 nnoremap <buffer> <silent> b :<c-u>call <SID>NetBookmarkDir(0,expand("%"))<cr>
11181160 nnoremap <buffer> <silent> B :<c-u>call <SID>NetBookmarkDir(1,expand("%"))<cr>
11191161 nnoremap <buffer> <silent> <c-h> :call <SID>NetHideEdit(0)<cr>
11201162 nnoremap <buffer> <silent> i :call <SID>NetLongList(0)<cr>
1121- nnoremap <buffer> <silent> o :exe g:netrw_winsize."wincmd s"<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
1163+ nnoremap <buffer> <silent> o :exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
11221164 nnoremap <buffer> <silent> q :<c-u>call <SID>NetBookmarkDir(2,expand("%"))<cr>
11231165 nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
11241166 nnoremap <buffer> <silent> s :call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
11251167 nnoremap <buffer> <silent> S :call <SID>NetSortSequence(0)<cr>
1126- nnoremap <buffer> <silent> v :exe g:netrw_winsize."wincmd v"<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
1168+ nnoremap <buffer> <silent> v :exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
11271169 nnoremap <buffer> <silent> x :exe "norm! 0"<bar>call <SID>NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()),1)<cr>
11281170 nnoremap <buffer> <silent> <2-leftmouse> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
11291171 exe 'nnoremap <buffer> <silent> <del> :exe "norm! 0"<bar>call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
@@ -1157,7 +1199,11 @@
11571199 keepjumps put ='\" Sorted by '.sortby
11581200 endif
11591201 if g:netrw_list_hide != "" && g:netrw_hide
1160- keepjumps put ='\" Hiding: '.g:netrw_list_hide
1202+ if g:netrw_hide == 1
1203+ keepjumps put ='\" Hiding: '.g:netrw_list_hide
1204+ else
1205+ keepjumps put ='\" Showing: '.g:netrw_list_hide
1206+ endif
11611207 let s:netrw_bannercnt= s:netrw_bannercnt + 1
11621208 endif
11631209 keepjumps put ='\" Quick Help: ?:help -:go up dir D:delete R:rename s:sort-by x:exec'
@@ -1167,26 +1213,42 @@
11671213 " Use ftp if that was the file-transfer method selected, otherwise use ssh
11681214 " Note that not all ftp servers honor the options for ls
11691215 if method == "ftp"
1170- call NetBrowseFtpCmd(path,"ls ".listcmd)
1216+ " use ftp to get remote file listing
1217+" call Decho("use ftp to get remote file listing")
1218+ call NetBrowseFtpCmd(path,listcmd)
1219+
11711220 keepjumps 1d
11721221
11731222 if !g:netrw_longlist
1223+ " shorten the listing
11741224 " call Decho("generate short listing")
1175- " shorten the listing
11761225 exe "keepjumps ".s:netrw_bannercnt
11771226 " cleanup
11781227 while getline(".") =~ g:netrw_ftp_browse_reject
11791228 keepjumps d
11801229 endwhile
1181- keepjumps put='../'
1182- keepjumps put='./'
1230+
1231+ " if there's no ../ listed, then put ./ and ../ in
1232+ let line1= line(".")
1233+ keepjumps 1
1234+ silent keepjumps call search('^\.\.\/\%(\s\|$\)','W')
1235+ let line2= line(".")
1236+ if line2 == 0
1237+ keepjumps put='../'
1238+ keepjumps put='./'
1239+ endif
1240+ exe "keepjumps ".line1
1241+ keepjumps norm! 0
1242+
1243+ " more cleanup
11831244 exe 'keepjumps silent '.s:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
11841245 exe "keepjumps silent ".s:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#'
11851246 exe "keepjumps silent ".s:netrw_bannercnt.',$g/ -> /s# -> .*$#/#'
11861247 endif
11871248
11881249 else
1189-" call Decho("use ssh")
1250+ " use ssh to get remote file listing
1251+" call Decho("use ssh to get remote file listing")
11901252 let shq= &shq? &shq : ( &sxq? &sxq : "'")
11911253 " call Decho("exe silent r! ".listcmd." ".shq.escape(path,s:netrw_cd_escape).shq)
11921254 exe "silent r! ".listcmd." ".shq.escape(path,s:netrw_cd_escape).shq
@@ -1210,8 +1272,17 @@
12101272 while getline(".") =~ '^total\s\+\d\+$' || getline(".") =~ 'Trying\s\+\d\+.*$'
12111273 keepjumps d
12121274 endwhile
1213- exe 'keepjumps '.s:netrw_bannercnt."put='./'"
1214- exe 'keepjumps '.s:netrw_bannercnt."put='../'"
1275+ " if there's no ../ listed, then put ./ and ../ in
1276+ let line1= line(".")
1277+ keepjumps 1
1278+ silent keepjumps call search('^\.\.\/\%(\s\|$\)','W')
1279+ let line2= line(".")
1280+ if line2 == 0
1281+ exe 'keepjumps '.s:netrw_bannercnt."put='./'"
1282+ exe 'keepjumps '.s:netrw_bannercnt."put='../'"
1283+ endif
1284+ exe "keepjumps ".line1
1285+ keepjumps norm! 0
12151286 endif
12161287
12171288 exe 'keepjumps silent '.s:netrw_bannercnt.',$s/ -> .*$//e'
@@ -1229,6 +1300,7 @@
12291300 exe "keepjumps silent ".s:netrw_bannercnt.',$s/\t[-dstrwx]\+/\t/e'
12301301 endif
12311302 endif
1303+ exe "keepjumps ".s:netrw_bannercnt
12321304 setlocal nomod
12331305 setlocal noma
12341306
@@ -1266,6 +1338,7 @@
12661338 else
12671339 " strip off a directory name from dirname
12681340 let dirname= substitute(dirname,'^\(.*/\)[^/]\+/','\1','')
1341+ exe "silent! keepjumps ".curline.",$d"
12691342 endif
12701343 " call Decho("go up one dir: dirname<".dirname."> trailer<".trailer.">")
12711344
@@ -1283,9 +1356,13 @@
12831356 " NetGetWord: it gets the directory named under the cursor
12841357 fun! <SID>NetGetWord()
12851358 " call Dfunc("NetGetWord() line#".line("."))
1286- let dirname= getline(".")
1287- if dirname =~ '\t'
1288- let dirname= substitute(dirname,'\t.*$','','e')
1359+ if line(".") < s:netrw_bannercnt
1360+ let dirname= "./"
1361+ else
1362+ let dirname= getline(".")
1363+ if dirname =~ '\t'
1364+ let dirname= substitute(dirname,'\t.*$','','e')
1365+ endif
12891366 endif
12901367 " call Dret("NetGetWord <".dirname.">")
12911368 return dirname
@@ -1299,6 +1376,7 @@
12991376
13001377 " preparation for removing multiple files/directories
13011378 let ctr= a:firstline
1379+ let all= 0
13021380
13031381 " remove multiple files and directories
13041382 while ctr <= a:lastline
@@ -1310,11 +1388,19 @@
13101388
13111389 if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '/$')
13121390 " attempt to remove file
1313- call inputsave()
1314- let ok= input("Confirm deletion of file<".rmfile."> ","y")
1315- call inputrestore()
1391+ if !all
1392+ echohl Statement
1393+ call inputsave()
1394+ let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
1395+ call inputrestore()
1396+ echohl NONE
1397+ let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
1398+ if ok =~ 'a\%[ll]'
1399+ let all= 1
1400+ endif
1401+ endif
13161402
1317- if ok == "y"
1403+ if all || ok =~ 'y\%[es]' || ok == ""
13181404 if exists("s:netrw_method") && (s:netrw_method == 2 || s:netrw_method == 3)
13191405 silent! keepjumps .,$d
13201406 call NetBrowseFtpCmd(a:path,"delete ".rmfile)
@@ -1324,15 +1410,23 @@
13241410 let ret= system(netrw_rm_cmd)
13251411 " call Decho("returned=".ret." errcode=".v:shell_error)
13261412 endif
1413+ elseif ok =~ 'q\%[uit]'
1414+ break
13271415 endif
13281416
13291417 else
13301418 " attempt to remove directory
1331- call inputsave()
1332- let ok= input("Confirm deletion of directory<".rmfile."> ","y")
1333- call inputrestore()
1419+ if !all
1420+ call inputsave()
1421+ let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
1422+ call inputrestore()
1423+ let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
1424+ if ok =~ 'a\%[ll]'
1425+ let all= 1
1426+ endif
1427+ endif
13341428
1335- if ok == "y"
1429+ if all || ok =~ 'y\%[es]' || ok == ""
13361430 if exists("s:netrw_method") && (s:netrw_method == 2 || s:netrw_method == 3)
13371431 call NetBrowseFtpCmd(a:path,"rmdir ".rmfile)
13381432 else
@@ -1348,11 +1442,14 @@
13481442 let ret= system(netrw_rmf_cmd)
13491443 " call Decho("returned=".ret." errcode=".v:shell_error)
13501444
1351- if v:shell_error != 0
1445+ if v:shell_error != 0 && !exists("g:netrw_quiet")
13521446 echoerr "unable to remove directory<".rmfile."> -- is it empty?"
13531447 endif
13541448 endif
13551449 endif
1450+
1451+ elseif ok =~ 'q\%[uit]'
1452+ break
13561453 endif
13571454 endif
13581455
@@ -1414,43 +1511,72 @@
14141511 fun! <SID>NetBrowseX(fname,remote)
14151512 " call Dfunc("NetBrowseX(".a:fname." remote=".a:remote.")")
14161513
1514+ " set up the filename
1515+ " (lower case the extension, make a local copy of a remote file)
14171516 let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e')
14181517 if has("win32") || has("win95") || has("win64") || has("win16")
14191518 let exten= substitute(exten,'^.*$','\L&\E','')
14201519 endif
1421-" call Decho("exten<".exten."> "."NetrwFileHandler_".exten."():exists=".exists("*NetrwFileHandler_".exten))
1422- if exten != "" && exists("*NetrwFileHandler_".exten)
1423-
1424- let fname= a:fname
1425- if a:remote == 1
1426- " create a local copy
1427- let fname= tempname().".".exten
1428-" call Decho("create a local copy of <".a:fname."> as <".fname.">")
1429- exe "keepjumps silent bot 1new ".a:fname
1430- let eikeep= &ei
1431- set ei=all bh=delete
1432- exe "w! ".fname
1433- let &ei= eikeep
1434- q
1435- endif
1520+ let fname= escape(a:fname,"%#")
1521+" call Decho("fname<".fname."> after escape()")
14361522
1437- exe "let ret= NetrwFileHandler_".exten.'("'.fname.'")'
1438- redraw!
1523+ if a:remote == 1
1524+ " create a local copy
1525+ let fname= tempname().".".exten
1526+" call Decho("create a local copy of <".a:fname."> as <".fname.">")
1527+ exe "keepjumps silent bot 1new ".a:fname
1528+ let eikeep= &ei
1529+ set ei=all bh=delete
1530+ exe "w! ".fname
1531+ let &ei= eikeep
1532+ q
1533+ endif
1534+" call Decho("exten<".exten."> "."NetrwFileHandler_".exten."():exists=".exists("*NetrwFileHandler_".exten))
14391535
1440- " cleanup: remove temporary file,
1441- " delete current buffer if success with handler,
1442- " return to prior buffer (directory listing)
1443- if a:remote == 1 && fname != a:fname
1444-" call Decho("deleting temporary file<".fname.">")
1445- call delete(fname)
1446- endif
1447- if ret != 0
1448- let eikeep= &ei
1449- set ei=all bh=delete bt=nofile
1450- exe "norm! \<c-o>"
1451- let &ei= eikeep
1452- redraw!
1453- endif
1536+ " set up redirection
1537+ if &srr =~ "%s"
1538+ let redir= substitute(&srr,"%s","/dev/null"."")
1539+ else
1540+ let redir= &srr . "/dev/null"
1541+ endif
1542+" call Decho("redir:".redir.":")
1543+
1544+ " execute the file handler
1545+ if has("win32") || has("win64")
1546+" call Decho('exe silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"')
1547+ exe 'silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"'
1548+ let ret= v:shell_error
1549+
1550+ elseif has("unix") && executable("kfmclient")
1551+" call Decho("exe silent !kfmclient exec '".escape(fname,'%#')."' ".redir)
1552+ exe "silent !kfmclient exec '".escape(fname,'%#')."' ".redir
1553+ let ret= v:shell_error
1554+
1555+ elseif has("unix") && executable("gnome-open")
1556+" call Decho("exe silent !gnome-open '".escape(fname,'%#')."' ".redir)
1557+ exe "silent !gnome-open '".escape(fname,'%#')."'".redir
1558+ let ret= v:shell_error
1559+
1560+ elseif exten != "" && exists("*NetrwFileHandler_".exten)
1561+" call Decho("let ret= NetrwFileHandler_".exten.'("'.fname.'")')
1562+ exe "let ret= NetrwFileHandler_".exten.'("'.fname.'")'
1563+ endif
1564+ redraw!
1565+
1566+ " cleanup: remove temporary file,
1567+ " delete current buffer if success with handler,
1568+ " return to prior buffer (directory listing)
1569+ if a:remote == 1 && fname != a:fname
1570+" call Decho("deleting temporary file<".fname.">")
1571+ call delete(fname)
1572+ endif
1573+
1574+ if a:remote == 1
1575+ let eikeep= &ei
1576+ set ei=all bh=delete bt=nofile
1577+ exe "norm! \<c-o>"
1578+ let &ei= eikeep
1579+ redraw!
14541580 endif
14551581
14561582 " call Dret("NetBrowseX")
@@ -1482,6 +1608,8 @@
14821608 endif
14831609 exe "put ='".a:cmd."'"
14841610
1611+
1612+" redraw!|call inputsave()|call input("Pausing...")|call inputrestore() "Decho
14851613 if exists("g:netrw_port") && g:netrw_port != ""
14861614 " call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
14871615 exe g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
@@ -1524,6 +1652,19 @@
15241652 echo "***warning*** unable to comply with your request<" . choice . ">"
15251653 endif
15261654
1655+ " cleanup for Windows
1656+ if has("win32") || has("win95") || has("win64") || has("win16")
1657+ keepjumps silent! %s/\r$//
1658+ endif
1659+ if a:cmd == "dir"
1660+ " infer directory/link based on the file permission string
1661+ keepjumps silent g/d\%([-r][-w][-x]\)\{3}/s@$@/@
1662+ keepjumps silent g/l\%([-r][-w][-x]\)\{3}/s/$/@/
1663+ if !g:netrw_longlist
1664+ exe "keepjumps silent ".curline.',$s/^\%(\S\+\s\+\)\{8}//'
1665+ endif
1666+ endif
1667+
15271668 " restore settings
15281669 let &ff= ffkeep
15291670 " call Dret("NetBrowseFtpCmd")
@@ -1544,8 +1685,14 @@
15441685 let hide = listhide
15451686 let listhide= ""
15461687 endif
1688+
1689+ " Prune the list by hiding any files which match
15471690 " call Decho("pruning <".hide."> listhide<".listhide.">")
1548- exe 'keepjumps silent '.s:netrw_bannercnt.',$g~'.hide.'~d'
1691+ if g:netrw_hide == 1
1692+ exe 'keepjumps silent '.s:netrw_bannercnt.',$g~'.hide.'~d'
1693+ elseif g:netrw_hide == 2
1694+ exe 'keepjumps silent '.s:netrw_bannercnt.',$v~'.hide.'~d'
1695+ endif
15491696 endwhile
15501697
15511698 " call Dret("NetrwListHide")
@@ -1662,12 +1809,16 @@
16621809 let fullnewdir= b:netrw_curdir.'/'.newdirname
16631810 " call Decho("fullnewdir<".fullnewdir.">")
16641811 if isdirectory(fullnewdir)
1665- echoerr "***warning*** <".newdirname."> is already a directory!"
1812+ if !exists("g:netrw_quiet")
1813+ echoerr "***warning*** <".newdirname."> is already a directory!"
1814+ endif
16661815 " call Dret("NetMakeDir : directory<".newdirname."> exists previously")
16671816 return
16681817 endif
16691818 if filereadable(fullnewdir)
1670- echoerr "***warning*** <".newdirname."> is already a file!"
1819+ if !exists("g:netrw_quiet")
1820+ echoerr "***warning*** <".newdirname."> is already a file!"
1821+ endif
16711822 " call Dret("NetMakeDir : file<".newdirname."> exists previously")
16721823 return
16731824 endif
@@ -1687,7 +1838,7 @@
16871838 call s:LocalBrowse(s:LocalBrowseChgDir(b:netrw_curdir,'./'))
16881839 exe "norm! ".hline."G0z\<CR>"
16891840 exe linenum
1690- else
1841+ elseif !exists("g:netrw_quiet")
16911842 echoerr "***warning*** unable to make directory<".newdirname.">"
16921843 endif
16931844 redraw!
@@ -1706,7 +1857,7 @@
17061857 call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
17071858 exe "norm! ".hline."G0z\<CR>"
17081859 exe linenum
1709- else
1860+ elseif !exists("g:netrw_quiet")
17101861 echoerr "***warning*** unable to make directory<".newdirname.">"
17111862 endif
17121863 redraw!
@@ -1775,7 +1926,9 @@
17751926 " call Dredir("ls!")
17761927
17771928 if v:version < 603
1778- echoerr "vim version<".v:version."> too old for browsing with netrw"
1929+ if !exists("g:netrw_quiet")
1930+ echoerr "vim version<".v:version."> too old for browsing with netrw"
1931+ endif
17791932 " call Dret("LocalBrowse : vim version<".v:version."> too old")
17801933 return
17811934 endif
@@ -1796,14 +1949,13 @@
17961949 " remove the trailing "/"
17971950 let dirnamens= substitute(dirname,'/$','','e')
17981951 let dirnamenr= bufnr(dirnamens.'$')
1799-" call Decho("dirnamenr= bufnr(".dirnamens.")=".dirnamenr)
1952+" call Decho("dirnamenr= bufnr(".dirnamens.")=".dirnamenr." bufname(".dirnamenr.")=".bufname(dirnamenr))
18001953
18011954 if dirnamenr != 0 && bufname(dirnamenr) != dirnamens
18021955 " try keeping the trailing slash
18031956 let dirnamenr = bufnr(dirname.'$')
1804-" call Decho("retry: dirnamenr= bufnr(".dirname.")=".dirnamenr)
1957+" call Decho("dirnamenr= bufnr(".dirname.")=".dirnamenr." bufname(".dirnamenr.")=".bufname(dirnamenr)." (retry with /)")
18051958 endif
1806-" call Decho("bufnr(dirname<".dirname.">)=".dirnamenr)
18071959
18081960 if dirnamenr != -1
18091961 " buffer already exists (hidden), so switch to it!
@@ -1812,12 +1964,14 @@
18121964 exe "b ".dirnamenr
18131965 exe 'silent! cd '.escape(substitute(a:dirname,'\\','/','ge'),s:netrw_cd_escape)
18141966 " call Decho("changed directory to<".dirname.">")
1815- if a:dirname != "." && line("$") >= 5
1816-" call Dret("LocalBrowse : buffer already exists with info, #".dirnamenr)
1817- if g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
1818- return
1967+ if a:dirname != "." && line("$") >= 5 && exists("b:netrw_curdir")
1968+ if b:netrw_curdir == dirname
1969+" call Dret("LocalBrowse : buffer already exists with info, #".dirnamenr)
1970+ if g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
1971+ return
1972+ endif
18191973 endif
1820-" call Decho("buffer already exists, but needs listing (buf#".dirnamenr.")")
1974+" call Decho("buffer already exists, but needs re-listing (buf#".dirnamenr.")")
18211975 setlocal ma
18221976 keepjumps %d
18231977 if expand("%:p") != dirname
@@ -1839,19 +1993,20 @@
18391993 nnoremap <buffer> <silent> <cr> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
18401994 nnoremap <buffer> <silent> <c-l> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
18411995 nnoremap <buffer> <silent> - :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'../'))<cr>
1842- nnoremap <buffer> <silent> a :let g:netrw_hide=!g:netrw_hide<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
1996+ nnoremap <buffer> <silent> a :let g:netrw_hide=(g:netrw_hide+1)%3<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
18431997 nnoremap <buffer> <silent> b :<c-u>call <SID>NetBookmarkDir(0,b:netrw_curdir)<cr>
18441998 nnoremap <buffer> <silent> B :<c-u>call <SID>NetBookmarkDir(1,b:netrw_curdir)<cr>
18451999 nnoremap <buffer> <silent> c :exe "cd ".b:netrw_curdir<cr>
18462000 nnoremap <buffer> <silent> d :call <SID>NetMakeDir("")<cr>
18472001 nnoremap <buffer> <silent> <c-h> :call <SID>NetHideEdit(1)<cr>
18482002 nnoremap <buffer> <silent> i :call <SID>NetLongList(1)<cr>
1849- nnoremap <buffer> <silent> o :exe g:netrw_winsize."wincmd s"<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
2003+ nnoremap <buffer> <silent> o :exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
2004+ nnoremap <buffer> <silent> p :exe "norm! 0"<bar>call <SID>LocalPreview(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),1))<cr>
18502005 nnoremap <buffer> <silent> q :<c-u>call <SID>NetBookmarkDir(2,b:netrw_curdir)<cr>
18512006 nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
18522007 nnoremap <buffer> <silent> s :call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
18532008 nnoremap <buffer> <silent> S :call <SID>NetSortSequence(1)<cr>
1854- nnoremap <buffer> <silent> v :exe g:netrw_winsize."wincmd v"<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
2009+ nnoremap <buffer> <silent> v :exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
18552010 nnoremap <buffer> <silent> x :exe "norm! 0"<bar>call <SID>NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)<cr>
18562011 nnoremap <buffer> <silent> <2-leftmouse> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
18572012 exe 'nnoremap <buffer> <silent> <del> :exe "norm! 0"<bar>call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
@@ -1888,7 +2043,11 @@
18882043 keepjumps put ='\" Sorted by '.sortby
18892044 endif
18902045 if g:netrw_list_hide != "" && g:netrw_hide
1891- keepjumps put ='\" Hiding: '.g:netrw_list_hide
2046+ if g:netrw_hide == 1
2047+ keepjumps put ='\" Hiding: '.g:netrw_list_hide
2048+ else
2049+ keepjumps put ='\" Showing: '.g:netrw_list_hide
2050+ endif
18922051 let s:netrw_bannercnt= s:netrw_bannercnt + 1
18932052 endif
18942053 keepjumps put ='\" Quick Help: ?:help -:go up dir D:delete R:rename s:sort-by x:exec'
@@ -1925,13 +2084,35 @@
19252084 fun! LocalBrowseList(dirname)
19262085 " call Dfunc("LocalBrowseList(dirname<".a:dirname.">)")
19272086
2087+ " get the list of files contained in the current directory
19282088 let dirname = escape(a:dirname,s:netrw_glob_escape)
19292089 let dirnamelen = strlen(a:dirname)
19302090 let filelist = glob(dirname."*")
2091+" call Decho("glob(dirname<".dirname.">,*)=".filelist)
19312092 if filelist != ""
19322093 let filelist= filelist."\n"
19332094 endif
19342095 let filelist= filelist.glob(dirname.".*")
2096+" call Decho("glob(dirname<".dirname.">,.*)=".glob(dirname.".*"))
2097+
2098+ " if the directory name includes a "$", and possibly other characters,
2099+ " the glob() doesn't include "." and ".." entries.
2100+ if filelist !~ '[\\/]\.[\\/]\=\(\n\|$\)'
2101+" call Decho("forcibly tacking on .")
2102+ if filelist == ""
2103+ let filelist= dirname."."
2104+ else
2105+ let filelist= filelist."\n".a:dirname."."
2106+ endif
2107+" call Decho("filelist<".filelist.">")
2108+ endif
2109+ if filelist !~ '[\\/]\.\.[\\/]\=\(\n\|$\)'
2110+" call Decho("forcibly tacking on ..")
2111+ let filelist= filelist."\n".a:dirname.".."
2112+" call Decho("filelist<".filelist.">")
2113+ endif
2114+ let filelist= substitute(filelist,'\n\{2,}','\n','ge')
2115+
19352116 " call Decho("dirname<".dirname.">")
19362117 " call Decho("dirnamelen<".dirnamelen.">")
19372118 " call Decho("filelist<".filelist.">")
@@ -1948,6 +2129,9 @@
19482129 if isdirectory(file)
19492130 let pfile= file."/"
19502131 endif
2132+ if pfile =~ '//$'
2133+ let pfile= substitute(pfile,'//$','/','e')
2134+ endif
19512135 let pfile= strpart(pfile,dirnamelen)
19522136 if g:netrw_longlist
19532137 let sz = getfsize(file)
@@ -2040,6 +2224,7 @@
20402224 let ret = 0
20412225 let netrw_origdir = s:NetGetcwd(1)
20422226 exe 'cd '.b:netrw_curdir
2227+ let all= 0
20432228
20442229 " remove multiple files and directories
20452230 while ctr <= a:lastline
@@ -2062,22 +2247,40 @@
20622247
20632248 if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '/$')
20642249 " attempt to remove file
2065- call inputsave()
2066- let ok= input("Confirm deletion of file<".rmfile."> ","y")
2067- call inputrestore()
2068- if ok == "y"
2250+ if !all
2251+ echohl Statement
2252+ call inputsave()
2253+ let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
2254+ call inputrestore()
2255+ echohl NONE
2256+ let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
2257+ if ok =~ 'a\%[ll]'
2258+ let all= 1
2259+ endif
2260+ endif
2261+
2262+ if all || ok =~ 'y\%[es]' || ok == ""
20692263 let ret= delete(rmfile)
20702264 " call Decho("errcode=".v:shell_error." ret=".ret)
2265+ elseif ok =~ 'q\%[uit]'
2266+ break
20712267 endif
20722268
20732269 else
20742270 " attempt to remove directory
2075- call inputsave()
2076- let ok= input("Confirm deletion of directory<".rmfile."> ","y")
2077- call inputrestore()
2271+ if !all
2272+ echohl Statement
2273+ call inputsave()
2274+ let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
2275+ call inputrestore()
2276+ let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
2277+ if ok =~ 'a\%[ll]'
2278+ let all= 1
2279+ endif
2280+ endif
20782281 let rmfile= substitute(rmfile,'/$','','e')
20792282
2080- if ok == "y"
2283+ if all || ok =~ 'y\%[es]' || ok == ""
20812284 " call Decho("1st attempt: system(".g:netrw_local_rmdir.' "'.rmfile.'")')
20822285 call system(g:netrw_local_rmdir.' "'.rmfile.'"')
20832286 " call Decho("v:shell_error=".v:shell_error)
@@ -2091,14 +2294,17 @@
20912294 if has("unix")
20922295 " call Decho("3rd attempt to remove directory<".rmfile.">")
20932296 call system("rm ".rmfile)
2094- if v:shell_error != 0
2297+ if v:shell_error != 0 && !exists("g:netrw_quiet")
20952298 echoerr "unable to remove directory<".rmfile."> -- is it empty?"
20962299 endif
2097- else
2300+ elseif !exist("g:netrw_quiet")s
20982301 echoerr "unable to remove directory<".rmfile."> -- is it empty?"
20992302 endif
21002303 endif
21012304 endif
2305+
2306+ elseif ok =~ 'q\%[uit]'
2307+ break
21022308 endif
21032309 endif
21042310
@@ -2161,7 +2367,23 @@
21612367 endfun
21622368
21632369 " ---------------------------------------------------------------------
2164-" NetGetcwd: get the current directory.
2370+" LocalPreview: {{{2
2371+fun! <SID>LocalPreview(path) range
2372+" call Dfunc("LocalPreview(path<".a:path.">)")
2373+ if has("quickfix")
2374+ if !isdirectory(a:path)
2375+ exe "pedit ".a:path
2376+ elseif !exist("g:netrw_quiet")s
2377+ echoerr "sorry, cannot preview a directory such as <".a:path.">"
2378+ endif
2379+ elseif !exist("g:netrw_quiet")s
2380+ echoerr "sorry, to preview your vim needs the quickfix feature compiled in"
2381+ endif
2382+" call Dret("LocalPreview")
2383+endfun
2384+
2385+" ---------------------------------------------------------------------
2386+" NetGetcwd: get the current directory. {{{2
21652387 " Change backslashes to forward slashes, if any.
21662388 " If doesc is true, escape certain troublesome characters
21672389 fun! <SID>NetGetcwd(doesc)
@@ -2354,7 +2576,9 @@
23542576 endif
23552577
23562578 else
2357- echoerr "***error*** cannot determine method"
2579+ if !exists("g:netrw_quiet")
2580+ echoerr "***error*** cannot determine method"
2581+ endif
23582582 let b:netrw_method = -1
23592583 endif
23602584
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/syntax/alsaconf.vim
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/syntax/alsaconf.vim Mon Sep 13 20:26:32 2004 +0000
@@ -0,0 +1,72 @@
1+" Vim syntax file
2+" Language: ALSA configuration file
3+" Maintainer: Nikolai Weibull <source@pcppopper.org>
4+" URL: http://www.pcppopper.org/
5+" Latest Revision: 2004-09-10
6+" arch-tag: 3e06fe53-28d5-44a1-871d-279f22e7aed4
7+
8+if version < 600
9+ syntax clear
10+elseif exists("b:current_syntax")
11+ finish
12+endif
13+
14+" todo
15+syn keyword alsoconfTodo contained FIXME TODO XXX NOTE
16+
17+" comments
18+syn region alsaconfComment matchgroup=alsaconfComment start="#" end="$"
19+ \ contains=alsaconfTodo
20+
21+" special characters
22+syn match alsaconfSpecialChar contained "\\[ntvbrf]"
23+syn match alsaconfSpecialChar contained "\\\o\+"
24+
25+" strings
26+syn region alsaconfString matchgroup=alsaconfString start=+"+ skip=+\\$+
27+ \ end=+"+ end=+$+ contains=alsaconfSpecialChar
28+
29+" preprocessor special
30+syn match alsaconfSpecial contained "confdir:"
31+
32+" preprocessor
33+syn region alsaconfPreProc matchgroup=alsaconfPreProc start="<" end=">"
34+ \ contains=alsaconfSpecial
35+
36+" modes
37+syn match alsaconfMode "[+?!-]"
38+
39+" keywords
40+syn keyword alsaconfKeyword card default device errors files func strings
41+syn keyword alsaconfKeyword subdevice type vars
42+
43+" variables
44+syn match alsaconfVariables "@\(hooks\|func\|args\)"
45+
46+" Define the default highlighting.
47+" For version 5.7 and earlier: only when not done already
48+" For version 5.8 and later: only when an item doesn't have highlighting yet
49+if version >= 508 || !exists("did_alsaconf_syn_inits")
50+ if version < 508
51+ let did_dircolors_syn_inits = 1
52+ command -nargs=+ HiLink hi link <args>
53+ else
54+ command -nargs=+ HiLink hi def link <args>
55+ endif
56+
57+ HiLink alsoconfTodo Todo
58+ HiLink alsaconfComment Comment
59+ HiLink alsaconfSpecialChar SpecialChar
60+ HiLink alsaconfString String
61+ HiLink alsaconfSpecial Special
62+ HiLink alsaconfPreProc PreProc
63+ HiLink alsaconfMode Special
64+ HiLink alsaconfKeyword Keyword
65+ HiLink alsaconfVariables Identifier
66+
67+ delcommand HiLink
68+endif
69+
70+let b:current_syntax = "alsaconf"
71+
72+" vim: set sts=2 sw=2:
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/syntax/netrwlist.vim
--- a/runtime/syntax/netrwlist.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/syntax/netrwlist.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,7 +1,7 @@
11 " Language : Netrw Remote-Directory Listing Syntax
22 " Maintainer : Charles E. Campbell, Jr.
3-" Last change: Aug 20, 2004
4-" Version : 4
3+" Last change: Sep 08, 2004
4+" Version : 5
55 " ---------------------------------------------------------------------
66
77 " Syntax Clearing: {{{1
@@ -18,7 +18,7 @@
1818 syn match netrwClassify "[*=|@/]\%(\t\|$\)"
1919 syn match netrwSymLink "^.*@\%(\t\|$\)" contains=netrwClassify
2020 syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup
21-syn match netrwHide '^"\s*Hiding:' skipwhite nextgroup=netrwHidePat
21+syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite nextgroup=netrwHidePat
2222 syn match netrwSlash contained "/"
2323 syn match netrwHidePat contained "[^,]\+" skipwhite nextgroup=netrwHideSep
2424 syn match netrwHideSep contained transparent "," skipwhite nextgroup=netrwHidePat
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/tutor/tutor.pl
--- a/runtime/tutor/tutor.pl Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/tutor/tutor.pl Mon Sep 13 20:26:32 2004 +0000
@@ -1,5 +1,5 @@
11 ===============================================================================
2-= W i t a j w t u t o r i a l u V I M - a - Wersja 1.5. =
2+= W i t a j w t u t o r i a l u V I M - a - Wersja 1.7. =
33 ===============================================================================
44
55 Vim to potê¿ny edytor, który posiada wiele poleceñ, zbyt du¿o by
@@ -8,10 +8,12 @@
88 u¿ywaæ Vim-a jako edytora ogólnego przeznaczenia.
99
1010 Czas potrzebny na ukoñczenie tutoriala to 25 do 30 minut i zale¿y
11- od tego jak wiele czasu spêdzisz na eksperymentowaniu. Polecenia
12- wykonywane w czasie lekcji zmodyfikuj± tekst. Zrób wcze¶niej kopiê
13- tego pliku do æwiczeñ (je¶li zacz±³e¶ komend± "vimtutor" to ju¿
14- pracujesz na kopii).
11+ od tego jak wiele czasu spêdzisz na eksperymentowaniu.
12+
13+ UWAGA:
14+ Polecenia wykonywane w czasie lekcji zmodyfikuj± tekst. Zrób
15+ wcze¶niej kopiê tego pliku do æwiczeñ (je¶li zacz±³e¶ komend±
16+ "vimtutor" to ju¿ pracujesz na kopii).
1517
1618 Wa¿ne jest, by¶ pamiêta³, ¿e przewodnik ten zosta³ zaprojektowany do
1719 nauki poprzez æwiczenia. To oznacza, ¿e musisz wykonywaæ polecenia
@@ -22,7 +24,7 @@
2224 tak d³ugo dopóki Lekcja 1.1. nie wype³ni ca³kowicie ekranu.
2325
2426 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25- Lekcja 1.1.: PORUSZANIE SIÊ KURSOREM
27+ Lekcja 1.1.: PORUSZANIE SIÊ KURSOREM
2628
2729 ** By wykonaæ ruch kursorem, wci¶nij h, j, k, l jak pokazano. **
2830
@@ -34,7 +36,7 @@
3436 1. Poruszaj kursorem dopóki nie bêdziesz pewien, ¿e pamiêtasz polecenia.
3537
3638 2. Trzymaj j tak d³ugo a¿ bêdzie siê powtarza³.
37----> Teraz wiesz jak doj¶æ do nastêpnej lekcji.
39+ Teraz wiesz jak doj¶æ do nastêpnej lekcji.
3840
3941 3. U¿ywaj±c strza³ki w dó³ przejd¼ do nastêpnej lekcji.
4042
@@ -43,35 +45,35 @@
4345
4446 Uwaga: Klawisze kursora tak¿e powinny dzia³aæ, ale u¿ywaj±c hjkl bêdziesz
4547 w stanie poruszaæ siê o wiele szybciej jak siê tylko przyzwyczaisz.
48+ Naprawdê!
4649
4750 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48- Lekcja 1.2.: WCHODZENIE I WYCHODZENIE Z VIM-a
51+ Lekcja 1.2.: WYCHODZENIE Z VIM-a
4952
5053 !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca³± lekcjê.!!
5154
5255 1. Wci¶nij <ESC> (aby upewniæ siê, ¿e jeste¶ w trybie Normal).
5356 2. Wpisz: :q!<ENTER>.
54-
55----> To spowoduje wyj¶cie z edytora BEZ zapamiêtywania zmian jakie
57+ To spowoduje wyj¶cie z edytora PORZUCAJ¡C wszelkie zmiany jakie
5658 zd±¿y³e¶ zrobiæ. Je¶li chcesz zapamiêtaæ zmiany i wyj¶æ
5759 wpisz: :wq<ENTER>
5860
5961 3. Kiedy widzisz znak zachêty pow³oki wpisz komendê, ¿eby wróciæ
60- do tutoriala.
61- Powinienie¶ wpisaæ: vimtutor<ENTER>
62- Normalnie u¿y³by¶: vim tutor<ENTER>
63-
64----> 'vim' oznacza edytor vim, 'tutor' jest plikem, który chcia³by¶
65- edytowaæ.
62+ do tutoriala. Czyli: vimtutor<ENTER>
6663
6764 4. Je¶li chcesz zapamiêtaæ polecenia, wykonaj kroki 1. do 3. aby
68- wyj¶æ i wróciæ do edytora. Potem przenie¶ siê do Lekcji 1.3.
65+ wyj¶æ i wróciæ do edytora.
66+
67+UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobi³e¶. W nastêpnych
68+lekcjach dowiesz siê jak je zapamiêtywaæ.
69+
70+ 5. Przenie¶ kursor do lekcji 1.3.
71+
6972
7073 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71- Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE
74+ Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE
7275
73-
74- ** W trybie Normal wci¶nij x aby usun±æ znak pod kursorem. **
76+ ** Wci¶nij x aby usun±æ znak pod kursorem. **
7577
7678 1. Przenie¶ kursor do linii poni¿ej oznaczonej --->.
7779
@@ -90,11 +92,12 @@
9092
9193
9294
95+
9396 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94- Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)
97+ Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)
9598
9699
97- ** W trybie Normal wci¶nij i aby wstawiæ tekst. **
100+ ** Wci¶nij i aby wstawiæ tekst. **
98101
99102 1. Przenie¶ kursor do pierwszej linii poni¿ej oznaczonej --->.
100103
@@ -114,33 +117,79 @@
114117
115118
116119 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120+ Lekcja 1.5.: EDYCJA TEKSTU - APPENDING (dodawanie)
121+
122+
123+ ** Wci¶nij A by dodaæ tekst. **
124+
125+ 1. Przenie¶ kursor do pierwszej linii poni¿ej oznaczonej --->.
126+ Nie ma znaczenia, który to bêdzie znak.
127+
128+ 2. Wci¶nij A i wpisz odpowiednie dodatki.
129+
130+ 3. Kiedy tekst zosta³ dodany, wci¶nij <ESC> i wróæ do trybu Normalnego.
131+
132+ 4. Przenie¶ kursor do drugiej linii oznaczonej ---> i powtórz kroki 2 i 3
133+ aby poprawiæ zdanie.
134+
135+---> Brakuje tu tro
136+ Brakuje tu trochê tekstu.
137+---> Tu te¿ trochê bra
138+ Tu te¿ trochê brakuje.
139+
140+ 5. Kiedy ju¿ utrwali³e¶ æwiczenie przejd¼ do lekcji 1.6.
141+
142+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143+ Lekcja 1.6.: EDYCJA PLIKU
144+
145+
146+ ** U¿yj :wq aby zapisaæ plik i wyj¶æ. **
147+
148+ !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczyaj ca³± lekcjê !!
149+
150+ 1. Zakoñcz tutorial tak jak w lekcji 1.2.: :q!
151+
152+ 2. W pow³oce wydaj polecenie: vim tutor<ENTER>
153+ "vim" jest poleceniem uruchamiaj±cym edytor Vimm. 'tutor' to nazwa pliku
154+ jaki chcesz edytowaæ. U¿yj pliku jaki mo¿e zostaæ zmieniony.
155+
156+ 3. Dodaj i usuñ tekst tak jak siê nauczy³e¶ w poprzednich lekcjach.
157+
158+ 4. Zapisz plik ze zmianami w opu¶æ Vima: :wq<ENTER>
159+
160+ 5. Uruchom ponownie vimtutor i przejd¼ do podsumowania lekcji.
161+
162+ 6. Po przeczytaniu wszystkich kroków i zrozumieniu ich: wykonaj je.
163+
164+
165+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117166 LEKCJA 1. PODSUMOWANIE
118167
119168 1. Poruszasz kursorem u¿ywaj±c "strza³ek" i klawiszy hjkl .
120169 h (w lewo) j (w dó³) k (do góry) l (w prawo)
121170
122- 2. By wej¶æ do Vim-a (od znaku zachêty) wpisz:
171+ 2. By wej¶æ do Vim-a (z pow³oki) wpisz:
123172 vim NAZWA_PLIKU<ENTER>
124173
125174 3. By wyj¶æ z Vim-a wpisz:
126175 <ESC> :q!<ENTER> by usun±c wszystkie zmiany.
127176 LUB: <ESC> :wq<ENTER> by zmiany zachowaæ.
128177
129- 4. By usun±æ znak pod kursorem w trybie Normal: x
178+ 4. By usun±æ znak pod kursorem wci¶nij: x
130179
131- 5. By wstawiæ tekst przed kursorem w trybie Normal:
132- i type in text <ESC>
180+ 5. By wstawiæ tekst przed kursorem lub dodaæ:
181+ i wpisz tekst <ESC> wstawi przed kursorem
182+ A wpisz tekst <ESC> doda na koñcu linii
133183
134184 UWAGA: Wci¶niêcie <ESC> przeniesie Ciê z powrotem do trybu Normal
135185 lub odwo³a niechciane lub czê¶ciowo wprowadzone polecenia.
136186
137187 Teraz mo¿emy kontynuowaæ i przej¶æ do Lekcji 2.
138-
139188 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140189 Lekcja 2.1.: POLECENIE DELETE (usuwanie)
141190
142191
143- ** Wpisz dw by usun±c tekst do koñca wyrazu. **
192+ ** Wpisz dw by usun±c wyraz. **
144193
145194 1. Wci¶nij <ESC> by upewniæ siê, ¿e jeste¶ w trybie Normal.
146195
@@ -150,9 +199,9 @@
150199
151200 4. Wpisz dw by usun±c wyraz.
152201
153- UWAGA: Litery dw bêd± siê pojawiaæ na dole ekranu w miarê
154- wpisywania. Je¶li wpisa³e¶ co¶ ¼le wci¶nij <ESC> i zacznij od
155- pocz±tku.
202+ UWAGA: Litera d pojawi siê na dole ekranu. Vim czeka na wpisanie w .
203+ Je¶li zobaczysz inny znak wpisa³e¶ co¶ ¼le, wci¶nij <ESC> i zacznij
204+ od pocz±tku.
156205
157206 ---> Jest tu parê papier wyrazów, które kamieñ nie nale¿± do no¿yce tego zdania.
158207
@@ -183,53 +232,99 @@
183232
184233
185234 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186- Lekcja 2.3.: O POLECENIACH I OBIEKTACH
235+ Lekcja 2.3.: O OPERATORACH I RUCHACH
187236
188237
189- Format dla polecenia usuwaj±cego d jest taki:
238+ Wiele poleceñ zmieniaj±cych tekst s± z³o¿one z operatora i ruchu.
239+ Format dla polecenia usuwaj±cego z operatorem d jest taki:
190240
191- [liczba] d obiekt LUB d [liczba] obiekt
241+ d ruch
192242
193243 Gdzie:
194- liczba - ile razy polecenie ma byæ wykonane (opcjonalne, domy¶lna=1).
195- d - polecenie usuwaj±ce.
196- obiekt - na czym polecenie bêdzie wykonywane (lista poni¿ej).
244+ d - operator usuwania.
245+ ruch - na czym polecenie bêdzie wykonywane (lista poni¿ej).
197246
198- Krótka lista obiektów:
199- w - od kursora do koñca wyrazu w³±czaj±c spacjê.
200- e - od kursora do koñca wyrazu NIE w³±czaj±c spacji.
201- $ - od kursora do koñca linii.
247+ Krótka lista ruchów:
248+ w - do pocz±tku nastêpnego wyrazu WY£¡CZAJ¡C pierwszy znak.
249+ e - do koñca bie¿±cego wyrazu, W£¡CZAJ¡C ostatni znak.
250+ $ - do koñca linii, W£¡CZAJ¡C ostatni znak.
202251
203-UWAGA: Dla ciekawskich, wybieranie obiektu w trybie Normal bez polecania
204- polecenia przeniesie kursor tak jak opisano w li¶cie obiektów.
252+W ten sposób wpisanie de usunie znaki od kursora do koñca wyrazu.
253+
254+UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
255+ tak jak to okre¶lono.
256+
257+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
258+ Lekcja 2.4.: U¯YCIE MNO¯NIKA DLA RUCHU
259+
260+
261+ ** Wpisanie liczby przed ruchem powtarza ruch odpowiedni± ilo¶æ razy. **
262+
263+ 1. Przenie¶ kursor na pocz±tek linii poni¿ej zaznaczonej --->.
264+
265+ 2. Wpisz 2w aby przenie¶æ kursor o dwa wyrazy do przodu.
266+
267+ 3. Wpisz 3e aby przenie¶æ kursor do koñca trzeciego wyrazu w przód.
268+
269+ 4. Wpisz 0 (zero) aby przenie¶æ kursor do pocz±tku linii.
270+
271+ 5. Powtórz kroki 2. i 3. z innymi liczbami.
272+
273+
274+ ---> To jest zwyk³y wiersz z wyrazami po których mo¿esz siê poruszaæ.
275+
276+ 6. Przejd¼ do lekcji 2.5.
205277
206278
207279
208280 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209- Lekcja 2.4.: WYJ¡TEK DO 'POLECENIE-OBIEKT'
281+ Lekcja 2.5.: U¯YCIE MNO¯NIKA BY WIÊCEJ USUN¡Æ
210282
211283
212- ** Wpisz dd by usun±c ca³± liniê. **
284+ ** Wpisanie liczby z operatorem powtarza go odpowiedni± ilo¶æ razy. **
213285
214- Z powodu czêsto¶ci usuwania ca³ych linii, projektanci Vim-a zdecydowali, ¿e
215- bêdzie ³atwiej wpisaæ dwa razy pod rz±d d aby usun±æ liniê.
286+ W wy¿ej wspomnianej kombinacji operatora usuwania i ruchu podaj mno¿nik
287+ przed ruchem by wiêcej usun±æ:
288+ d liczba ruch
289+
290+ 1. Przenie¶ kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.
291+
292+ 2. Wpisz 2dw aby usun±æ dwa wyrazy KAPITALIKAMI.
293+
294+ 3. Powtarzaj kroki 1. i 2. z innymi mno¿nikami aby usun±æ kolejne wyrazy
295+ KAPITALIKAMI jednym poleceniem
296+
297+---> ta ASD WE linia QWE ASDF ZXCV FG wyrazów zosta³a ERT FGH CF oczyszczona.
298+
299+UWAGA: Mno¿nik pomiêdzy operatorem d i ruchem dzia³a podobnie do ruchu bez
300+ operatora.
301+
302+
303+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304+ Lekcja 2.6.: OPEROWANIE NA LINIACH
305+
306+
307+ ** Wpisz dd aby usun±æ ca³± liniê. **
308+
309+ Z powodu czêsto¶ci usuwania ca³ych linii, projektanci VI zdecydowali, ¿e
310+ bêdzie ³atwiej wpisaæ dwa razy d aby usun±æ liniê.
216311
217312 1. Przenie¶ kursor do zdania poni¿ej.
218313 2. Wpisz dd aby usun±c wiersz.
219314 3. Teraz przenie¶ siê do czwartego wiersza.
220- 4. Wpisz 2dd (pamiêtaj liczba-polecenie-obiekt) aby usun±c dwia wiersze.
315+ 4. Wpisz 2dd aby usun±c dwia wiersze.
221316
222- 1) Ró¿e s± czerwone,
223- 2) B³oto jest fajne,
224- 3) Fio³ki s± niebieskie,
225- 4) Mam samochód,
226- 5) Zegar podaje czas,
227- 6) Cukier jest s³odki,
228- 7) I ty te¿.
317+---> 1) Ró¿e s± czerwone,
318+---> 2) B³oto jest fajne,
319+---> 3) Fio³ki s± niebieskie,
320+---> 4) Mam samochód,
321+---> 5) Zegar podaje czas,
322+---> 6) Cukier jest s³odki,
323+---> 7) I ty te¿.
229324
230325
231326 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232- Lekcja 2.5.: POLECENIE UNDO (cofnij)
327+ Lekcja 2.7.: POLECENIE UNDO (cofnij)
233328
234329
235330 ** Wci¶nij u aby cofn±æ skutki ostatniego polecenia.
@@ -254,62 +349,62 @@
254349 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255350 LEKCJA 2. PODSUMOWANIE
256351
257- 1. By usun±æ znaki od kursora do koñca wyrazu wpisz: dw
258-
259- 2. By usun±æ znaki od kursora do koñca linii wpisz: d$
260-
261- 3. By usun±æ ca³± liniê: dd
262352
263- 4. Format polecenia w trybie Normal:
264-
265- [liczba] polecenie obiekt LUB polecenie [liczba] obiekt
266-
267- Gdzie:
268- liczba - ile razy polecenie ma byæ wykonane
269- polecenie - to co trzeba zrobiæ (np. d dla usuwania)
270- obiekt - na czym polecenie bêdzie wykonywane, takie jak w (wyraz),
353+ 1. By usun±æ znaki od kursora do nastêpnego wyrazu wpisz: dw
354+ 2. By usun±æ znaki od kursora do koñca linii wpisz: d$
355+ 3. By usun±æ ca³± liniê: dd
356+ 4. By powtórzyæ ruch poprzed¼ go liczb±: 2w
357+ 5. Format polecenia zmiany to:
358+ operator [liczba] ruch
359+ gdzie:
360+ operator - to co trzeba zrobiæ (np. d dla usuwania)
361+ [liczba] - opcjonalne, ile razy powtórzyæ ruch
362+ ruch - przenosi nad tekstem do operowania, takim jak w (wyraz),
271363 $ (do koñca linii), etc.
272364
273- 5. By cofn±æ poprzednie polecenie, wpisz: u (ma³e u)
365+ 6. By przej¶æ do pocz±tku linii u¿yj zera: 0
366+ 7. By cofn±æ poprzednie polecenie, wpisz: u (ma³e u)
274367 By cofn±æ wszystkie zmiany w linii wpisz: U (wielkie U)
275368 By cofn±æ cofniêcia wpisz: CTRL-R
276369
370+
371+
277372 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
278373 Lekcja 3.1.: POLECENIE PUT (wstaw)
279374
280375
281- ** Wpisz p by wstawiæ ostatnie usuniêcia po kursorze. **
376+ ** Wpisz p by wstawiæ ostatnie usuniêcia za kursorem. **
282377
283- 1. Przenie¶ kursor do pierwszej linii w zestawie poni¿ej.
378+ 1. Przenie¶ kursor do pierwszej linii ---> poni¿ej.
284379
285- 2. Wpisz dd aby usun±æ liniê i przechowaæ j± w buforze Vim-a.
380+ 2. Wpisz dd aby usun±æ liniê i przechowaæ j± w rejestrze Vim-a.
286381
287- 3. Przenie¶ kursor do linii POWY¯EJ tej gdzie usuniêta linia powinna
382+ 3. Przenie¶ kursor do linii c), POWY¯EJ tej gdzie usuniêta linia powinna
288383 siê znajdowaæ.
289384
290- 4. W trybie Normal, wci¶nij p by wstawiæ liniê.
385+ 4. Wci¶nij p by wstawiæ liniê poni¿ej kursora.
291386
292387 5. Powtaj kroki 2. do 4. a¿ znajd± siê w odpowiednim porz±dku.
293388
294- d) Jak dwa anio³ki.
295- b) Na dole fio³ki,
296- c) A my siê kochamy,
297- a) Na górze ró¿e,
389+---> d) Jak dwa anio³ki.
390+---> b) Na dole fio³ki,
391+---> c) A my siê kochamy,
392+---> a) Na górze ró¿e,
298393
299394
300395 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301396 Lekcja 3.2.: POLECENIE REPLACE (zast±p)
302397
303398
304- ** Wpisz r a nastêpnie znak by zast±piæ znak pod kursorem. **
399+ ** Wpisz rx aby zast±piæ znak pod kursorem na x . **
305400
306401 1. Przenie¶ kursor do pierwszej linii poni¿ej oznaczonej --->
307402
308403 2. Ustaw kursor na pierwszym b³êdzie.
309404
310- 3. Wpisz r a potem znak jaki powinien zast±piæ b³êdny.
405+ 3. Wpisz r a potem znak jaki powinien go zast±piæ.
311406
312- 4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie bêdzie poprawna.
407+ 4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie bêdzie taka jak druga.
313408
314409 ---> Kjedy ten wiersz bi³ wstókiwany kto¶ wcizn±³ perê z³ych klawirzy!
315410 ---> Kiedy ten wiersz by³ wstukiwany kto¶ wcisn±³ parê z³ych klawiszy!
@@ -321,18 +416,17 @@
321416
322417
323418 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324- Lekcja 3.3.: POLECENIE CHANGE (zmieñ)
419+ Lekcja 3.3.: OPERATOR CHANGE (zmieñ)
325420
326- ** By zmieniæ ca³e s³owo lub jego czê¶æ wpisz cw (change word). **
421+ ** By zmieniæ do koñca wyrazu wpisz ce . **
327422
328423 1. Przenie¶ kursor do pierwszej linii poni¿ej oznaczonej --->.
329424
330425 2. Umie¶æ kursor na u w lunos.
331426
332- 3. Wpisz cw i popraw wyraz (w tym wypadku wstaw 'inia').
427+ 3. Wpisz ce i popraw wyraz (w tym wypadku wstaw inia ).
333428
334- 4. Wci¶nij <ESC> i przejd¼ do nastêpnego b³êdu (pierwszy znak, który ma
335- ulec zmianie).
429+ 4. Wci¶nij <ESC> i przejd¼ do nastêpnej planowanej zmiany.
336430
337431 5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie bêdzie takie same
338432 jak drugie.
@@ -340,20 +434,21 @@
340434 ---> Ta lunos ma pire s³ów, które t¿ina zbnic u¿ifajonc pcmazu zmieñ.
341435 ---> Ta linia ma parê s³ów, które trzeba zmieniæ u¿ywaj±c polecenia zmieñ.
342436
343- Zauwa¿, ¿e cw nie tylko zamienia wyraz, ale tak¿e zmienia tryb na
437+ Zauwa¿, ¿e ce nie tylko zamienia wyraz, ale tak¿e zmienia tryb na
344438 Insert (wprowadzanie).
345439
440+
346441 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
347442 Lekcja 3.4.: WIÊCEJ ZMIAN U¯YWAJ¡C c
348443
349444
350- ** Polecenie change u¿ywa takich samych obiektów jak delete. **
445+ ** Polecenie change u¿ywa takich samych ruchów jak delete. **
351446
352- 1. Polecenie change dzia³a tak samo jak delete. Format wygl±da tak:
447+ 1. Operator change dzia³a tak samo jak delete. Format wygl±da tak:
353448
354- [liczba] c obiekt LUB c [liczba] obiekt
449+ c [liczba] ruch
355450
356- 2. Obiekty s± tak¿e takie same, np.: w (wyraz), $ (koniec linii), etc.
451+ 2. Ruchy s± tak¿e takie same, np.: w (wyraz), $ (koniec linii), etc.
357452
358453 3. Przenie¶ siê do pierwszej linii poni¿ej oznaczonej --->
359454
@@ -364,7 +459,7 @@
364459 ---> Koniec tego wiersza musi byæ poprawiony aby wygl±dal tak jak drugi.
365460 ---> Koniec tego wiersza musi byæ poprawiony u¿ywaj±c polecenia c$ .
366461
367-
462+UWAGA: Mo¿esz u¿ywaæ <BS> aby poprawiaæ b³êdy w czasie pisania.
368463
369464 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370465 LEKCJA 3. PODSUMOWANIE
@@ -377,41 +472,41 @@
377472 2. By zamieniæ znak pod kursorem wci¶nij r a potem znak, który ma zast±piæ
378473 oryginalny.
379474
380- 3. Polecenie change pozwala Ci na zast±pienie wyszczególnionego obiektu
381- od kursora do koñca obiektu. Np. wpisz cw aby zamieniæ tekst od
382- kursora do koñca wyrazu, c$ aby zmieniæ tekst do koñca linii.
475+ 3. Operator change pozwala Ci na zast±pienie od kursora do miejsca gdzie
476+ zabra³by ciê ruch. Np. wpisz ce aby zamieniæ tekst od kursora do koñca
477+ wyrazu, c$ aby zmieniæ tekst do koñca linii.
383478
384479 4. Format do polecenia change (zmieñ):
385480
386- [liczba] c obiekt LUB c [liczba] obiekt
481+ c [liczba] obiekt
387482
388483 Teraz przejd¼ do nastêpnej lekcji.
389484
390485
391486
392487 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393- Lekcja 4.1.: LOKALIZACJA ORAZ STATUS PLIKU
488+ Lekcja 4.1.: PO£O¯ENIE KURSORA ORAZ STATUS PLIKU
394489
395490 ** Naci¶nij CTRL-G aby zobaczyæ swoje po³o¿enie w pliku i status
396- pliku. Naci¶nij SHIFT-G aby przej¶æ do linii w pliku. **
491+ pliku. Naci¶nij G aby przej¶æ do linii w pliku. **
397492
398493 UWAGA: Przeczytaj ca³± lekcjê zanim wykonasz jakie¶ polecenia!!!
399494
400- 1. Przytrzymaj klawisz CTRL i wci¶nij g . Na dole strony pojawi siê pasek
401- statusu z nazw± pliku i numerem linii, w której jeste¶. Zapamiêtaj numer
402- linii dla potrzeb kroku 3.
495+ 1. Przytrzymaj klawisz CTRL i wci¶nij g . U¿ywamy notacji CTRL-G.
496+ Na dole strony pojawi siê pasek statusu z nazw± pliku i pozycj± w pliku.
497+ Zapamiêtaj numer linii dla potrzeb kroku 3.
403498
404- 2. Wci¶nij SHIFT-G aby przej¶æ na koniec pliku.
499+UWAGA: Mo¿esz te¿ zobaczyæ pozycjê kursora w prawym, dolnym rogu ekranu.
500+ Dzieje siê tak kiedy ustawiona jest opcja 'ruler' (wyja¶nione w lekcji 6.).
405501
406- 3. Wpisz numer linii, w której by³e¶ a potem SHIFT-G. To przeniesie Ciê
407- z powrotem do linii, w której by³e¶ kiedy wcisn±³e¶ CTRL-G (kiedy
408- wpisujesz numery NIE pojawiaj± siê one na ekranie).
502+ 2. Wci¶nij G aby przej¶æ na koniec pliku.
503+ Wci¶nij gg aby przej¶æ do pocz±tku pliku.
504+
505+ 3. Wpisz numer linii, w której by³e¶ a potem G . To przeniesie ciê
506+ z powrotem do linii, w której by³e¶ kiedy wcisn±³e¶ CTRL-G.
409507
410508 4. Je¶li czujesz siê wystarczaj±co pewnie, wykonaj kroki 1-3.
411509
412-
413-
414-
415510 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
416511 Lekcja 4.2.: POLECENIE SZUKAJ
417512
@@ -424,16 +519,16 @@
424519 2. Teraz wpisz b³ond<ENTER> . To jest s³owo, którego chcesz szukaæ.
425520
426521 3. By szukaæ tej samej frazy ponownie, po prostu wci¶nij n .
427- Aby szukaæ tej frazy w przeciwnym, kierunku wci¶nij SHIFT-N.
522+ Aby szukaæ tej frazy w przeciwnym, kierunku wci¶nij N .
428523
429524 4. Je¶li chcesz szukaæ frazy do ty³u, u¿yj polecenia ? zamiast / .
430525
431----> Kiedy polecenie 'szukaj' osi±gnie koniec pliku, przeszukiwanie
432- zacznie siê od pocz±tku pliku.
526+ 5. Aby wróciæ gdzie by³e¶ wci¶nij CTRL-O. Powtarzaj by wróciæ dalej. CTRL-I
527+ idzie do przodu.
433528
434- 'b³ond' to nie jest metoda by przeliterowaæ b³±d; 'b³ond' to b³±d.
435-
436-
529+UWAGA: 'b³ond' to nie jest metoda by przeliterowaæ b³±d; 'b³ond' to b³±d.
530+UWAGA: Kiedy szukanie osi±gnie koniec pliku bêdzie kontynuowa³o od pocz±tku
531+o ile opcja 'wrapscan' nie zosta³a przestawiona.
437532
438533 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
439534 Lekcja 4.3.: W POSZUKIWANIU PARUJ¡CYCH NAWIASÓW
@@ -449,6 +544,8 @@
449544
450545 4. Wci¶nij % aby przenie¶æ kursor z powrotem do paruj±cego nawiasu.
451546
547+ 5. Przenie¶ kursor do innego (,),[,],{ lub } i zobacz co robi % .
548+
452549 ---> To ( jest linia testowa z (, [, ] i {, } . ))
453550
454551 UWAGA: Ta funkcja jest bardzo u¿yteczna w debuggowaniu programu
@@ -456,10 +553,8 @@
456553
457554
458555
459-
460-
461556 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
462- Lekcja 4.4.: INNA METODA POPRAWIANIA B£ÊDÓW
557+ Lekcja 4.4.: POLECENIE SUBSTITUTE (zamiana)
463558
464559
465560 ** Wpisz :s/stary/nowy/g aby zamieniæ 'stary' na 'nowy'. **
@@ -469,30 +564,32 @@
469564 2. Wpisz :s/czaas/czas<ENTER> . Zauwa¿, ¿e to polecenie zmienia
470565 tylko pierwsze wyst±pienie 'czaas' w linii.
471566
472- 3. Teraz wpisz :s/czaas/czas/g oznacza zamianê (substytucjê)
473- globalnie w ca³ej linii. Zmienia wszystkie wyst±pienia w linii.
567+ 3. Teraz wpisz :s/czaas/czas/g . Dodane g oznacza zamianê (substytucjê)
568+ globalnie w ca³ej linii. Zmienia wszystkie wyst±pienia 'czaas' w linii.
474569
475570 ---> Najlepszy czaas na zobaczenie naj³adniejszych kwiatów to czaas wiosny.
476571
477572 4. Aby zmieniæ wszystkie wyst±pienia ³añcucha znaków pomiêdzy dwoma liniami,
478- wpisz: :#,#s/stare/nowe/g gdzie #,# s± numerami dwóch linii.
479- Wpisz :%s/stare/nowe/g by zmieniæ wszystkie wyst±pienia w ca³ym pliku.
480-
481-
482-
573+ wpisz: :#,#s/stare/nowe/g gdzie #,# s± numerami linii ograniczaj±cych
574+ region gdzie ma nast±piæ zamiana.
575+ wpisz :%s/stare/nowe/g by zmieniæ wszystkie wyst±pienia w ca³ym pliku.
576+ wpisz :%s/stare/nowe/gc by zmieniæ wszystkie wyst±pienia w ca³ym
577+ pliku, prosz±c o potwierdzenie za ka¿dym razem
483578
484579 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485580 LEKCJA 4. PODSUMOWANIE
486581
487-
488- 1. CTRL-G poka¿e Twoj± pozycjê w pliku i status pliku. SHIFT-G przenosi
489- Ciê do koñca pliku. SHIFT-G poprzedzony liczb± przenosi Ciê do linii
490- o tym numerze.
582+ 1. CTRL-G poka¿e Twoj± pozycjê w pliku i status pliku. SHIFT-G przenosi
583+ ciê do koñca pliku.
584+ G przenosi do koñca pliku.
585+ liczba G przenosi do linii [liczba].
586+ gg przenosi do pierwszej linii.
491587
492588 2. Wpisanie / a nastêpnie ³añcucha znaków szuka ³añcucha DO PRZODU.
493589 Wpisanie ? a nastêpnie ³añcucha znaków szuka ³añcucha DO TY£U.
494590 Po wyszukiwaniu wci¶nij n by znale¼æ nastêpne wyst±pienie szukanej
495- frazy tym samym kierunku lub Shift-N by szukaæ w kierunku przeciwnym.
591+ frazy tym samym kierunku lub N by szukaæ w kierunku przeciwnym.
592+ CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.
496593
497594 3. Wpisanie % gdy kursor znajduje siê na (,),[,],{, lub } lokalizuje
498595 paruj±cy znak.
@@ -502,8 +599,6 @@
502599 By zamieniæ frazy pomiêdzy dwoma liniami # wpisz :#,#s/stary/nowy/g
503600 By zamieniæ wszystkie wyst±pienia w pliku wpisz :%s/stary/nowy/g
504601 By Vim prosi³ Ciê o potwierdzienie dodaj 'c' :%s/stary/nowy/gc
505-
506-
507602 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
508603 Lekcja 5.1.: JAK WYKONAÆ POLECENIA ZEWNÊTRZNE
509604
@@ -520,9 +615,9 @@
520615 poka¿e spis plików w Twoim katalogu, tak jakby¶ by³ przy znaku zachêty
521616 pow³oki. Mo¿esz te¿ u¿yæ :!dir je¶li ls nie dzia³a.
522617
523----> Uwaga: W ten sposób mo¿na wykonaæ wszystkie polecenia pow³oki.
524----> Uwaga: Wszystkie polecenia : musz± byæ zakoñczone <ENTER>.
525-
618+Uwaga: W ten sposób mo¿na wykonaæ wszystkie polecenia pow³oki.
619+Uwaga: Wszystkie polecenia : musz± byæ zakoñczone <ENTER>.
620+ Od tego momentu nie zawsze bêdziemy o tym wspominaæ.
526621
527622
528623
@@ -531,7 +626,7 @@
531626 Lekcja 5.2.: WIÊCEJ O ZAPISYWANIU PLIKÓW
532627
533628
534- ** By zachowaæ zmiany w pliku wpisz :w NAZWA_PLIKU . **
629+ ** By zachowaæ zmiany w tek¶ci wpisz :w NAZWA_PLIKU . **
535630
536631 1. Wpisz :!dir lub :!ls by zobaczyæ spis plików w katalogu.
537632 Ju¿ wiesz, ¿e musisz wcisn±æ <ENTER> po tym.
@@ -541,37 +636,37 @@
541636 3. Teraz wpisz: :w TEST (gdzie TEST jest nazw± pliku jak± wybra³e¶.)
542637
543638 4. To polecenie zapamiêta ca³y plik (Vim Tutor) pod nazw± TEST.
544- By to sprawdziæ wpisz :!dir , ¿eby znowu zobaczyæ listê plików.
639+ By to sprawdziæ wpisz :!dir lub :!ls , ¿eby znowu zobaczyæ listê plików.
545640
546----> Zauwa¿, ¿e gdyby¶ teraz wyszed³ z Vim-a, a nastêpnie wszed³ ponownie
547- komend± vim TEST , plik by³by dok³adn± kopi± tutoriala kiedy go
548- zapisywa³e¶.
641+Uwaga: Zauwa¿, ¿e gdyby¶ teraz wyszed³ z Vim-a, a nastêpnie wszed³ ponownie
642+ komend± vim TEST , plik by³by dok³adn± kopi± tutoriala kiedy go
643+ zapisywa³e¶.
549644
550645 5. Teraz usuñ plik wpisuj±c: :!rm TEST
551646
552647
553648 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554- Lekcja 5.3.: SELEKTYWNE POLECENIE WRITE (zapisz)
649+ Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
555650
556651
557- ** By zachowaæ czê¶æ pliku wpisz :#,# w NAZWA_PLIKU **
558-
559- 1. Jeszcze raz wpisz :!dir lub :!ls by uzyskaæ listê plików
560- w katalogu i wybierz odpowiedni± nazwê tak± jak TEST.
561-
562- 2. Przenie¶ kursor na góre tej strony i wci¶nij CTRL-G by uzyskaæ
563- numer linii. ZAPAMIÊTAJ TÊ LICZBÊ!
652+ ** By zachowaæ czê¶æ pliku wpisz v ruch :w NAZWA_PLIKU **
564653
565- 3. Teraz przenie¶ siê na dó³ strony i wpisz CTRL-G znowu. ZAPAMIÊTAJ
566- NUMER TAK¯E TEJ LINII!
654+ 1. Przenie¶ kursor do tego wiersza.
567655
568- 4. By zachowaæ JEDYNIE czê¶æ pliku wpisz :#,# w TEST gdzie #,# to
569- dwie liczby jakie zapamiêta³e¶ (góra, dó³ ekranu), a TEST to nazwa
570- Twojego pliku.
656+ 2. Wci¶nij v i przenie¶ kursor do punktu 5. Zauwa¿, ¿e tekst zosta³
657+ pod¶wietlony.
571658
572- 5. Ponownie sprawd¼ czy ten plik tam jest ( :!dir ), ale NIE usuwaj go.
659+ 3. Wci¶nij znak : . Na dole ekranu pojawi siê :'<,'> .
573660
661+ 4. Wpisz w TEST , gdzie TEST to nazwa pliku, który jeszcze nie istnieje.
662+ Upewnij siê, ¿e widzisz :'<,'>w TEST zanim wci¶niesz Enter.
574663
664+ 5. Vim zapisze wybrane linie do pliku TEST. U¿yj :!dir lub :!ls , ¿eby to
665+ zobaczyæ. Jeszcze go nie usuwaj! U¿yjemy go w nastêpnej lekcji.
666+
667+UWAGA: Wci¶niêcie v zaczyna tryb Wizualny. Mo¿esz poruszaæ kursorem by
668+ zmieniæ rozmiary zaznaczenia. Mo¿esz te¿ u¿yæ operatora by zrobiæ co¶
669+ z tekstem. Na przyk³ad d usuwa tekst.
575670
576671 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
577672 Lekcja 5.4.: WSTAWIANIE I £¡CZENIE PLIKÓW
@@ -579,21 +674,21 @@
579674
580675 ** By wstawiæ zawarto¶æ pliku wpisz :r NAZWA_PLIKU **
581676
582- 1. Wpisz :!dir by siê upewniæ, ze Twój plik TEST zosta³ poprawnie
583- zapamiêtany.
677+ 1. Umie¶æ kursor tu¿ powy¿ej tej linii.
584678
585- 2. Umie¶æ kursor na górze strony.
586-
587-UWAGA: Po wykonaniu kroku 3. ponownie zobaczysz Lekcjê 5.3. Potem przejd¼
679+UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejd¼
588680 do DO£U by zobaczyæ ponownie tê lekcjê.
589681
590- 3. Teraz wczytaj plik TEST u¿ywaj±c polecenia :r TEST , gdzie TEST
682+ 2. Teraz wczytaj plik TEST u¿ywaj±c polecenia :r TEST , gdzie TEST
591683 jest nazw± pliku.
684+ Wczytany plik jest umieszczony poni¿ej linii z kursorem.
592685
593-UWAGA: Plik, który wczytujesz jest wstawiany tam gdzie by³ kursor.
686+ 3. By sprawdziæ czy plik zosta³ wczytany cofnij kursor i zobacz, ¿e
687+ teraz s± dwie kopie Lekcji 5.3., orygina³ i kopia z pliku.
594688
595- 4. By sprawdziæ czy plik zosta³ wczytany cofnij kursor i zobacz, ¿e
596- teraz s± dwie kopie Lekcji 5.3., orygina³ i kopia z pliku.
689+UWAGA: Mo¿esz te¿ wczytaæ wyj¶cie zewnêtrznego polecenia. Na przyk³ad
690+ :r !ls wczytuje wyj¶cie polecenia ls i umieszcza je pod kursorem.
691+
597692
598693
599694 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -610,12 +705,12 @@
610705
611706 2. :w NAZWA_PLIKU zapisuje obecny plik Vim-a na dysk z nazw± NAZWA_PLIKU.
612707
613- 3. :#,#w NAZWA_PLIKU zapisuje linie od # do # w pliku NAZWA_PLIKU.
708+ 3. v ruch :w NAZWA_PLIKU zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.
614709
615710 4. :r NAZWA_PLIKU wczytuje z dysku plik NAZWA_PLIKU i wstawia go do
616- bie¿±cego pliku po kursorze.
711+ bie¿±cego pliku poni¿ej kursora.
617712
618-
713+ 5. :r !dir wczytuje wyj¶cie polecenia dir i umieszcza je poni¿ej kursora.
619714
620715
621716
@@ -631,16 +726,16 @@
631726 2. Wpisz o (ma³e) by otworzyæ liniê PONI¯EJ kursora i przenie¶æ siê
632727 do trybu Insert (wprowadzanie).
633728
634- 3. Teraz przepisz liniê oznaczon± ---> i wci¶nij <ESC> by wyj¶æ
635- z trybu Insert (wprowadzanie).
729+ 3. Wpisz trochê tekstu i wci¶nij <ESC> by wyj¶æ z trybu Insert (wprowadzanie).
636730
637----> Po wci¶niêciu o kursor znajdzie siê w otwartej linii w trybie
638- Insert (wprowadzanie).
731+---> Po wci¶niêciu o kursor znajdzie siê w otwartej linii w trybie Insert.
639732
640733 4. By otworzyæ liniê POWY¯EJ kursora wci¶nij wielkie O zamiast ma³ego
641734 o . Wypróbuj to na linii poni¿ej.
642735
643- Otwórz liniê powy¿ej wciskaj±c SHIFT-O gdy kursor bêdzie na tej linii.
736+---> Otwórz liniê powy¿ej wciskaj±c SHIFT-O gdy kursor bêdzie na tej linii.
737+
738+
644739
645740 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646741 Lekcja 6.2.: POLECENIE APPEND (dodaj)
@@ -648,137 +743,203 @@
648743
649744 ** Wpisz a by dodaæ tekst ZA kursorem. **
650745
651- 1. Przenie¶ kursor do koñca pierwszej linii poni¿ej oznaczonej --->
652- Zrób to wciskaj±c $ w trybie Normal.
653-
654- 2. Wpisz a (ma³e) aby dodaæ tekst ZA znakiem pod kursorem.
655- Wielkie A dodaje tekst na koñcu linii.
746+ 1. Przenie¶ kursor do pocz±tku pierwszej linii poni¿ej oznaczonej --->
656747
657-Uwaga: To oszczêdza wpisania: ostatni znak ( $ ), i , tekst do dodania,
658- <ESC>, strza³ka w prawo i ostatecznie x , tylko po to by dodaæ
659- tekst na koñcu linii.
748+ 2. Wciskaj e dopóki kursor nie bêdzie na koñcu li .
660749
661- 3. Teraz dokoñcz pierwsz± liniê. Zauwa¿ tak¿e, ¿e append (dodaj)
662- dzia³a tak samo jak tryb Insert (wprowadzanie) z wyj±tkiem tego gdzie
663- tekst jest wstawiany.
750+ 3. Wpisz a (ma³e) aby dodaæ tekst ZA znakiem pod kursorem.
664751
665----> Ta linia pozwoli Ci æwiczyæ
752+ 4. Dokoñcz wyraz tak jak w linii poni¿ej. Wci¶nij <ESC> aby opu¶ciæ tryb
753+ Insert.
754+
755+ 5. U¿yj e by przej¶æ do kolejnego niedokoñczonego wyraze i powtarzaj kroki
756+ 3. i 4.
757+
758+---> Ta li poz Ci æwi dodaw teks do koñ lin
666759 ---> Ta linia pozwoli Ci æwiczyæ dodawanie tekstu do koñca linii.
667760
761+Uwaga: a , i and A prowadz± do trybu Insert, jedyn± ró¿nic± jest miejsce
762+ gdzie nowe znaki bêd± dodawane.
668763 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
669764 Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
670765
671766
672767 ** Wpisz wielkie R by zamieniæ wiêcej ni¿ jeden znak. **
673768
674- 1. Przenie¶ kursor do pierwszej linii poni¿ej oznaczonej --->.
675-
676- 2. Umie¶æ kursor na pocz±tku pierwszego wyrazu, który rózni siê od
677- drugiej linii oznaczonej ---> (wyraz 'ostatni').
769+ 1. Przenie¶ kursor do pierwszej linii poni¿ej oznaczonej --->. Przenie¶
770+ kursor do pierwszego xxx .
678771
679- 3. Teraz wpisz R i zamieñ resztê tekstu w pierwszej linii przez
680- nadpisanie nad starym tekstem tak aby pierwsza linia brzmia³a tak samo
681- jak druga.
772+ 2. Wci¶nij R i wpisz numer poni¿ej w drugiej linii, tak, ¿e zast±pi on
773+ xxx.
682774
683----> To make the first line the same as the last on this page use the keys.
684----> To make the first line the same as the second, type R and the new text.
775+ 3. Wci¶nij <ESC> by opu¶ciæ tryb Replace. Zauwa¿, ¿e reszta linii pozostaje
776+ niezmieniona.
685777
686- 4. Zauwa¿, ¿e kiedy wci¶niesz <ESC> aby wyj¶æ niezmieniony tekst
687- pozostaje.
778+ 5. Powtarzaj kroki by wymieniæ wszystkie xxx.
779+
780+---> Dodanie 123 do xxx daje xxx.
781+---> Dodanie 123 do 456 daje 579.
782+
783+UWAGA: Tryb Replace jest jak tryb Insert, ale ka¿dy znak usuwa istniej±cy
784+ znak.
785+
786+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
787+ Lekcja 6.4.: KOPIOWANIE I WKLEJANIE TEKSTU
688788
689789
790+ ** u¿yj operatora y aby skopiowaæ tekst i p aby go wkleiæ **
791+
792+ 1. Przejd¼ do linii oznaczonej ---> i umie¶c kursor za "a)".
793+
794+ 2. Wejd¼ w tryb Visual v i przenie¶ kursor na pocz±tek "pierwszy".
795+
796+ 3. Wci¶nij y aby yankowaæ (kopiowaæ) pod¶wietlony tekst.
797+
798+ 4. Przenie¶ kursor do koñca nastêpnej linii: j$
799+
800+ 5. Wci¶nij p aby wpakowaæ (paste) tekst. Dodaj: a drugi<ESC> .
801+
802+ 6. U¿yj trybu Visual aby wybraæ " element.", yankuj go y , przejd¼ do koñca
803+ nastêpnej linii j$ i upakuj tam tekst z p .
804+
805+---> a) to jest pierwszy element.
806+ b)
807+Uwaga: mo¿esz u¿yæ y jako operatora; yw kopiuje jeden wyraz.
690808
691809 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
692- Lekcja 6.4.: USTAWIANIE OPCJI
810+ Lekcja 6.5.: USTAWIANIE OPCJI
693811
694812
695813 ** Ustawianie opcji tak by szukaj lub substytucja ignorowa³y wielko¶æ liter **
696814
697- 1. Szukaj 'ignore' wpisuj±c (w trybie Normal):
698- /ignore
815+ 1. Szukaj 'ignore' wpisuj±c: /ignore<ENTER>
699816 Powtórz szukanie kilka razy naciskaj±c klawisz n .
700817
701818 2. Ustaw opcjê 'ic' (Ignore case -- ignoruj wielko¶æ liter) poprzez
702819 wpisanie: :set ic
703820
704- 3. Teraz szukaj 'ignore' ponownie wciskuj±c: n
705- Powtórz szukanie kilka razy naciskaj±c klawisz n .
821+ 3. Teraz szukaj 'ignore' ponownie wciskuj±c: n
822+ Zauwa¿, ¿e Ignore i IGNORE tak¿e s± teraz znalezione.
706823
707- 4. Ustaw opcje 'hlsearch' i 'incsearch':
708- :set hls is
824+ 4. Ustaw opcje 'hlsearch' i 'incsearch': :set hls is
709825
710826 5. Teraz wprowad¼ polecenie szukaj ponownie i zobacz co siê zdarzy:
711- /ignore
827+ /ignore<ENTER>
712828
829+ 6. Aby wy³±czyæ ignorowanie wielko¶ci liter: :set noic
713830
831+Uwaga: Aby usun±æ pod¶wietlanie dopasowañ wpisz: :nohlsearch
832+Uwaga: Aby ignorowaæ wielko¶æ liter dla jednego wyszukiwania: /ignore\c<ENTER>
714833 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
715834 LEKCJA 6. PODSUMOWANIE
716835
717836
718- 1. Wpisanie o otwiera liniê PONI¯EJ kursora i umieszcza kursor
719- w otwartej linii w trybie Insert (wprowadzanie).
720- Wpisanie wielkiego O otwiera liniê POWY¯EJ linii, w której
721- znajduje siê kursor.
722-
837+ 1. Wpisanie o otwiera liniê PONI¯EJ kursora.
838+ Wpisanie wielkiego O otwiera liniê POWY¯EJ kursora.
723839 2. Wpisz a by wstawiæ tekst ZA znakiem na, którym jest kursor.
724- Wpisanie wielkiego A automatycznie dodaje tekst na koñcu linii.
725-
726- 3. Wpisanie wielkiego R wprowadza w tryb Replace (zamiana) dopóki
840+ Wpisanie wielkiego A dodaje tekst na koñcu linii.
841+ 3. Polecenie e przenosi do koñca wyrazu.
842+ 4. Operato y yankuje (kopiuje) tekst, p pakuje (wkleja, paste) go.
843+ 5. Wpisanie wielkiego R wprowadza w tryb Replace (zamiana) dopóki
727844 nie zostanie wci¶niêty <ESC>.
728-
729- 4. Wpisanie ":set xxx" ustawia opcjê "xxx".
730-
731-
845+ 6. Wpisanie ":set xxx" ustawia opcjê "xxx". Nietkóre opcje:
846+ 'ic' 'ignorecase' ignoruj wielko¶æ znaków
847+ 'is' 'incsearch' poka¿ czê¶ciowe dopasowania
848+ 'hls' 'hlsearch' pod¶wietl wszystkie dopasowania
849+ Mo¿esz u¿yæ zarówno d³ugiej jak i krótkiej formy.
850+ 7. Dodaj "no" aby wy³±czyæ opcjê: :set noic
732851
733852
734853
735854
736855
737856 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
738- LEKCJA 7. POLECENIA POMOCY ON-LINE
739-
857+ LEKCJA 7.1. JAK UZYSKAÆ POMOC
740858
741859 ** U¿ycie systemu pomocy on-line **
742860
743861 Vim posiada bardzo dobry system pomocy on-line. By zacz±æ spróbuj jednej
744862 z trzech mo¿liwo¶ci:
745-
746863 - wci¶nij klawisz <HELP> (je¶li takowy posiadasz)
747864 - wci¶nij klawisz <F1> (je¶li takowy posiadasz)
748865 - wpisz :help<ENTER>
749866
750- Wpisz :q<ENTER> by zamkn±c okno pomocy.
867+ Przeczytaj tekst w oknie pomocy aby dowiedzieæ siê jak dzia³a pomoc.
868+ wpisz CTRL-W CTRL-W aby przeskoczyæ z jednego okna do innego
869+ wpisz :q<ENTER> aby zamkn±æ okno pomocy.
751870
752871 Mo¿esz te¿ znale¼æ pomoc na ka¿dy temat podaj±c argument polecenia ":help".
753872 Spróbuj tych (nie zapomnij wcisn±æ <ENTER>):
754873
755874 :help w
756- :help c_<T
875+ :help c_CTRL-D
757876 :help insert-index
758877 :help user-manual
759-
760878 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
761- LEKCJA 8. TWORZENIE SKRYPTU STARTOWEGO
879+ LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO
762880
763- ** W³±czanie mo¿liwo¶ci Vim-a **
881+ ** W³±cz mo¿liwo¶ci Vim-a **
764882
765883 Vim ma o wiele wiêcej mo¿liwo¶ci ni¿ Vi, ale wiêkszo¶æ z nich jest domy¶lnie
766884 wy³±czona. Je¶li chcesz w³±czyæ te mo¿liwo¶ci na starcie musisz utworzyæ
767885 plik "vimrc".
768886
769887 1. Pocz±tek edycji pliku "vimrc" zale¿y od Twojego systemu:
770- :edit ~/.vimrc dla Unixa
888+ :edit ~/.vimrc dla Uniksa
771889 :edit $VIM/_vimrc dla MS-Windows
772-
773890 2. Teraz wczytaj przyk³adowy plik "vimrc":
774891 :read $VIMRUNTIME/vimrc_example.vim
775-
776892 3. Zapisz plik:
777- :write
893+ :w
778894
779895 Nastêpnym razem gdy zaczniesz pracê w Vimie bêdzie on u¿ywaæ pod¶wietlania
780896 sk³adni. Mo¿esz dodaæ wszystkie swoje ulubione ustawienia do tego pliku
781897 "vimrc".
898+ Aby uzyskaæ wiêcej informacji wpisz :help vimrc-intro
899+
900+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
901+ Lekcja 7.3.: UZUPE£NIANIE
902+
903+
904+ ** Uzupe³nianie linii poleceñ z CTRL-D i <TAB> **
905+
906+ 1. Upewnij siê, ¿e Vim nie jest w trybie kompatybilno¶ci: :set nocp
907+
908+ 2. Zerknij jakie pliki s± w bie¿±cm katalogu: :!ls lub :!dir
909+
910+ 3. Wpisz pocz±tek polecenia: :e
911+
912+ 4. Wci¶nij CTRL-D i Vim poka¿e listê poleceñ jakie zaczynaj± siê na "e".
913+
914+ 5. Wci¶nij <TAB> i Vim uzupe³ni polecenie do ":edit".
915+
916+ 6. Dodaj spacjê i zacznij wpisywaæ nazwê istniej±cego pliku: :edit FIL
917+
918+ 7. Wci¶nij <TAB>. Vim uzupe³ni nazwê (je¶li jest niepowtarzalna).
919+
920+UWAGA: Uzupe³nianie dzia³a dla wielu poleceñ. Spróbuj wcisn±æ CTRL-D i <TAB>.
921+ U¿yteczne zw³aszcza przy :help .
922+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
923+ Lekcja 7. PODSUMOWANIE
924+
925+
926+ 1. Wpisz :help lub wci¶nij <F1> lub <Help> aby otworzyæ okno pomocy.
927+
928+ 2. Wpisz :help cmd aby uzyskaæ pomoc o cmd .
929+
930+ 3. Wpisz CTRL-W CTRL-W aby przeskoczyæ do innego okna.
931+
932+ 4. Wpisz :q aby zamkn±æ okno pomocy.
933+
934+ 5. Utwórz plik startowy vimrc aby zachowaæ wybrane ustawienia.
935+
936+ 6. Po poleceniu : , wci¶nij CTRL-D aby zobaczyæ mo¿liwe uzupe³nienia.
937+ Wci¶nij <TAB> aby u¿yæ jednego z nich.
938+
939+
940+
941+
942+
782943
783944 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
784945
@@ -826,5 +987,5 @@
826987 Przet³umaczone przez Miko³aja Machowskiego,
827988 Sierpieñ 2001,
828989 rev. Marzec 2002
990+ 2nd rev. Wrzesieñ 2004
829991 Wszelkie uwagi proszê kierowaæ na: mikmach@wp.pl
830-
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/tutor/tutor.pl.cp1250
--- a/runtime/tutor/tutor.pl.cp1250 Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/tutor/tutor.pl.cp1250 Mon Sep 13 20:26:32 2004 +0000
@@ -1,5 +1,5 @@
11 ===============================================================================
2-= W i t a j w t u t o r i a l u V I M - a - Wersja 1.5. =
2+= W i t a j w t u t o r i a l u V I M - a - Wersja 1.7. =
33 ===============================================================================
44
55 Vim to potê¿ny edytor, który posiada wiele poleceñ, zbyt du¿o by
@@ -8,21 +8,23 @@
88 u¿ywaæ Vim-a jako edytora ogólnego przeznaczenia.
99
1010 Czas potrzebny na ukoñczenie tutoriala to 25 do 30 minut i zale¿y
11- od tego jak wiele czasu spêdzisz na eksperymentowaniu. Polecenia
12- wykonywane w czasie lekcji zmodyfikuj¹ tekst. Zrób wczeœniej kopiê
13- tego pliku do æwiczeñ (jeœli zacz¹³eœ komend¹ "vimtutor" to ju¿
14- pracujesz na kopii).
11+ od tego jak wiele czasu spêdzisz na eksperymentowaniu.
12+
13+ UWAGA:
14+ Polecenia wykonywane w czasie lekcji zmodyfikuj¹ tekst. Zrób
15+ wczeœniej kopiê tego pliku do æwiczeñ (jeœli zacz¹³eœ komend¹
16+ "vimtutor" to ju¿ pracujesz na kopii).
1517
1618 Wa¿ne jest, byœ pamiêta³, ¿e przewodnik ten zosta³ zaprojektowany do
1719 nauki poprzez æwiczenia. To oznacza, ¿e musisz wykonywaæ polecenia
1820 by nauczyæ siê ich prawid³owo. Jeœli bêdziesz jedynie czyta³ tekst
1921 szybko zapomnisz wiele poleceñ!
2022
21- Teraz upewnij siê, ¿e nie masz wciœniêtego CapsLocka i wciskaj j
23+ Teraz upewnij siê, ¿e nie masz wciœniêtego CapsLocka i wciskaj j
2224 tak d³ugo dopóki Lekcja 1.1. nie wype³ni ca³kowicie ekranu.
2325
2426 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25- Lekcja 1.1.: PORUSZANIE SIÊ KURSOREM
27+ Lekcja 1.1.: PORUSZANIE SIÊ KURSOREM
2628
2729 ** By wykonaæ ruch kursorem, wciœnij h, j, k, l jak pokazano. **
2830
@@ -34,7 +36,7 @@
3436 1. Poruszaj kursorem dopóki nie bêdziesz pewien, ¿e pamiêtasz polecenia.
3537
3638 2. Trzymaj j tak d³ugo a¿ bêdzie siê powtarza³.
37----> Teraz wiesz jak dojœæ do nastêpnej lekcji.
39+ Teraz wiesz jak dojœæ do nastêpnej lekcji.
3840
3941 3. U¿ywaj¹c strza³ki w dó³ przejdŸ do nastêpnej lekcji.
4042
@@ -43,35 +45,35 @@
4345
4446 Uwaga: Klawisze kursora tak¿e powinny dzia³aæ, ale u¿ywaj¹c hjkl bêdziesz
4547 w stanie poruszaæ siê o wiele szybciej jak siê tylko przyzwyczaisz.
48+ Naprawdê!
4649
4750 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48- Lekcja 1.2.: WCHODZENIE I WYCHODZENIE Z VIM-a
51+ Lekcja 1.2.: WYCHODZENIE Z VIM-a
4952
5053 !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj ca³¹ lekcjê.!!
5154
5255 1. Wciœnij <ESC> (aby upewniæ siê, ¿e jesteœ w trybie Normal).
5356 2. Wpisz: :q!<ENTER>.
54-
55----> To spowoduje wyjœcie z edytora BEZ zapamiêtywania zmian jakie
57+ To spowoduje wyjœcie z edytora PORZUCAJ¥C wszelkie zmiany jakie
5658 zd¹¿y³eœ zrobiæ. Jeœli chcesz zapamiêtaæ zmiany i wyjœæ
5759 wpisz: :wq<ENTER>
5860
5961 3. Kiedy widzisz znak zachêty pow³oki wpisz komendê, ¿eby wróciæ
60- do tutoriala.
61- Powinienieœ wpisaæ: vimtutor<ENTER>
62- Normalnie u¿y³byœ: vim tutor<ENTER>
63-
64----> 'vim' oznacza edytor vim, 'tutor' jest plikem, który chcia³byœ
65- edytowaæ.
62+ do tutoriala. Czyli: vimtutor<ENTER>
6663
6764 4. Jeœli chcesz zapamiêtaæ polecenia, wykonaj kroki 1. do 3. aby
68- wyjœæ i wróciæ do edytora. Potem przenieœ siê do Lekcji 1.3.
65+ wyjœæ i wróciæ do edytora.
66+
67+UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobi³eœ. W nastêpnych
68+lekcjach dowiesz siê jak je zapamiêtywaæ.
69+
70+ 5. Przenieœ kursor do lekcji 1.3.
71+
6972
7073 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71- Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE
74+ Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE
7275
73-
74- ** W trybie Normal wciœnij x aby usun¹æ znak pod kursorem. **
76+ ** Wciœnij x aby usun¹æ znak pod kursorem. **
7577
7678 1. Przenieœ kursor do linii poni¿ej oznaczonej --->.
7779
@@ -90,11 +92,12 @@
9092
9193
9294
95+
9396 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94- Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)
97+ Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)
9598
9699
97- ** W trybie Normal wciœnij i aby wstawiæ tekst. **
100+ ** Wciœnij i aby wstawiæ tekst. **
98101
99102 1. Przenieœ kursor do pierwszej linii poni¿ej oznaczonej --->.
100103
@@ -114,35 +117,81 @@
114117
115118
116119 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120+ Lekcja 1.5.: EDYCJA TEKSTU - APPENDING (dodawanie)
121+
122+
123+ ** Wciœnij A by dodaæ tekst. **
124+
125+ 1. Przenieœ kursor do pierwszej linii poni¿ej oznaczonej --->.
126+ Nie ma znaczenia, który to bêdzie znak.
127+
128+ 2. Wciœnij A i wpisz odpowiednie dodatki.
129+
130+ 3. Kiedy tekst zosta³ dodany, wciœnij <ESC> i wróæ do trybu Normalnego.
131+
132+ 4. Przenieœ kursor do drugiej linii oznaczonej ---> i powtórz kroki 2 i 3
133+ aby poprawiæ zdanie.
134+
135+---> Brakuje tu tro
136+ Brakuje tu trochê tekstu.
137+---> Tu te¿ trochê bra
138+ Tu te¿ trochê brakuje.
139+
140+ 5. Kiedy ju¿ utrwali³eœ æwiczenie przejdŸ do lekcji 1.6.
141+
142+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143+ Lekcja 1.6.: EDYCJA PLIKU
144+
145+
146+ ** U¿yj :wq aby zapisaæ plik i wyjœæ. **
147+
148+ !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczyaj ca³¹ lekcjê !!
149+
150+ 1. Zakoñcz tutorial tak jak w lekcji 1.2.: :q!
151+
152+ 2. W pow³oce wydaj polecenie: vim tutor<ENTER>
153+ "vim" jest poleceniem uruchamiaj¹cym edytor Vimm. 'tutor' to nazwa pliku
154+ jaki chcesz edytowaæ. U¿yj pliku jaki mo¿e zostaæ zmieniony.
155+
156+ 3. Dodaj i usuñ tekst tak jak siê nauczy³eœ w poprzednich lekcjach.
157+
158+ 4. Zapisz plik ze zmianami w opuϾ Vima: :wq<ENTER>
159+
160+ 5. Uruchom ponownie vimtutor i przejdŸ do podsumowania lekcji.
161+
162+ 6. Po przeczytaniu wszystkich kroków i zrozumieniu ich: wykonaj je.
163+
164+
165+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117166 LEKCJA 1. PODSUMOWANIE
118167
119- 1. Poruszasz kursorem u¿ywaj¹c "strza³ek" i klawiszy hjkl .
168+ 1. Poruszasz kursorem u¿ywaj¹c "strza³ek" i klawiszy hjkl .
120169 h (w lewo) j (w dó³) k (do góry) l (w prawo)
121170
122- 2. By wejœæ do Vim-a (od znaku zachêty) wpisz:
171+ 2. By wejœæ do Vim-a (z pow³oki) wpisz:
123172 vim NAZWA_PLIKU<ENTER>
124173
125174 3. By wyjϾ z Vim-a wpisz:
126175 <ESC> :q!<ENTER> by usun¹c wszystkie zmiany.
127176 LUB: <ESC> :wq<ENTER> by zmiany zachowaæ.
128177
129- 4. By usun¹æ znak pod kursorem w trybie Normal: x
178+ 4. By usun¹æ znak pod kursorem wciœnij: x
130179
131- 5. By wstawiæ tekst przed kursorem w trybie Normal:
132- i type in text <ESC>
180+ 5. By wstawiæ tekst przed kursorem lub dodaæ:
181+ i wpisz tekst <ESC> wstawi przed kursorem
182+ A wpisz tekst <ESC> doda na koñcu linii
133183
134184 UWAGA: Wciœniêcie <ESC> przeniesie Ciê z powrotem do trybu Normal
135185 lub odwo³a niechciane lub czêœciowo wprowadzone polecenia.
136186
137187 Teraz mo¿emy kontynuowaæ i przejœæ do Lekcji 2.
138-
139188 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140- Lekcja 2.1.: POLECENIE DELETE (usuwanie)
189+ Lekcja 2.1.: POLECENIE DELETE (usuwanie)
141190
142191
143- ** Wpisz dw by usun¹c tekst do koñca wyrazu. **
192+ ** Wpisz dw by usun¹c wyraz. **
144193
145- 1. Wciœnij <ESC> by upewniæ siê, ¿e jesteœ w trybie Normal.
194+ 1. Wciœnij <ESC> by upewniæ siê, ¿e jesteœ w trybie Normal.
146195
147196 2. Przenieœ kursor do linii poni¿ej oznaczonej --->.
148197
@@ -150,9 +199,9 @@
150199
151200 4. Wpisz dw by usun¹c wyraz.
152201
153- UWAGA: Litery dw bêd¹ siê pojawiaæ na dole ekranu w miarê
154- wpisywania. Jeœli wpisa³eœ coœ Ÿle wciœnij <ESC> i zacznij od
155- pocz¹tku.
202+ UWAGA: Litera d pojawi siê na dole ekranu. Vim czeka na wpisanie w .
203+ Jeœli zobaczysz inny znak wpisa³eœ coœ Ÿle, wciœnij <ESC> i zacznij
204+ od pocz¹tku.
156205
157206 ---> Jest tu parê papier wyrazów, które kamieñ nie nale¿¹ do no¿yce tego zdania.
158207
@@ -163,15 +212,15 @@
163212 Lekcja 2.2.: WIÊCEJ POLECEÑ USUWAJ¥CYCH
164213
165214
166- ** Wpisz d$ aby usun¹æ tekst do koñca linii. **
215+ ** Wpisz d$ aby usun¹æ tekst do koñca linii. **
167216
168- 1. Wciœnij <ESC> aby siê upewniæ, ¿e jesteœ w trybie Normal.
217+ 1. Wciœnij <ESC> aby siê upewniæ, ¿e jesteœ w trybie Normal.
169218
170219 2. Przenieœ kursor do linii poni¿ej oznaczonej --->.
171220
172221 3. Przenieœ kursor do koñca poprawnego zdania (PO pierwszej . ).
173222
174- 4. Wpisz d$ aby usun¹æ resztê linii.
223+ 4. Wpisz d$ aby usun¹æ resztê linii.
175224
176225 ---> Ktoœ wpisa³ koniec tego zdania dwukrotnie. zdania dwukrotnie.
177226
@@ -183,53 +232,99 @@
183232
184233
185234 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186- Lekcja 2.3.: O POLECENIACH I OBIEKTACH
235+ Lekcja 2.3.: O OPERATORACH I RUCHACH
187236
188237
189- Format dla polecenia usuwaj¹cego d jest taki:
238+ Wiele poleceñ zmieniaj¹cych tekst s¹ z³o¿one z operatora i ruchu.
239+ Format dla polecenia usuwaj¹cego z operatorem d jest taki:
190240
191- [liczba] d obiekt LUB d [liczba] obiekt
241+ d ruch
192242
193243 Gdzie:
194- liczba - ile razy polecenie ma byæ wykonane (opcjonalne, domyœlna=1).
195- d - polecenie usuwaj¹ce.
196- obiekt - na czym polecenie bêdzie wykonywane (lista poni¿ej).
244+ d - operator usuwania.
245+ ruch - na czym polecenie bêdzie wykonywane (lista poni¿ej).
197246
198- Krótka lista obiektów:
199- w - od kursora do koñca wyrazu w³¹czaj¹c spacjê.
200- e - od kursora do koñca wyrazu NIE w³¹czaj¹c spacji.
201- $ - od kursora do koñca linii.
247+ Krótka lista ruchów:
248+ w - do pocz¹tku nastêpnego wyrazu WY£¥CZAJ¥C pierwszy znak.
249+ e - do koñca bie¿¹cego wyrazu, W£¥CZAJ¥C ostatni znak.
250+ $ - do koñca linii, W£¥CZAJ¥C ostatni znak.
202251
203-UWAGA: Dla ciekawskich, wybieranie obiektu w trybie Normal bez polecania
204- polecenia przeniesie kursor tak jak opisano w liœcie obiektów.
252+W ten sposób wpisanie de usunie znaki od kursora do koñca wyrazu.
253+
254+UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
255+ tak jak to okreœlono.
256+
257+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
258+ Lekcja 2.4.: U¯YCIE MNO¯NIKA DLA RUCHU
259+
260+
261+ ** Wpisanie liczby przed ruchem powtarza ruch odpowiedni¹ iloœæ razy. **
262+
263+ 1. Przenieœ kursor na pocz¹tek linii poni¿ej zaznaczonej --->.
264+
265+ 2. Wpisz 2w aby przenieϾ kursor o dwa wyrazy do przodu.
266+
267+ 3. Wpisz 3e aby przenieœæ kursor do koñca trzeciego wyrazu w przód.
268+
269+ 4. Wpisz 0 (zero) aby przenieœæ kursor do pocz¹tku linii.
270+
271+ 5. Powtórz kroki 2. i 3. z innymi liczbami.
272+
273+
274+ ---> To jest zwyk³y wiersz z wyrazami po których mo¿esz siê poruszaæ.
275+
276+ 6. PrzejdŸ do lekcji 2.5.
205277
206278
207279
208280 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209- Lekcja 2.4.: WYJ¥TEK DO 'POLECENIE-OBIEKT'
281+ Lekcja 2.5.: U¯YCIE MNO¯NIKA BY WIÊCEJ USUN¥Æ
210282
211283
212- ** Wpisz dd by usun¹c ca³¹ liniê. **
213-
214- Z powodu czêstoœci usuwania ca³ych linii, projektanci Vim-a zdecydowali, ¿e
215- bêdzie ³atwiej wpisaæ dwa razy pod rz¹d d aby usun¹æ liniê.
284+ ** Wpisanie liczby z operatorem powtarza go odpowiedni¹ iloœæ razy. **
216285
217- 1. Przenieœ kursor do zdania poni¿ej.
218- 2. Wpisz dd aby usun¹c wiersz.
219- 3. Teraz przenieœ siê do czwartego wiersza.
220- 4. Wpisz 2dd (pamiêtaj liczba-polecenie-obiekt) aby usun¹c dwia wiersze.
286+ W wy¿ej wspomnianej kombinacji operatora usuwania i ruchu podaj mno¿nik
287+ przed ruchem by wiêcej usun¹æ:
288+ d liczba ruch
221289
222- 1) Ró¿e s¹ czerwone,
223- 2) B³oto jest fajne,
224- 3) Fio³ki s¹ niebieskie,
225- 4) Mam samochód,
226- 5) Zegar podaje czas,
227- 6) Cukier jest s³odki,
228- 7) I ty te¿.
290+ 1. Przenieœ kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.
291+
292+ 2. Wpisz 2dw aby usun¹æ dwa wyrazy KAPITALIKAMI.
293+
294+ 3. Powtarzaj kroki 1. i 2. z innymi mno¿nikami aby usun¹æ kolejne wyrazy
295+ KAPITALIKAMI jednym poleceniem
296+
297+---> ta ASD WE linia QWE ASDF ZXCV FG wyrazów zosta³a ERT FGH CF oczyszczona.
298+
299+UWAGA: Mno¿nik pomiêdzy operatorem d i ruchem dzia³a podobnie do ruchu bez
300+ operatora.
229301
230302
231303 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232- Lekcja 2.5.: POLECENIE UNDO (cofnij)
304+ Lekcja 2.6.: OPEROWANIE NA LINIACH
305+
306+
307+ ** Wpisz dd aby usun¹æ ca³¹ liniê. **
308+
309+ Z powodu czêstoœci usuwania ca³ych linii, projektanci VI zdecydowali, ¿e
310+ bêdzie ³atwiej wpisaæ dwa razy d aby usun¹æ liniê.
311+
312+ 1. Przenieœ kursor do zdania poni¿ej.
313+ 2. Wpisz dd aby usun¹c wiersz.
314+ 3. Teraz przenieœ siê do czwartego wiersza.
315+ 4. Wpisz 2dd aby usun¹c dwia wiersze.
316+
317+---> 1) Ró¿e s¹ czerwone,
318+---> 2) B³oto jest fajne,
319+---> 3) Fio³ki s¹ niebieskie,
320+---> 4) Mam samochód,
321+---> 5) Zegar podaje czas,
322+---> 6) Cukier jest s³odki,
323+---> 7) I ty te¿.
324+
325+
326+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
327+ Lekcja 2.7.: POLECENIE UNDO (cofnij)
233328
234329
235330 ** Wciœnij u aby cofn¹æ skutki ostatniego polecenia.
@@ -241,7 +336,7 @@
241336 3. Teraz wciœnij u aby cofn¹æ skutki ostatniego polecenia.
242337 4. Tym razem popraw wszystkie b³êdy w linii u¿ywaj¹c polecenia x .
243338 5. Teraz wciœnij wielkie U aby przywróciæ liniê do oryginalnego stanu.
244- 6. Teraz wciœnij u kilka razy by cofn¹æ U i poprzednie polecenia.
339+ 6. Teraz wciœnij u kilka razy by cofn¹æ U i poprzednie polecenia.
245340 7. Teraz wpsz CTRL-R (trzymaj równoczeœnie wciœniête klawisze CTRL i R)
246341 kilka razy, by cofn¹æ cofniêcia.
247342
@@ -254,62 +349,62 @@
254349 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255350 LEKCJA 2. PODSUMOWANIE
256351
257- 1. By usun¹æ znaki od kursora do koñca wyrazu wpisz: dw
258-
259- 2. By usun¹æ znaki od kursora do koñca linii wpisz: d$
260-
261- 3. By usun¹æ ca³¹ liniê: dd
262352
263- 4. Format polecenia w trybie Normal:
264-
265- [liczba] polecenie obiekt LUB polecenie [liczba] obiekt
266-
267- Gdzie:
268- liczba - ile razy polecenie ma byæ wykonane
269- polecenie - to co trzeba zrobiæ (np. d dla usuwania)
270- obiekt - na czym polecenie bêdzie wykonywane, takie jak w (wyraz),
353+ 1. By usun¹æ znaki od kursora do nastêpnego wyrazu wpisz: dw
354+ 2. By usun¹æ znaki od kursora do koñca linii wpisz: d$
355+ 3. By usun¹æ ca³¹ liniê: dd
356+ 4. By powtórzyæ ruch poprzedŸ go liczb¹: 2w
357+ 5. Format polecenia zmiany to:
358+ operator [liczba] ruch
359+ gdzie:
360+ operator - to co trzeba zrobiæ (np. d dla usuwania)
361+ [liczba] - opcjonalne, ile razy powtórzyæ ruch
362+ ruch - przenosi nad tekstem do operowania, takim jak w (wyraz),
271363 $ (do koñca linii), etc.
272364
273- 5. By cofn¹æ poprzednie polecenie, wpisz: u (ma³e u)
365+ 6. By przejœæ do pocz¹tku linii u¿yj zera: 0
366+ 7. By cofn¹æ poprzednie polecenie, wpisz: u (ma³e u)
274367 By cofn¹æ wszystkie zmiany w linii wpisz: U (wielkie U)
275368 By cofn¹æ cofniêcia wpisz: CTRL-R
276369
277-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
278- Lekcja 3.1.: POLECENIE PUT (wstaw)
279370
280371
281- ** Wpisz p by wstawiæ ostatnie usuniêcia po kursorze. **
372+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
373+ Lekcja 3.1.: POLECENIE PUT (wstaw)
282374
283- 1. Przenieœ kursor do pierwszej linii w zestawie poni¿ej.
284375
285- 2. Wpisz dd aby usun¹æ liniê i przechowaæ j¹ w buforze Vim-a.
376+ ** Wpisz p by wstawiæ ostatnie usuniêcia za kursorem. **
286377
287- 3. Przenieœ kursor do linii POWY¯EJ tej gdzie usuniêta linia powinna
378+ 1. Przenieœ kursor do pierwszej linii ---> poni¿ej.
379+
380+ 2. Wpisz dd aby usun¹æ liniê i przechowaæ j¹ w rejestrze Vim-a.
381+
382+ 3. Przenieœ kursor do linii c), POWY¯EJ tej gdzie usuniêta linia powinna
288383 siê znajdowaæ.
289384
290- 4. W trybie Normal, wciœnij p by wstawiæ liniê.
385+ 4. Wciœnij p by wstawiæ liniê poni¿ej kursora.
291386
292387 5. Powtaj kroki 2. do 4. a¿ znajd¹ siê w odpowiednim porz¹dku.
293388
294- d) Jak dwa anio³ki.
295- b) Na dole fio³ki,
296- c) A my siê kochamy,
297- a) Na górze ró¿e,
389+---> d) Jak dwa anio³ki.
390+---> b) Na dole fio³ki,
391+---> c) A my siê kochamy,
392+---> a) Na górze ró¿e,
298393
299394
300395 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301396 Lekcja 3.2.: POLECENIE REPLACE (zast¹p)
302397
303398
304- ** Wpisz r a nastêpnie znak by zast¹piæ znak pod kursorem. **
399+ ** Wpisz rx aby zast¹piæ znak pod kursorem na x . **
305400
306401 1. Przenieœ kursor do pierwszej linii poni¿ej oznaczonej --->
307402
308403 2. Ustaw kursor na pierwszym b³êdzie.
309404
310- 3. Wpisz r a potem znak jaki powinien zast¹piæ b³êdny.
405+ 3. Wpisz r a potem znak jaki powinien go zast¹piæ.
311406
312- 4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie bêdzie poprawna.
407+ 4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie bêdzie taka jak druga.
313408
314409 ---> Kjedy ten wiersz bi³ wstókiwany ktoœ wcizn¹³ perê z³ych klawirzy!
315410 ---> Kiedy ten wiersz by³ wstukiwany ktoœ wcisn¹³ parê z³ych klawiszy!
@@ -321,18 +416,17 @@
321416
322417
323418 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324- Lekcja 3.3.: POLECENIE CHANGE (zmieñ)
419+ Lekcja 3.3.: OPERATOR CHANGE (zmieñ)
325420
326- ** By zmieniæ ca³e s³owo lub jego czêœæ wpisz cw (change word). **
421+ ** By zmieniæ do koñca wyrazu wpisz ce . **
327422
328423 1. Przenieœ kursor do pierwszej linii poni¿ej oznaczonej --->.
329424
330425 2. UmieϾ kursor na u w lunos.
331426
332- 3. Wpisz cw i popraw wyraz (w tym wypadku wstaw 'inia').
427+ 3. Wpisz ce i popraw wyraz (w tym wypadku wstaw inia ).
333428
334- 4. Wciœnij <ESC> i przejdŸ do nastêpnego b³êdu (pierwszy znak, który ma
335- ulec zmianie).
429+ 4. Wciœnij <ESC> i przejdŸ do nastêpnej planowanej zmiany.
336430
337431 5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie bêdzie takie same
338432 jak drugie.
@@ -340,20 +434,21 @@
340434 ---> Ta lunos ma pire s³ów, które t¿ina zbnic u¿ifajonc pcmazu zmieñ.
341435 ---> Ta linia ma parê s³ów, które trzeba zmieniæ u¿ywaj¹c polecenia zmieñ.
342436
343- Zauwa¿, ¿e cw nie tylko zamienia wyraz, ale tak¿e zmienia tryb na
437+ Zauwa¿, ¿e ce nie tylko zamienia wyraz, ale tak¿e zmienia tryb na
344438 Insert (wprowadzanie).
345439
440+
346441 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
347442 Lekcja 3.4.: WIÊCEJ ZMIAN U¯YWAJ¥C c
348443
349444
350- ** Polecenie change u¿ywa takich samych obiektów jak delete. **
445+ ** Polecenie change u¿ywa takich samych ruchów jak delete. **
351446
352- 1. Polecenie change dzia³a tak samo jak delete. Format wygl¹da tak:
447+ 1. Operator change dzia³a tak samo jak delete. Format wygl¹da tak:
353448
354- [liczba] c obiekt LUB c [liczba] obiekt
449+ c [liczba] ruch
355450
356- 2. Obiekty s¹ tak¿e takie same, np.: w (wyraz), $ (koniec linii), etc.
451+ 2. Ruchy s¹ tak¿e takie same, np.: w (wyraz), $ (koniec linii), etc.
357452
358453 3. Przenieœ siê do pierwszej linii poni¿ej oznaczonej --->
359454
@@ -364,7 +459,7 @@
364459 ---> Koniec tego wiersza musi byæ poprawiony aby wygl¹dal tak jak drugi.
365460 ---> Koniec tego wiersza musi byæ poprawiony u¿ywaj¹c polecenia c$ .
366461
367-
462+UWAGA: Mo¿esz u¿ywaæ <BS> aby poprawiaæ b³êdy w czasie pisania.
368463
369464 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370465 LEKCJA 3. PODSUMOWANIE
@@ -377,69 +472,69 @@
377472 2. By zamieniæ znak pod kursorem wciœnij r a potem znak, który ma zast¹piæ
378473 oryginalny.
379474
380- 3. Polecenie change pozwala Ci na zast¹pienie wyszczególnionego obiektu
381- od kursora do koñca obiektu. Np. wpisz cw aby zamieniæ tekst od
382- kursora do koñca wyrazu, c$ aby zmieniæ tekst do koñca linii.
475+ 3. Operator change pozwala Ci na zast¹pienie od kursora do miejsca gdzie
476+ zabra³by ciê ruch. Np. wpisz ce aby zamieniæ tekst od kursora do koñca
477+ wyrazu, c$ aby zmieniæ tekst do koñca linii.
383478
384479 4. Format do polecenia change (zmieñ):
385480
386- [liczba] c obiekt LUB c [liczba] obiekt
481+ c [liczba] obiekt
387482
388483 Teraz przejdŸ do nastêpnej lekcji.
389484
390485
391486
392487 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393- Lekcja 4.1.: LOKALIZACJA ORAZ STATUS PLIKU
488+ Lekcja 4.1.: PO£O¯ENIE KURSORA ORAZ STATUS PLIKU
394489
395490 ** Naciœnij CTRL-G aby zobaczyæ swoje po³o¿enie w pliku i status
396- pliku. Naciœnij SHIFT-G aby przejœæ do linii w pliku. **
491+ pliku. Naciœnij G aby przejœæ do linii w pliku. **
397492
398493 UWAGA: Przeczytaj ca³¹ lekcjê zanim wykonasz jakieœ polecenia!!!
399494
400- 1. Przytrzymaj klawisz CTRL i wciœnij g . Na dole strony pojawi siê pasek
401- statusu z nazw¹ pliku i numerem linii, w której jesteœ. Zapamiêtaj numer
402- linii dla potrzeb kroku 3.
495+ 1. Przytrzymaj klawisz CTRL i wciœnij g . U¿ywamy notacji CTRL-G.
496+ Na dole strony pojawi siê pasek statusu z nazw¹ pliku i pozycj¹ w pliku.
497+ Zapamiêtaj numer linii dla potrzeb kroku 3.
403498
404- 2. Wciœnij SHIFT-G aby przejœæ na koniec pliku.
499+UWAGA: Mo¿esz te¿ zobaczyæ pozycjê kursora w prawym, dolnym rogu ekranu.
500+ Dzieje siê tak kiedy ustawiona jest opcja 'ruler' (wyjaœnione w lekcji 6.).
405501
406- 3. Wpisz numer linii, w której by³eœ a potem SHIFT-G. To przeniesie Ciê
407- z powrotem do linii, w której by³eœ kiedy wcisn¹³eœ CTRL-G (kiedy
408- wpisujesz numery NIE pojawiaj¹ siê one na ekranie).
502+ 2. Wciœnij G aby przejœæ na koniec pliku.
503+ Wciœnij gg aby przejœæ do pocz¹tku pliku.
504+
505+ 3. Wpisz numer linii, w której by³eœ a potem G . To przeniesie ciê
506+ z powrotem do linii, w której by³eœ kiedy wcisn¹³eœ CTRL-G.
409507
410508 4. Jeœli czujesz siê wystarczaj¹co pewnie, wykonaj kroki 1-3.
411509
412-
413-
414-
415510 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
416511 Lekcja 4.2.: POLECENIE SZUKAJ
417512
418513
419- ** Wpisz / a nastêpnie wyra¿enie aby je znaleŸæ. **
514+ ** Wpisz / a nastêpnie wyra¿enie aby je znaleŸæ. **
420515
421516 1. W trybie Normal wpisz / . Zauwa¿, ¿e znak ten, oraz kursor pojawi¹
422- siê na dole ekranu tak samo jak polecenie : .
517+ siê na dole ekranu tak samo jak polecenie : .
423518
424519 2. Teraz wpisz b³ond<ENTER> . To jest s³owo, którego chcesz szukaæ.
425520
426521 3. By szukaæ tej samej frazy ponownie, po prostu wciœnij n .
427- Aby szukaæ tej frazy w przeciwnym, kierunku wciœnij SHIFT-N.
522+ Aby szukaæ tej frazy w przeciwnym, kierunku wciœnij N .
428523
429524 4. Jeœli chcesz szukaæ frazy do ty³u, u¿yj polecenia ? zamiast / .
430525
431----> Kiedy polecenie 'szukaj' osi¹gnie koniec pliku, przeszukiwanie
432- zacznie siê od pocz¹tku pliku.
526+ 5. Aby wróciæ gdzie by³eœ wciœnij CTRL-O. Powtarzaj by wróciæ dalej. CTRL-I
527+ idzie do przodu.
433528
434- 'b³ond' to nie jest metoda by przeliterowaæ b³¹d; 'b³ond' to b³¹d.
435-
436-
529+UWAGA: 'b³ond' to nie jest metoda by przeliterowaæ b³¹d; 'b³ond' to b³¹d.
530+UWAGA: Kiedy szukanie osi¹gnie koniec pliku bêdzie kontynuowa³o od pocz¹tku
531+o ile opcja 'wrapscan' nie zosta³a przestawiona.
437532
438533 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
439534 Lekcja 4.3.: W POSZUKIWANIU PARUJ¥CYCH NAWIASÓW
440535
441536
442- ** Wpisz % by znaleŸæ pasuj¹cy ),], lub } . **
537+ ** Wpisz % by znaleŸæ pasuj¹cy ),], lub } . **
443538
444539 1. Umieœæ kursor na którymœ z (, [, lub { w linii poni¿ej oznaczonej --->.
445540
@@ -449,6 +544,8 @@
449544
450545 4. Wciœnij % aby przenieœæ kursor z powrotem do paruj¹cego nawiasu.
451546
547+ 5. Przenieœ kursor do innego (,),[,],{ lub } i zobacz co robi % .
548+
452549 ---> To ( jest linia testowa z (, [, ] i {, } . ))
453550
454551 UWAGA: Ta funkcja jest bardzo u¿yteczna w debuggowaniu programu
@@ -456,10 +553,8 @@
456553
457554
458555
459-
460-
461556 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
462- Lekcja 4.4.: INNA METODA POPRAWIANIA B£ÊDÓW
557+ Lekcja 4.4.: POLECENIE SUBSTITUTE (zamiana)
463558
464559
465560 ** Wpisz :s/stary/nowy/g aby zamieniæ 'stary' na 'nowy'. **
@@ -469,41 +564,41 @@
469564 2. Wpisz :s/czaas/czas<ENTER> . Zauwa¿, ¿e to polecenie zmienia
470565 tylko pierwsze wyst¹pienie 'czaas' w linii.
471566
472- 3. Teraz wpisz :s/czaas/czas/g oznacza zamianê (substytucjê)
473- globalnie w ca³ej linii. Zmienia wszystkie wyst¹pienia w linii.
567+ 3. Teraz wpisz :s/czaas/czas/g . Dodane g oznacza zamianê (substytucjê)
568+ globalnie w ca³ej linii. Zmienia wszystkie wyst¹pienia 'czaas' w linii.
474569
475570 ---> Najlepszy czaas na zobaczenie naj³adniejszych kwiatów to czaas wiosny.
476571
477572 4. Aby zmieniæ wszystkie wyst¹pienia ³añcucha znaków pomiêdzy dwoma liniami,
478- wpisz: :#,#s/stare/nowe/g gdzie #,# s¹ numerami dwóch linii.
479- Wpisz :%s/stare/nowe/g by zmieniæ wszystkie wyst¹pienia w ca³ym pliku.
480-
481-
482-
573+ wpisz: :#,#s/stare/nowe/g gdzie #,# s¹ numerami linii ograniczaj¹cych
574+ region gdzie ma nast¹piæ zamiana.
575+ wpisz :%s/stare/nowe/g by zmieniæ wszystkie wyst¹pienia w ca³ym pliku.
576+ wpisz :%s/stare/nowe/gc by zmieniæ wszystkie wyst¹pienia w ca³ym
577+ pliku, prosz¹c o potwierdzenie za ka¿dym razem
483578
484579 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485580 LEKCJA 4. PODSUMOWANIE
486581
487-
488- 1. CTRL-G poka¿e Twoj¹ pozycjê w pliku i status pliku. SHIFT-G przenosi
489- Ciê do koñca pliku. SHIFT-G poprzedzony liczb¹ przenosi Ciê do linii
490- o tym numerze.
582+ 1. CTRL-G poka¿e Twoj¹ pozycjê w pliku i status pliku. SHIFT-G przenosi
583+ ciê do koñca pliku.
584+ G przenosi do koñca pliku.
585+ liczba G przenosi do linii [liczba].
586+ gg przenosi do pierwszej linii.
491587
492588 2. Wpisanie / a nastêpnie ³añcucha znaków szuka ³añcucha DO PRZODU.
493589 Wpisanie ? a nastêpnie ³añcucha znaków szuka ³añcucha DO TY£U.
494590 Po wyszukiwaniu wciœnij n by znaleŸæ nastêpne wyst¹pienie szukanej
495- frazy tym samym kierunku lub Shift-N by szukaæ w kierunku przeciwnym.
591+ frazy tym samym kierunku lub N by szukaæ w kierunku przeciwnym.
592+ CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.
496593
497594 3. Wpisanie % gdy kursor znajduje siê na (,),[,],{, lub } lokalizuje
498595 paruj¹cy znak.
499596
500- 4. By zamieniæ pierwszy stary na nowy w linii wpisz :s/stary/nowy
501- By zamieniæ wszystkie stary na nowy w linii wpisz :s/stary/nowy/g
502- By zamieniæ frazy pomiêdzy dwoma liniami # wpisz :#,#s/stary/nowy/g
503- By zamieniæ wszystkie wyst¹pienia w pliku wpisz :%s/stary/nowy/g
597+ 4. By zamieniæ pierwszy stary na nowy w linii wpisz :s/stary/nowy
598+ By zamieniæ wszystkie stary na nowy w linii wpisz :s/stary/nowy/g
599+ By zamieniæ frazy pomiêdzy dwoma liniami # wpisz :#,#s/stary/nowy/g
600+ By zamieniæ wszystkie wyst¹pienia w pliku wpisz :%s/stary/nowy/g
504601 By Vim prosi³ Ciê o potwierdzienie dodaj 'c' :%s/stary/nowy/gc
505-
506-
507602 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
508603 Lekcja 5.1.: JAK WYKONAÆ POLECENIA ZEWNÊTRZNE
509604
@@ -518,11 +613,11 @@
518613
519614 3. Jako przyk³ad wpisz ls za ! a nastêpnie wciœnij <ENTER>. To polecenie
520615 poka¿e spis plików w Twoim katalogu, tak jakbyœ by³ przy znaku zachêty
521- pow³oki. Mo¿esz te¿ u¿yæ :!dir jeœli ls nie dzia³a.
616+ pow³oki. Mo¿esz te¿ u¿yæ :!dir jeœli ls nie dzia³a.
522617
523----> Uwaga: W ten sposób mo¿na wykonaæ wszystkie polecenia pow³oki.
524----> Uwaga: Wszystkie polecenia : musz¹ byæ zakoñczone <ENTER>.
525-
618+Uwaga: W ten sposób mo¿na wykonaæ wszystkie polecenia pow³oki.
619+Uwaga: Wszystkie polecenia : musz¹ byæ zakoñczone <ENTER>.
620+ Od tego momentu nie zawsze bêdziemy o tym wspominaæ.
526621
527622
528623
@@ -531,9 +626,9 @@
531626 Lekcja 5.2.: WIÊCEJ O ZAPISYWANIU PLIKÓW
532627
533628
534- ** By zachowaæ zmiany w pliku wpisz :w NAZWA_PLIKU . **
629+ ** By zachowaæ zmiany w tekœci wpisz :w NAZWA_PLIKU . **
535630
536- 1. Wpisz :!dir lub :!ls by zobaczyæ spis plików w katalogu.
631+ 1. Wpisz :!dir lub :!ls by zobaczyæ spis plików w katalogu.
537632 Ju¿ wiesz, ¿e musisz wcisn¹æ <ENTER> po tym.
538633
539634 2. Wybierz nazwê pliku jaka jeszcze nie istnieje, np. TEST.
@@ -541,63 +636,63 @@
541636 3. Teraz wpisz: :w TEST (gdzie TEST jest nazw¹ pliku jak¹ wybra³eœ.)
542637
543638 4. To polecenie zapamiêta ca³y plik (Vim Tutor) pod nazw¹ TEST.
544- By to sprawdziæ wpisz :!dir , ¿eby znowu zobaczyæ listê plików.
639+ By to sprawdziæ wpisz :!dir lub :!ls , ¿eby znowu zobaczyæ listê plików.
545640
546----> Zauwa¿, ¿e gdybyœ teraz wyszed³ z Vim-a, a nastêpnie wszed³ ponownie
547- komend¹ vim TEST , plik by³by dok³adn¹ kopi¹ tutoriala kiedy go
548- zapisywa³eœ.
641+Uwaga: Zauwa¿, ¿e gdybyœ teraz wyszed³ z Vim-a, a nastêpnie wszed³ ponownie
642+ komend¹ vim TEST , plik by³by dok³adn¹ kopi¹ tutoriala kiedy go
643+ zapisywa³eœ.
549644
550645 5. Teraz usuñ plik wpisuj¹c: :!rm TEST
551646
552647
553648 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554- Lekcja 5.3.: SELEKTYWNE POLECENIE WRITE (zapisz)
649+ Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
555650
556651
557- ** By zachowaæ czêœæ pliku wpisz :#,# w NAZWA_PLIKU **
558-
559- 1. Jeszcze raz wpisz :!dir lub :!ls by uzyskaæ listê plików
560- w katalogu i wybierz odpowiedni¹ nazwê tak¹ jak TEST.
561-
562- 2. Przenieœ kursor na góre tej strony i wciœnij CTRL-G by uzyskaæ
563- numer linii. ZAPAMIÊTAJ TÊ LICZBÊ!
652+ ** By zachowaæ czêœæ pliku wpisz v ruch :w NAZWA_PLIKU **
564653
565- 3. Teraz przenieœ siê na dó³ strony i wpisz CTRL-G znowu. ZAPAMIÊTAJ
566- NUMER TAK¯E TEJ LINII!
654+ 1. Przenieœ kursor do tego wiersza.
567655
568- 4. By zachowaæ JEDYNIE czêœæ pliku wpisz :#,# w TEST gdzie #,# to
569- dwie liczby jakie zapamiêta³eœ (góra, dó³ ekranu), a TEST to nazwa
570- Twojego pliku.
656+ 2. Wciœnij v i przenieœ kursor do punktu 5. Zauwa¿, ¿e tekst zosta³
657+ podœwietlony.
571658
572- 5. Ponownie sprawdŸ czy ten plik tam jest ( :!dir ), ale NIE usuwaj go.
659+ 3. Wciœnij znak : . Na dole ekranu pojawi siê :'<,'> .
573660
661+ 4. Wpisz w TEST , gdzie TEST to nazwa pliku, który jeszcze nie istnieje.
662+ Upewnij siê, ¿e widzisz :'<,'>w TEST zanim wciœniesz Enter.
574663
664+ 5. Vim zapisze wybrane linie do pliku TEST. U¿yj :!dir lub :!ls , ¿eby to
665+ zobaczyæ. Jeszcze go nie usuwaj! U¿yjemy go w nastêpnej lekcji.
666+
667+UWAGA: Wciœniêcie v zaczyna tryb Wizualny. Mo¿esz poruszaæ kursorem by
668+ zmieniæ rozmiary zaznaczenia. Mo¿esz te¿ u¿yæ operatora by zrobiæ coœ
669+ z tekstem. Na przyk³ad d usuwa tekst.
575670
576671 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
577672 Lekcja 5.4.: WSTAWIANIE I £¥CZENIE PLIKÓW
578673
579674
580- ** By wstawiæ zawartoœæ pliku wpisz :r NAZWA_PLIKU **
675+ ** By wstawiæ zawartoœæ pliku wpisz :r NAZWA_PLIKU **
581676
582- 1. Wpisz :!dir by siê upewniæ, ze Twój plik TEST zosta³ poprawnie
583- zapamiêtany.
677+ 1. Umieœæ kursor tu¿ powy¿ej tej linii.
584678
585- 2. Umieœæ kursor na górze strony.
586-
587-UWAGA: Po wykonaniu kroku 3. ponownie zobaczysz Lekcjê 5.3. Potem przejdŸ
679+UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejdŸ
588680 do DO£U by zobaczyæ ponownie tê lekcjê.
589681
590- 3. Teraz wczytaj plik TEST u¿ywaj¹c polecenia :r TEST , gdzie TEST
682+ 2. Teraz wczytaj plik TEST u¿ywaj¹c polecenia :r TEST , gdzie TEST
591683 jest nazw¹ pliku.
684+ Wczytany plik jest umieszczony poni¿ej linii z kursorem.
592685
593-UWAGA: Plik, który wczytujesz jest wstawiany tam gdzie by³ kursor.
686+ 3. By sprawdziæ czy plik zosta³ wczytany cofnij kursor i zobacz, ¿e
687+ teraz s¹ dwie kopie Lekcji 5.3., orygina³ i kopia z pliku.
594688
595- 4. By sprawdziæ czy plik zosta³ wczytany cofnij kursor i zobacz, ¿e
596- teraz s¹ dwie kopie Lekcji 5.3., orygina³ i kopia z pliku.
689+UWAGA: Mo¿esz te¿ wczytaæ wyjœcie zewnêtrznego polecenia. Na przyk³ad
690+ :r !ls wczytuje wyjœcie polecenia ls i umieszcza je pod kursorem.
691+
597692
598693
599694 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
600- LEKCJA 5. PODSUMOWANIE
695+ LEKCJA 5. PODSUMOWANIE
601696
602697
603698 1. :!polecenie wykonuje polecenie zewnêtrzne.
@@ -610,12 +705,12 @@
610705
611706 2. :w NAZWA_PLIKU zapisuje obecny plik Vim-a na dysk z nazw¹ NAZWA_PLIKU.
612707
613- 3. :#,#w NAZWA_PLIKU zapisuje linie od # do # w pliku NAZWA_PLIKU.
708+ 3. v ruch :w NAZWA_PLIKU zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.
614709
615710 4. :r NAZWA_PLIKU wczytuje z dysku plik NAZWA_PLIKU i wstawia go do
616- bie¿¹cego pliku po kursorze.
711+ bie¿¹cego pliku poni¿ej kursora.
617712
618-
713+ 5. :r !dir wczytuje wyjœcie polecenia dir i umieszcza je poni¿ej kursora.
619714
620715
621716
@@ -623,7 +718,7 @@
623718 Lekcja 6.1.: POLECENIE OPEN (otwórz)
624719
625720
626- ** Wpisz o by otworzyæ liniê poni¿ej kursora i przenieœæ siê do
721+ ** Wpisz o by otworzyæ liniê poni¿ej kursora i przenieœæ siê do
627722 trybu Insert (wprowadzanie). **
628723
629724 1. Przenieœ kursor do linii poni¿ej oznaczonej --->.
@@ -631,16 +726,16 @@
631726 2. Wpisz o (ma³e) by otworzyæ liniê PONI¯EJ kursora i przenieœæ siê
632727 do trybu Insert (wprowadzanie).
633728
634- 3. Teraz przepisz liniê oznaczon¹ ---> i wciœnij <ESC> by wyjœæ
635- z trybu Insert (wprowadzanie).
729+ 3. Wpisz trochê tekstu i wciœnij <ESC> by wyjœæ z trybu Insert (wprowadzanie).
636730
637----> Po wciœniêciu o kursor znajdzie siê w otwartej linii w trybie
638- Insert (wprowadzanie).
731+---> Po wciœniêciu o kursor znajdzie siê w otwartej linii w trybie Insert.
639732
640733 4. By otworzyæ liniê POWY¯EJ kursora wciœnij wielkie O zamiast ma³ego
641734 o . Wypróbuj to na linii poni¿ej.
642735
643- Otwórz liniê powy¿ej wciskaj¹c SHIFT-O gdy kursor bêdzie na tej linii.
736+---> Otwórz liniê powy¿ej wciskaj¹c SHIFT-O gdy kursor bêdzie na tej linii.
737+
738+
644739
645740 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646741 Lekcja 6.2.: POLECENIE APPEND (dodaj)
@@ -648,137 +743,203 @@
648743
649744 ** Wpisz a by dodaæ tekst ZA kursorem. **
650745
651- 1. Przenieœ kursor do koñca pierwszej linii poni¿ej oznaczonej --->
652- Zrób to wciskaj¹c $ w trybie Normal.
653-
654- 2. Wpisz a (ma³e) aby dodaæ tekst ZA znakiem pod kursorem.
655- Wielkie A dodaje tekst na koñcu linii.
746+ 1. Przenieœ kursor do pocz¹tku pierwszej linii poni¿ej oznaczonej --->
656747
657-Uwaga: To oszczêdza wpisania: ostatni znak ( $ ), i , tekst do dodania,
658- <ESC>, strza³ka w prawo i ostatecznie x , tylko po to by dodaæ
659- tekst na koñcu linii.
748+ 2. Wciskaj e dopóki kursor nie bêdzie na koñcu li .
660749
661- 3. Teraz dokoñcz pierwsz¹ liniê. Zauwa¿ tak¿e, ¿e append (dodaj)
662- dzia³a tak samo jak tryb Insert (wprowadzanie) z wyj¹tkiem tego gdzie
663- tekst jest wstawiany.
750+ 3. Wpisz a (ma³e) aby dodaæ tekst ZA znakiem pod kursorem.
664751
665----> Ta linia pozwoli Ci æwiczyæ
752+ 4. Dokoñcz wyraz tak jak w linii poni¿ej. Wciœnij <ESC> aby opuœciæ tryb
753+ Insert.
754+
755+ 5. U¿yj e by przejœæ do kolejnego niedokoñczonego wyraze i powtarzaj kroki
756+ 3. i 4.
757+
758+---> Ta li poz Ci æwi dodaw teks do koñ lin
666759 ---> Ta linia pozwoli Ci æwiczyæ dodawanie tekstu do koñca linii.
667760
761+Uwaga: a , i and A prowadz¹ do trybu Insert, jedyn¹ ró¿nic¹ jest miejsce
762+ gdzie nowe znaki bêd¹ dodawane.
668763 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
669764 Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
670765
671766
672- ** Wpisz wielkie R by zamieniæ wiêcej ni¿ jeden znak. **
673-
674- 1. Przenieœ kursor do pierwszej linii poni¿ej oznaczonej --->.
675-
676- 2. Umieœæ kursor na pocz¹tku pierwszego wyrazu, który rózni siê od
677- drugiej linii oznaczonej ---> (wyraz 'ostatni').
767+ ** Wpisz wielkie R by zamieniæ wiêcej ni¿ jeden znak. **
678768
679- 3. Teraz wpisz R i zamieñ resztê tekstu w pierwszej linii przez
680- nadpisanie nad starym tekstem tak aby pierwsza linia brzmia³a tak samo
681- jak druga.
769+ 1. Przenieœ kursor do pierwszej linii poni¿ej oznaczonej --->. Przenieœ
770+ kursor do pierwszego xxx .
682771
683----> To make the first line the same as the last on this page use the keys.
684----> To make the first line the same as the second, type R and the new text.
772+ 2. Wciœnij R i wpisz numer poni¿ej w drugiej linii, tak, ¿e zast¹pi on
773+ xxx.
685774
686- 4. Zauwa¿, ¿e kiedy wciœniesz <ESC> aby wyjœæ niezmieniony tekst
687- pozostaje.
775+ 3. Wciœnij <ESC> by opuœciæ tryb Replace. Zauwa¿, ¿e reszta linii pozostaje
776+ niezmieniona.
777+
778+ 5. Powtarzaj kroki by wymieniæ wszystkie xxx.
779+
780+---> Dodanie 123 do xxx daje xxx.
781+---> Dodanie 123 do 456 daje 579.
782+
783+UWAGA: Tryb Replace jest jak tryb Insert, ale ka¿dy znak usuwa istniej¹cy
784+ znak.
785+
786+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
787+ Lekcja 6.4.: KOPIOWANIE I WKLEJANIE TEKSTU
688788
689789
790+ ** u¿yj operatora y aby skopiowaæ tekst i p aby go wkleiæ **
791+
792+ 1. PrzejdŸ do linii oznaczonej ---> i umieœc kursor za "a)".
793+
794+ 2. WejdŸ w tryb Visual v i przenieœ kursor na pocz¹tek "pierwszy".
795+
796+ 3. Wciœnij y aby yankowaæ (kopiowaæ) podœwietlony tekst.
797+
798+ 4. Przenieœ kursor do koñca nastêpnej linii: j$
799+
800+ 5. Wciœnij p aby wpakowaæ (paste) tekst. Dodaj: a drugi<ESC> .
801+
802+ 6. U¿yj trybu Visual aby wybraæ " element.", yankuj go y , przejdŸ do koñca
803+ nastêpnej linii j$ i upakuj tam tekst z p .
804+
805+---> a) to jest pierwszy element.
806+ b)
807+Uwaga: mo¿esz u¿yæ y jako operatora; yw kopiuje jeden wyraz.
690808
691809 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
692- Lekcja 6.4.: USTAWIANIE OPCJI
810+ Lekcja 6.5.: USTAWIANIE OPCJI
693811
694812
695813 ** Ustawianie opcji tak by szukaj lub substytucja ignorowa³y wielkoœæ liter **
696814
697- 1. Szukaj 'ignore' wpisuj¹c (w trybie Normal):
698- /ignore
815+ 1. Szukaj 'ignore' wpisuj¹c: /ignore<ENTER>
699816 Powtórz szukanie kilka razy naciskaj¹c klawisz n .
700817
701818 2. Ustaw opcjê 'ic' (Ignore case -- ignoruj wielkoœæ liter) poprzez
702819 wpisanie: :set ic
703820
704- 3. Teraz szukaj 'ignore' ponownie wciskuj¹c: n
705- Powtórz szukanie kilka razy naciskaj¹c klawisz n .
821+ 3. Teraz szukaj 'ignore' ponownie wciskuj¹c: n
822+ Zauwa¿, ¿e Ignore i IGNORE tak¿e s¹ teraz znalezione.
706823
707- 4. Ustaw opcje 'hlsearch' i 'incsearch':
708- :set hls is
824+ 4. Ustaw opcje 'hlsearch' i 'incsearch': :set hls is
709825
710826 5. Teraz wprowadŸ polecenie szukaj ponownie i zobacz co siê zdarzy:
711- /ignore
827+ /ignore<ENTER>
712828
829+ 6. Aby wy³¹czyæ ignorowanie wielkoœci liter: :set noic
713830
831+Uwaga: Aby usun¹æ podœwietlanie dopasowañ wpisz: :nohlsearch
832+Uwaga: Aby ignorowaæ wielkoœæ liter dla jednego wyszukiwania: /ignore\c<ENTER>
714833 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
715834 LEKCJA 6. PODSUMOWANIE
716835
717836
718- 1. Wpisanie o otwiera liniê PONI¯EJ kursora i umieszcza kursor
719- w otwartej linii w trybie Insert (wprowadzanie).
720- Wpisanie wielkiego O otwiera liniê POWY¯EJ linii, w której
721- znajduje siê kursor.
722-
837+ 1. Wpisanie o otwiera liniê PONI¯EJ kursora.
838+ Wpisanie wielkiego O otwiera liniê POWY¯EJ kursora.
723839 2. Wpisz a by wstawiæ tekst ZA znakiem na, którym jest kursor.
724- Wpisanie wielkiego A automatycznie dodaje tekst na koñcu linii.
725-
726- 3. Wpisanie wielkiego R wprowadza w tryb Replace (zamiana) dopóki
840+ Wpisanie wielkiego A dodaje tekst na koñcu linii.
841+ 3. Polecenie e przenosi do koñca wyrazu.
842+ 4. Operato y yankuje (kopiuje) tekst, p pakuje (wkleja, paste) go.
843+ 5. Wpisanie wielkiego R wprowadza w tryb Replace (zamiana) dopóki
727844 nie zostanie wciœniêty <ESC>.
728-
729- 4. Wpisanie ":set xxx" ustawia opcjê "xxx".
730-
731-
845+ 6. Wpisanie ":set xxx" ustawia opcjê "xxx". Nietkóre opcje:
846+ 'ic' 'ignorecase' ignoruj wielkoœæ znaków
847+ 'is' 'incsearch' poka¿ czêœciowe dopasowania
848+ 'hls' 'hlsearch' podœwietl wszystkie dopasowania
849+ Mo¿esz u¿yæ zarówno d³ugiej jak i krótkiej formy.
850+ 7. Dodaj "no" aby wy³¹czyæ opcjê: :set noic
732851
733852
734853
735854
736855
737856 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
738- LEKCJA 7. POLECENIA POMOCY ON-LINE
739-
857+ LEKCJA 7.1. JAK UZYSKAÆ POMOC
740858
741859 ** U¿ycie systemu pomocy on-line **
742860
743861 Vim posiada bardzo dobry system pomocy on-line. By zacz¹æ spróbuj jednej
744862 z trzech mo¿liwoœci:
745-
746863 - wciœnij klawisz <HELP> (jeœli takowy posiadasz)
747864 - wciœnij klawisz <F1> (jeœli takowy posiadasz)
748865 - wpisz :help<ENTER>
749866
750- Wpisz :q<ENTER> by zamkn¹c okno pomocy.
867+ Przeczytaj tekst w oknie pomocy aby dowiedzieæ siê jak dzia³a pomoc.
868+ wpisz CTRL-W CTRL-W aby przeskoczyæ z jednego okna do innego
869+ wpisz :q<ENTER> aby zamkn¹æ okno pomocy.
751870
752871 Mo¿esz te¿ znaleŸæ pomoc na ka¿dy temat podaj¹c argument polecenia ":help".
753872 Spróbuj tych (nie zapomnij wcisn¹æ <ENTER>):
754873
755874 :help w
756- :help c_<T
875+ :help c_CTRL-D
757876 :help insert-index
758877 :help user-manual
759-
760878 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
761- LEKCJA 8. TWORZENIE SKRYPTU STARTOWEGO
879+ LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO
762880
763- ** W³¹czanie mo¿liwoœci Vim-a **
881+ ** W³¹cz mo¿liwoœci Vim-a **
764882
765883 Vim ma o wiele wiêcej mo¿liwoœci ni¿ Vi, ale wiêkszoœæ z nich jest domyœlnie
766884 wy³¹czona. Jeœli chcesz w³¹czyæ te mo¿liwoœci na starcie musisz utworzyæ
767885 plik "vimrc".
768886
769887 1. Pocz¹tek edycji pliku "vimrc" zale¿y od Twojego systemu:
770- :edit ~/.vimrc dla Unixa
771- :edit $VIM/_vimrc dla MS-Windows
772-
888+ :edit ~/.vimrc dla Uniksa
889+ :edit $VIM/_vimrc dla MS-Windows
773890 2. Teraz wczytaj przyk³adowy plik "vimrc":
774891 :read $VIMRUNTIME/vimrc_example.vim
775-
776892 3. Zapisz plik:
777- :write
893+ :w
778894
779895 Nastêpnym razem gdy zaczniesz pracê w Vimie bêdzie on u¿ywaæ podœwietlania
780896 sk³adni. Mo¿esz dodaæ wszystkie swoje ulubione ustawienia do tego pliku
781897 "vimrc".
898+ Aby uzyskaæ wiêcej informacji wpisz :help vimrc-intro
899+
900+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
901+ Lekcja 7.3.: UZUPE£NIANIE
902+
903+
904+ ** Uzupe³nianie linii poleceñ z CTRL-D i <TAB> **
905+
906+ 1. Upewnij siê, ¿e Vim nie jest w trybie kompatybilnoœci: :set nocp
907+
908+ 2. Zerknij jakie pliki s¹ w bie¿¹cm katalogu: :!ls lub :!dir
909+
910+ 3. Wpisz pocz¹tek polecenia: :e
911+
912+ 4. Wciœnij CTRL-D i Vim poka¿e listê poleceñ jakie zaczynaj¹ siê na "e".
913+
914+ 5. Wciœnij <TAB> i Vim uzupe³ni polecenie do ":edit".
915+
916+ 6. Dodaj spacjê i zacznij wpisywaæ nazwê istniej¹cego pliku: :edit FIL
917+
918+ 7. Wciœnij <TAB>. Vim uzupe³ni nazwê (jeœli jest niepowtarzalna).
919+
920+UWAGA: Uzupe³nianie dzia³a dla wielu poleceñ. Spróbuj wcisn¹æ CTRL-D i <TAB>.
921+ U¿yteczne zw³aszcza przy :help .
922+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
923+ Lekcja 7. PODSUMOWANIE
924+
925+
926+ 1. Wpisz :help lub wciœnij <F1> lub <Help> aby otworzyæ okno pomocy.
927+
928+ 2. Wpisz :help cmd aby uzyskaæ pomoc o cmd .
929+
930+ 3. Wpisz CTRL-W CTRL-W aby przeskoczyæ do innego okna.
931+
932+ 4. Wpisz :q aby zamkn¹æ okno pomocy.
933+
934+ 5. Utwórz plik startowy vimrc aby zachowaæ wybrane ustawienia.
935+
936+ 6. Po poleceniu : , wciœnij CTRL-D aby zobaczyæ mo¿liwe uzupe³nienia.
937+ Wciœnij <TAB> aby u¿yæ jednego z nich.
938+
939+
940+
941+
942+
782943
783944 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
784945
@@ -826,5 +987,5 @@
826987 Przet³umaczone przez Miko³aja Machowskiego,
827988 Sierpieñ 2001,
828989 rev. Marzec 2002
990+ 2nd rev. Wrzesieñ 2004
829991 Wszelkie uwagi proszê kierowaæ na: mikmach@wp.pl
830-
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/tutor/tutor.pl.utf-8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/tutor/tutor.pl.utf-8 Mon Sep 13 20:26:32 2004 +0000
@@ -0,0 +1,991 @@
1+===============================================================================
2+= W i t a j w t u t o r i a l u V I M - a - Wersja 1.7. =
3+===============================================================================
4+
5+ Vim to potężny edytor, który posiada wiele poleceń, zbyt dużo by
6+ wyjaśnić je wszystkie w tym tutorialu. Ten przewodnik ma nauczyć
7+ Cię posługiwać się wystarczająco wieloma komendami byś mógł łatwo
8+ używać Vim-a jako edytora ogólnego przeznaczenia.
9+
10+ Czas potrzebny na ukończenie tutoriala to 25 do 30 minut i zależy
11+ od tego jak wiele czasu spędzisz na eksperymentowaniu.
12+
13+ UWAGA:
14+ Polecenia wykonywane w czasie lekcji zmodyfikują tekst. Zrób
15+ wcześniej kopię tego pliku do ćwiczeń (jeśli zacząłeś komendą
16+ "vimtutor" to już pracujesz na kopii).
17+
18+ Ważne jest, byś pamiętał, że przewodnik ten został zaprojektowany do
19+ nauki poprzez ćwiczenia. To oznacza, że musisz wykonywać polecenia
20+ by nauczyć się ich prawidłowo. Jeśli będziesz jedynie czytał tekst
21+ szybko zapomnisz wiele poleceń!
22+
23+ Teraz upewnij się, że nie masz wciśniętego CapsLocka i wciskaj j
24+ tak długo dopóki Lekcja 1.1. nie wypełni całkowicie ekranu.
25+
26+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27+ Lekcja 1.1.: PORUSZANIE SIĘ KURSOREM
28+
29+ ** By wykonać ruch kursorem, wciśnij h, j, k, l jak pokazano. **
30+
31+ ^
32+ k Wskazówka: h jest po lewej
33+ < h l > l jest po prawej
34+ j j wygląda jak strzałka w dół
35+ v
36+ 1. Poruszaj kursorem dopóki nie będziesz pewien, że pamiętasz polecenia.
37+
38+ 2. Trzymaj j tak długo aż będzie się powtarzał.
39+ Teraz wiesz jak dojść do następnej lekcji.
40+
41+ 3. Używając strzałki w dół przejdź do następnej lekcji.
42+
43+Uwaga: Jeśli nie jesteś pewien czegoś co wpisałeś, wciśnij <ESC> by wrócić do
44+ trybu Normal. Wtedy powtórz polecenie.
45+
46+Uwaga: Klawisze kursora także powinny działać, ale używając hjkl będziesz
47+ w stanie poruszać się o wiele szybciej jak się tylko przyzwyczaisz.
48+ Naprawdę!
49+
50+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51+ Lekcja 1.2.: WYCHODZENIE Z VIM-a
52+
53+ !! UWAGA: Przed wykonaniem jakiegokolwiek polecenia przeczytaj całą lekcję.!!
54+
55+ 1. Wciśnij <ESC> (aby upewnić się, że jesteś w trybie Normal).
56+ 2. Wpisz: :q!<ENTER>.
57+ To spowoduje wyjście z edytora PORZUCAJĄC wszelkie zmiany jakie
58+ zdążyłeś zrobić. Jeśli chcesz zapamiętać zmiany i wyjść
59+ wpisz: :wq<ENTER>
60+
61+ 3. Kiedy widzisz znak zachęty powłoki wpisz komendę, żeby wrócić
62+ do tutoriala. Czyli: vimtutor<ENTER>
63+
64+ 4. Jeśli chcesz zapamiętać polecenia, wykonaj kroki 1. do 3. aby
65+ wyjść i wrócić do edytora.
66+
67+UWAGA: :q!<ENTER> porzuca wszelkie zmiany jakie zrobiłeś. W następnych
68+lekcjach dowiesz się jak je zapamiętywać.
69+
70+ 5. Przenieś kursor do lekcji 1.3.
71+
72+
73+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74+ Lekcja 1.3.: EDYCJA TEKSTU - KASOWANIE
75+
76+ ** Wciśnij x aby usunąć znak pod kursorem. **
77+
78+ 1. Przenieś kursor do linii poniżej oznaczonej --->.
79+
80+ 2. By poprawić błędy, naprowadź kursor na znak do usunięcia.
81+
82+ 3. Wciśnij x aby usunąć niechciany znak.
83+
84+ 4. Powtarzaj kroki 2. do 4. dopóki zdanie nie jest poprawne.
85+
86+---> Kkrowa prrzeskoczyła prrzez ksiiężycc.
87+
88+ 5. Teraz kiedy zdanie jest poprawione przejdź do Lekcji 1.4.
89+
90+UWAGA: Ucz się przez ćwiczenie, nie wkuwanie.
91+
92+
93+
94+
95+
96+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
97+ Lekcja 1.4.: EDYCJA TEKSTU - INSERT (wprowadzanie)
98+
99+
100+ ** Wciśnij i aby wstawić tekst. **
101+
102+ 1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
103+
104+ 2. Aby poprawić pierwszy wiersz, ustaw kursor na pierwszym znaku PO tym
105+ gdzie tekst ma być wstawiony.
106+
107+ 3. Wciśnij i a następnie wpisz konieczne poprawki.
108+
109+ 4. Po poprawieniu błędu wciśnij <ESC> by wrócić do trybu Normal.
110+ Powtarzaj kroki 2. do 4. aby poprawić całe zdanie.
111+
112+---> W tej brkje trochę .
113+---> W tej linii brakuje trochę tekstu.
114+
115+ 5. Kiedy czujesz się swobodnie wstawiając tekst przejdź do
116+ podsumowania poniżej.
117+
118+
119+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
120+ Lekcja 1.5.: EDYCJA TEKSTU - APPENDING (dodawanie)
121+
122+
123+ ** Wciśnij A by dodać tekst. **
124+
125+ 1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
126+ Nie ma znaczenia, który to będzie znak.
127+
128+ 2. Wciśnij A i wpisz odpowiednie dodatki.
129+
130+ 3. Kiedy tekst został dodany, wciśnij <ESC> i wróć do trybu Normalnego.
131+
132+ 4. Przenieś kursor do drugiej linii oznaczonej ---> i powtórz kroki 2 i 3
133+ aby poprawić zdanie.
134+
135+---> Brakuje tu tro
136+ Brakuje tu trochę tekstu.
137+---> Tu też trochę bra
138+ Tu też trochę brakuje.
139+
140+ 5. Kiedy już utrwaliłeś ćwiczenie przejdź do lekcji 1.6.
141+
142+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143+ Lekcja 1.6.: EDYCJA PLIKU
144+
145+
146+ ** Użyj :wq aby zapisać plik i wyjść. **
147+
148+ !! UWAGA: zanim wykonasz jakiekolwiek polecenia przeczyaj całą lekcję !!
149+
150+ 1. Zakończ tutorial tak jak w lekcji 1.2.: :q!
151+
152+ 2. W powłoce wydaj polecenie: vim tutor<ENTER>
153+ "vim" jest poleceniem uruchamiającym edytor Vimm. 'tutor' to nazwa pliku
154+ jaki chcesz edytować. Użyj pliku jaki może zostać zmieniony.
155+
156+ 3. Dodaj i usuń tekst tak jak się nauczyłeś w poprzednich lekcjach.
157+
158+ 4. Zapisz plik ze zmianami w opuść Vima: :wq<ENTER>
159+
160+ 5. Uruchom ponownie vimtutor i przejdź do podsumowania lekcji.
161+
162+ 6. Po przeczytaniu wszystkich kroków i zrozumieniu ich: wykonaj je.
163+
164+
165+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
166+ LEKCJA 1. PODSUMOWANIE
167+
168+ 1. Poruszasz kursorem używając "strzałek" i klawiszy hjkl .
169+ h (w lewo) j (w dół) k (do góry) l (w prawo)
170+
171+ 2. By wejść do Vim-a (z powłoki) wpisz:
172+ vim NAZWA_PLIKU<ENTER>
173+
174+ 3. By wyjść z Vim-a wpisz:
175+ <ESC> :q!<ENTER> by usunąc wszystkie zmiany.
176+ LUB: <ESC> :wq<ENTER> by zmiany zachować.
177+
178+ 4. By usunąć znak pod kursorem wciśnij: x
179+
180+ 5. By wstawić tekst przed kursorem lub dodać:
181+ i wpisz tekst <ESC> wstawi przed kursorem
182+ A wpisz tekst <ESC> doda na końcu linii
183+
184+UWAGA: Wciśnięcie <ESC> przeniesie Cię z powrotem do trybu Normal
185+lub odwoła niechciane lub częściowo wprowadzone polecenia.
186+
187+Teraz możemy kontynuować i przejść do Lekcji 2.
188+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
189+ Lekcja 2.1.: POLECENIE DELETE (usuwanie)
190+
191+
192+ ** Wpisz dw by usunąc wyraz. **
193+
194+ 1. Wciśnij <ESC> by upewnić się, że jesteś w trybie Normal.
195+
196+ 2. Przenieś kursor do linii poniżej oznaczonej --->.
197+
198+ 3. Przesuń kursor na początek wyrazu, które chcesz usunąć.
199+
200+ 4. Wpisz dw by usunąc wyraz.
201+
202+ UWAGA: Litera d pojawi się na dole ekranu. Vim czeka na wpisanie w .
203+ Jeśli zobaczysz inny znak wpisałeś coś źle, wciśnij <ESC> i zacznij
204+ od początku.
205+
206+---> Jest tu parę papier wyrazów, które kamień nie należą do nożyce tego zdania.
207+
208+ 5. Powtarzaj kroki 3. i 4. dopóki zdanie nie będzie poprawne, potem
209+ przejdź do Lekcji 2.2.
210+
211+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
212+ Lekcja 2.2.: WIĘCEJ POLECEŃ USUWAJĄCYCH
213+
214+
215+ ** Wpisz d$ aby usunąć tekst do końca linii. **
216+
217+ 1. Wciśnij <ESC> aby się upewnić, że jesteś w trybie Normal.
218+
219+ 2. Przenieś kursor do linii poniżej oznaczonej --->.
220+
221+ 3. Przenieś kursor do końca poprawnego zdania (PO pierwszej . ).
222+
223+ 4. Wpisz d$ aby usunąć resztę linii.
224+
225+---> Ktoś wpisał koniec tego zdania dwukrotnie. zdania dwukrotnie.
226+
227+
228+ 5. Przejdź do Lekcji 2.3. by zrozumieć co się stało.
229+
230+
231+
232+
233+
234+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235+ Lekcja 2.3.: O OPERATORACH I RUCHACH
236+
237+
238+ Wiele poleceń zmieniających tekst są złożone z operatora i ruchu.
239+ Format dla polecenia usuwającego z operatorem d jest taki:
240+
241+ d ruch
242+
243+ Gdzie:
244+ d - operator usuwania.
245+ ruch - na czym polecenie będzie wykonywane (lista poniżej).
246+
247+ Krótka lista ruchów:
248+ w - do początku następnego wyrazu WYŁĄCZAJĄC pierwszy znak.
249+ e - do końca bieżącego wyrazu, WŁĄCZAJĄC ostatni znak.
250+ $ - do końca linii, WŁĄCZAJĄC ostatni znak.
251+
252+W ten sposób wpisanie de usunie znaki od kursora do końca wyrazu.
253+
254+UWAGA: Wpisanie tylko ruchu w trybie Normal bez operatora przeniesie kursor
255+ tak jak to określono.
256+
257+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
258+ Lekcja 2.4.: UŻYCIE MNOŻNIKA DLA RUCHU
259+
260+
261+ ** Wpisanie liczby przed ruchem powtarza ruch odpowiednią ilość razy. **
262+
263+ 1. Przenieś kursor na początek linii poniżej zaznaczonej --->.
264+
265+ 2. Wpisz 2w aby przenieść kursor o dwa wyrazy do przodu.
266+
267+ 3. Wpisz 3e aby przenieść kursor do końca trzeciego wyrazu w przód.
268+
269+ 4. Wpisz 0 (zero) aby przenieść kursor do początku linii.
270+
271+ 5. Powtórz kroki 2. i 3. z innymi liczbami.
272+
273+
274+ ---> To jest zwykły wiersz z wyrazami po których możesz się poruszać.
275+
276+ 6. Przejdź do lekcji 2.5.
277+
278+
279+
280+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
281+ Lekcja 2.5.: UŻYCIE MNOŻNIKA BY WIĘCEJ USUNĄĆ
282+
283+
284+ ** Wpisanie liczby z operatorem powtarza go odpowiednią ilość razy. **
285+
286+ W wyżej wspomnianej kombinacji operatora usuwania i ruchu podaj mnożnik
287+ przed ruchem by więcej usunąć:
288+ d liczba ruch
289+
290+ 1. Przenieś kursor do pierwszego wyrazu KAPITALIKAMI w linii zaznaczonej --->.
291+
292+ 2. Wpisz 2dw aby usunąć dwa wyrazy KAPITALIKAMI.
293+
294+ 3. Powtarzaj kroki 1. i 2. z innymi mnożnikami aby usunąć kolejne wyrazy
295+ KAPITALIKAMI jednym poleceniem
296+
297+---> ta ASD WE linia QWE ASDF ZXCV FG wyrazów została ERT FGH CF oczyszczona.
298+
299+UWAGA: Mnożnik pomiędzy operatorem d i ruchem działa podobnie do ruchu bez
300+ operatora.
301+
302+
303+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304+ Lekcja 2.6.: OPEROWANIE NA LINIACH
305+
306+
307+ ** Wpisz dd aby usunąć całą linię. **
308+
309+ Z powodu częstości usuwania całych linii, projektanci VI zdecydowali, że
310+ będzie łatwiej wpisać dwa razy d aby usunąć linię.
311+
312+ 1. Przenieś kursor do zdania poniżej.
313+ 2. Wpisz dd aby usunąc wiersz.
314+ 3. Teraz przenieś się do czwartego wiersza.
315+ 4. Wpisz 2dd aby usunąc dwia wiersze.
316+
317+---> 1) Róże są czerwone,
318+---> 2) Błoto jest fajne,
319+---> 3) Fiołki są niebieskie,
320+---> 4) Mam samochód,
321+---> 5) Zegar podaje czas,
322+---> 6) Cukier jest słodki,
323+---> 7) I ty też.
324+
325+
326+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
327+ Lekcja 2.7.: POLECENIE UNDO (cofnij)
328+
329+
330+ ** Wciśnij u aby cofnąć skutki ostatniego polecenia.
331+ U zaś, by cofnąć skutki dla całej linii. **
332+
333+ 1. Przenieś kursor do zdania poniżej oznaczonego ---> i umieść go na
334+ pierwszym błędzie.
335+ 2. Wpisz x aby usunąć pierwszy niechciany znak.
336+ 3. Teraz wciśnij u aby cofnąć skutki ostatniego polecenia.
337+ 4. Tym razem popraw wszystkie błędy w linii używając polecenia x .
338+ 5. Teraz wciśnij wielkie U aby przywrócić linię do oryginalnego stanu.
339+ 6. Teraz wciśnij u kilka razy by cofnąć U i poprzednie polecenia.
340+ 7. Teraz wpsz CTRL-R (trzymaj równocześnie wciśnięte klawisze CTRL i R)
341+ kilka razy, by cofnąć cofnięcia.
342+
343+---> Poopraw blędyyy w teej liniii i zaamiień je prrzez coofnij.
344+
345+ 8. To są bardzo pożyteczne polecenia.
346+
347+ Przejdź teraz do podsumowania Lekcji 2.
348+
349+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
350+ LEKCJA 2. PODSUMOWANIE
351+
352+
353+ 1. By usunąć znaki od kursora do następnego wyrazu wpisz: dw
354+ 2. By usunąć znaki od kursora do końca linii wpisz: d$
355+ 3. By usunąć całą linię: dd
356+ 4. By powtórzyć ruch poprzedź go liczbą: 2w
357+ 5. Format polecenia zmiany to:
358+ operator [liczba] ruch
359+ gdzie:
360+ operator - to co trzeba zrobić (np. d dla usuwania)
361+ [liczba] - opcjonalne, ile razy powtórzyć ruch
362+ ruch - przenosi nad tekstem do operowania, takim jak w (wyraz),
363+ $ (do końca linii), etc.
364+
365+ 6. By przejść do początku linii użyj zera: 0
366+ 7. By cofnąć poprzednie polecenie, wpisz: u (małe u)
367+ By cofnąć wszystkie zmiany w linii wpisz: U (wielkie U)
368+ By cofnąć cofnięcia wpisz: CTRL-R
369+
370+
371+
372+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
373+ Lekcja 3.1.: POLECENIE PUT (wstaw)
374+
375+
376+ ** Wpisz p by wstawić ostatnie usunięcia za kursorem. **
377+
378+ 1. Przenieś kursor do pierwszej linii ---> poniżej.
379+
380+ 2. Wpisz dd aby usunąć linię i przechować ją w rejestrze Vim-a.
381+
382+ 3. Przenieś kursor do linii c), POWYŻEJ tej gdzie usunięta linia powinna
383+ się znajdować.
384+
385+ 4. Wciśnij p by wstawić linię poniżej kursora.
386+
387+ 5. Powtaj kroki 2. do 4. aż znajdą się w odpowiednim porządku.
388+
389+---> d) Jak dwa aniołki.
390+---> b) Na dole fiołki,
391+---> c) A my się kochamy,
392+---> a) Na górze róże,
393+
394+
395+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
396+ Lekcja 3.2.: POLECENIE REPLACE (zastąp)
397+
398+
399+ ** Wpisz rx aby zastąpić znak pod kursorem na x . **
400+
401+ 1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->
402+
403+ 2. Ustaw kursor na pierwszym błędzie.
404+
405+ 3. Wpisz r a potem znak jaki powinien go zastąpić.
406+
407+ 4. Powtarzaj kroki 2. i 3. dopóki pierwsza linia nie będzie taka jak druga.
408+
409+---> Kjedy ten wiersz bił wstókiwany ktoś wciznął perę złych klawirzy!
410+---> Kiedy ten wiersz był wstukiwany ktoś wcisnął parę złych klawiszy!
411+
412+ 5. Teraz czas na Lekcję 3.3.
413+
414+
415+UWAGA: Pamiętaj by uczyć się ćwicząc, a nie pamięciowo.
416+
417+
418+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
419+ Lekcja 3.3.: OPERATOR CHANGE (zmień)
420+
421+ ** By zmienić do końca wyrazu wpisz ce . **
422+
423+ 1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->.
424+
425+ 2. Umieść kursor na u w lunos.
426+
427+ 3. Wpisz ce i popraw wyraz (w tym wypadku wstaw inia ).
428+
429+ 4. Wciśnij <ESC> i przejdź do następnej planowanej zmiany.
430+
431+ 5. Powtarzaj kroki 3. i 4. dopóki pierwsze zdanie nie będzie takie same
432+ jak drugie.
433+
434+---> Ta lunos ma pire słów, które tżina zbnic użifajonc pcmazu zmień.
435+---> Ta linia ma parę słów, które trzeba zmienić używając polecenia zmień.
436+
437+ Zauważ, że ce nie tylko zamienia wyraz, ale także zmienia tryb na
438+ Insert (wprowadzanie).
439+
440+
441+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
442+ Lekcja 3.4.: WIĘCEJ ZMIAN UŻYWAJĄC c
443+
444+
445+ ** Polecenie change używa takich samych ruchów jak delete. **
446+
447+ 1. Operator change działa tak samo jak delete. Format wygląda tak:
448+
449+ c [liczba] ruch
450+
451+ 2. Ruchy są także takie same, np.: w (wyraz), $ (koniec linii), etc.
452+
453+ 3. Przenieś się do pierwszej linii poniżej oznaczonej --->
454+
455+ 4. Ustaw kursor na pierwszym błędzie.
456+
457+ 5. Wpisz c$ , popraw koniec wiersza i wciśnij <ESC>.
458+
459+---> Koniec tego wiersza musi być poprawiony aby wyglądal tak jak drugi.
460+---> Koniec tego wiersza musi być poprawiony używając polecenia c$ .
461+
462+UWAGA: Możesz używać <BS> aby poprawiać błędy w czasie pisania.
463+
464+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
465+ LEKCJA 3. PODSUMOWANIE
466+
467+
468+ 1. Aby wstawić tekst, który został wcześniej usunięty wciśnij p . To
469+ polecenie wstawia skasowany tekst PO kursorze (jeśli cała linia
470+ została usunięta, zostanie ona umieszczona w linii poniżej kursora).
471+
472+ 2. By zamienić znak pod kursorem wciśnij r a potem znak, który ma zastąpić
473+ oryginalny.
474+
475+ 3. Operator change pozwala Ci na zastąpienie od kursora do miejsca gdzie
476+ zabrałby cię ruch. Np. wpisz ce aby zamienić tekst od kursora do końca
477+ wyrazu, c$ aby zmienić tekst do końca linii.
478+
479+ 4. Format do polecenia change (zmień):
480+
481+ c [liczba] obiekt
482+
483+ Teraz przejdź do następnej lekcji.
484+
485+
486+
487+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
488+ Lekcja 4.1.: POŁOŻENIE KURSORA ORAZ STATUS PLIKU
489+
490+ ** Naciśnij CTRL-G aby zobaczyć swoje położenie w pliku i status
491+ pliku. Naciśnij G aby przejść do linii w pliku. **
492+
493+ UWAGA: Przeczytaj całą lekcję zanim wykonasz jakieś polecenia!!!
494+
495+ 1. Przytrzymaj klawisz CTRL i wciśnij g . Używamy notacji CTRL-G.
496+ Na dole strony pojawi się pasek statusu z nazwą pliku i pozycją w pliku.
497+ Zapamiętaj numer linii dla potrzeb kroku 3.
498+
499+UWAGA: Możesz też zobaczyć pozycję kursora w prawym, dolnym rogu ekranu.
500+ Dzieje się tak kiedy ustawiona jest opcja 'ruler' (wyjaśnione w lekcji 6.).
501+
502+ 2. Wciśnij G aby przejść na koniec pliku.
503+ Wciśnij gg aby przejść do początku pliku.
504+
505+ 3. Wpisz numer linii, w której byłeś a potem G . To przeniesie cię
506+ z powrotem do linii, w której byłeś kiedy wcisnąłeś CTRL-G.
507+
508+ 4. Jeśli czujesz się wystarczająco pewnie, wykonaj kroki 1-3.
509+
510+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
511+ Lekcja 4.2.: POLECENIE SZUKAJ
512+
513+
514+ ** Wpisz / a następnie wyrażenie aby je znaleźć. **
515+
516+ 1. W trybie Normal wpisz / . Zauważ, że znak ten, oraz kursor pojawią
517+ się na dole ekranu tak samo jak polecenie : .
518+
519+ 2. Teraz wpisz błond<ENTER> . To jest słowo, którego chcesz szukać.
520+
521+ 3. By szukać tej samej frazy ponownie, po prostu wciśnij n .
522+ Aby szukać tej frazy w przeciwnym, kierunku wciśnij N .
523+
524+ 4. Jeśli chcesz szukać frazy do tyłu, użyj polecenia ? zamiast / .
525+
526+ 5. Aby wrócić gdzie byłeś wciśnij CTRL-O. Powtarzaj by wrócić dalej. CTRL-I
527+ idzie do przodu.
528+
529+UWAGA: 'błond' to nie jest metoda by przeliterować błąd; 'błond' to błąd.
530+UWAGA: Kiedy szukanie osiągnie koniec pliku będzie kontynuowało od początku
531+o ile opcja 'wrapscan' nie została przestawiona.
532+
533+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534+ Lekcja 4.3.: W POSZUKIWANIU PARUJĄCYCH NAWIASÓW
535+
536+
537+ ** Wpisz % by znaleźć pasujący ),], lub } . **
538+
539+ 1. Umieść kursor na którymś z (, [, lub { w linii poniżej oznaczonej --->.
540+
541+ 2. Teraz wpisz znak % .
542+
543+ 3. Kursor powinien się znaleźć na parującym nawiasie.
544+
545+ 4. Wciśnij % aby przenieść kursor z powrotem do parującego nawiasu.
546+
547+ 5. Przenieś kursor do innego (,),[,],{ lub } i zobacz co robi % .
548+
549+---> To ( jest linia testowa z (, [, ] i {, } . ))
550+
551+UWAGA: Ta funkcja jest bardzo użyteczna w debuggowaniu programu
552+ z niesparowanymi nawiasami!
553+
554+
555+
556+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
557+ Lekcja 4.4.: POLECENIE SUBSTITUTE (zamiana)
558+
559+
560+ ** Wpisz :s/stary/nowy/g aby zamienić 'stary' na 'nowy'. **
561+
562+ 1. Przenieś kursor do linii poniżej oznaczonej --->.
563+
564+ 2. Wpisz :s/czaas/czas<ENTER> . Zauważ, że to polecenie zmienia
565+ tylko pierwsze wystąpienie 'czaas' w linii.
566+
567+ 3. Teraz wpisz :s/czaas/czas/g . Dodane g oznacza zamianę (substytucję)
568+ globalnie w całej linii. Zmienia wszystkie wystąpienia 'czaas' w linii.
569+
570+---> Najlepszy czaas na zobaczenie najładniejszych kwiatów to czaas wiosny.
571+
572+ 4. Aby zmienić wszystkie wystąpienia łańcucha znaków pomiędzy dwoma liniami,
573+ wpisz: :#,#s/stare/nowe/g gdzie #,# są numerami linii ograniczających
574+ region gdzie ma nastąpić zamiana.
575+ wpisz :%s/stare/nowe/g by zmienić wszystkie wystąpienia w całym pliku.
576+ wpisz :%s/stare/nowe/gc by zmienić wszystkie wystąpienia w całym
577+ pliku, prosząc o potwierdzenie za każdym razem
578+
579+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
580+ LEKCJA 4. PODSUMOWANIE
581+
582+ 1. CTRL-G pokaże Twoją pozycję w pliku i status pliku. SHIFT-G przenosi
583+ cię do końca pliku.
584+ G przenosi do końca pliku.
585+ liczba G przenosi do linii [liczba].
586+ gg przenosi do pierwszej linii.
587+
588+ 2. Wpisanie / a następnie łańcucha znaków szuka łańcucha DO PRZODU.
589+ Wpisanie ? a następnie łańcucha znaków szuka łańcucha DO TYŁU.
590+ Po wyszukiwaniu wciśnij n by znaleźć następne wystąpienie szukanej
591+ frazy tym samym kierunku lub N by szukać w kierunku przeciwnym.
592+ CTRL-O przenosi do starszych pozycji, CTRL-I do nowszych.
593+
594+ 3. Wpisanie % gdy kursor znajduje się na (,),[,],{, lub } lokalizuje
595+ parujący znak.
596+
597+ 4. By zamienić pierwszy stary na nowy w linii wpisz :s/stary/nowy
598+ By zamienić wszystkie stary na nowy w linii wpisz :s/stary/nowy/g
599+ By zamienić frazy pomiędzy dwoma liniami # wpisz :#,#s/stary/nowy/g
600+ By zamienić wszystkie wystąpienia w pliku wpisz :%s/stary/nowy/g
601+ By Vim prosił Cię o potwierdzienie dodaj 'c' :%s/stary/nowy/gc
602+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
603+ Lekcja 5.1.: JAK WYKONAĆ POLECENIA ZEWNĘTRZNE
604+
605+
606+ ** Wpisz :! a następnie zewnętrzne polecenie by je wykonać. **
607+
608+ 1. Wpisz znajome polecenie : by ustawić kursor na dole ekranu. To pozwala
609+ na wprowadzenie polecenia.
610+
611+ 2. Teraz wstaw ! (wykrzyknik). To umożliwi Ci wykonanie dowolnego
612+ zewnętrznego polecenia powłoki.
613+
614+ 3. Jako przykład wpisz ls za ! a następnie wciśnij <ENTER>. To polecenie
615+ pokaże spis plików w Twoim katalogu, tak jakbyś był przy znaku zachęty
616+ powłoki. Możesz też użyć :!dir jeśli ls nie działa.
617+
618+Uwaga: W ten sposób można wykonać wszystkie polecenia powłoki.
619+Uwaga: Wszystkie polecenia : muszą być zakończone <ENTER>.
620+ Od tego momentu nie zawsze będziemy o tym wspominać.
621+
622+
623+
624+
625+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
626+ Lekcja 5.2.: WIĘCEJ O ZAPISYWANIU PLIKÓW
627+
628+
629+ ** By zachować zmiany w tekści wpisz :w NAZWA_PLIKU . **
630+
631+ 1. Wpisz :!dir lub :!ls by zobaczyć spis plików w katalogu.
632+ Już wiesz, że musisz wcisnąć <ENTER> po tym.
633+
634+ 2. Wybierz nazwę pliku jaka jeszcze nie istnieje, np. TEST.
635+
636+ 3. Teraz wpisz: :w TEST (gdzie TEST jest nazwą pliku jaką wybrałeś.)
637+
638+ 4. To polecenie zapamięta cały plik (Vim Tutor) pod nazwą TEST.
639+ By to sprawdzić wpisz :!dir lub :!ls , żeby znowu zobaczyć listę plików.
640+
641+Uwaga: Zauważ, że gdybyś teraz wyszedł z Vim-a, a następnie wszedł ponownie
642+ komendą vim TEST , plik byłby dokładną kopią tutoriala kiedy go
643+ zapisywałeś.
644+
645+ 5. Teraz usuń plik wpisując: :!rm TEST
646+
647+
648+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
649+ Lekcja 5.3.: WYBRANIE TEKSTU DO ZAPISU
650+
651+
652+ ** By zachować część pliku wpisz v ruch :w NAZWA_PLIKU **
653+
654+ 1. Przenieś kursor do tego wiersza.
655+
656+ 2. Wciśnij v i przenieś kursor do punktu 5. Zauważ, że tekst został
657+ podświetlony.
658+
659+ 3. Wciśnij znak : . Na dole ekranu pojawi się :'<,'> .
660+
661+ 4. Wpisz w TEST , gdzie TEST to nazwa pliku, który jeszcze nie istnieje.
662+ Upewnij się, że widzisz :'<,'>w TEST zanim wciśniesz Enter.
663+
664+ 5. Vim zapisze wybrane linie do pliku TEST. Użyj :!dir lub :!ls , żeby to
665+ zobaczyć. Jeszcze go nie usuwaj! Użyjemy go w następnej lekcji.
666+
667+UWAGA: Wciśnięcie v zaczyna tryb Wizualny. Możesz poruszać kursorem by
668+ zmienić rozmiary zaznaczenia. Możesz też użyć operatora by zrobić coś
669+ z tekstem. Na przykład d usuwa tekst.
670+
671+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
672+ Lekcja 5.4.: WSTAWIANIE I ŁĄCZENIE PLIKÓW
673+
674+
675+ ** By wstawić zawartość pliku wpisz :r NAZWA_PLIKU **
676+
677+ 1. Umieść kursor tuż powyżej tej linii.
678+
679+UWAGA: Po wykonaniu kroku 2. zobaczysz tekst z Lekcji 5.3. Potem przejdź
680+ do DOŁU by zobaczyć ponownie tę lekcję.
681+
682+ 2. Teraz wczytaj plik TEST używając polecenia :r TEST , gdzie TEST
683+ jest nazwą pliku.
684+ Wczytany plik jest umieszczony poniżej linii z kursorem.
685+
686+ 3. By sprawdzić czy plik został wczytany cofnij kursor i zobacz, że
687+ teraz są dwie kopie Lekcji 5.3., oryginał i kopia z pliku.
688+
689+UWAGA: Możesz też wczytać wyjście zewnętrznego polecenia. Na przykład
690+ :r !ls wczytuje wyjście polecenia ls i umieszcza je pod kursorem.
691+
692+
693+
694+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
695+ LEKCJA 5. PODSUMOWANIE
696+
697+
698+ 1. :!polecenie wykonuje polecenie zewnętrzne.
699+
700+ Użytecznymi przykładami są:
701+
702+ :!dir - pokazuje spis plików w katalogu.
703+
704+ :!rm NAZWA_PLIKU - usuwa plik NAZWA_PLIKU.
705+
706+ 2. :w NAZWA_PLIKU zapisuje obecny plik Vim-a na dysk z nazwą NAZWA_PLIKU.
707+
708+ 3. v ruch :w NAZWA_PLIKU zapisuje Wizualnie wybrane linie do NAZWA_PLIKU.
709+
710+ 4. :r NAZWA_PLIKU wczytuje z dysku plik NAZWA_PLIKU i wstawia go do
711+ bieżącego pliku poniżej kursora.
712+
713+ 5. :r !dir wczytuje wyjście polecenia dir i umieszcza je poniżej kursora.
714+
715+
716+
717+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
718+ Lekcja 6.1.: POLECENIE OPEN (otwórz)
719+
720+
721+ ** Wpisz o by otworzyć linię poniżej kursora i przenieść się do
722+ trybu Insert (wprowadzanie). **
723+
724+ 1. Przenieś kursor do linii poniżej oznaczonej --->.
725+
726+ 2. Wpisz o (małe) by otworzyć linię PONIŻEJ kursora i przenieść się
727+ do trybu Insert (wprowadzanie).
728+
729+ 3. Wpisz trochę tekstu i wciśnij <ESC> by wyjść z trybu Insert (wprowadzanie).
730+
731+---> Po wciśnięciu o kursor znajdzie się w otwartej linii w trybie Insert.
732+
733+ 4. By otworzyć linię POWYŻEJ kursora wciśnij wielkie O zamiast małego
734+ o . Wypróbuj to na linii poniżej.
735+
736+---> Otwórz linię powyżej wciskając SHIFT-O gdy kursor będzie na tej linii.
737+
738+
739+
740+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
741+ Lekcja 6.2.: POLECENIE APPEND (dodaj)
742+
743+
744+ ** Wpisz a by dodać tekst ZA kursorem. **
745+
746+ 1. Przenieś kursor do początku pierwszej linii poniżej oznaczonej --->
747+
748+ 2. Wciskaj e dopóki kursor nie będzie na końcu li .
749+
750+ 3. Wpisz a (małe) aby dodać tekst ZA znakiem pod kursorem.
751+
752+ 4. Dokończ wyraz tak jak w linii poniżej. Wciśnij <ESC> aby opuścić tryb
753+ Insert.
754+
755+ 5. Użyj e by przejść do kolejnego niedokończonego wyraze i powtarzaj kroki
756+ 3. i 4.
757+
758+---> Ta li poz Ci ćwi dodaw teks do koń lin
759+---> Ta linia pozwoli Ci ćwiczyć dodawanie tekstu do końca linii.
760+
761+Uwaga: a , i and A prowadzą do trybu Insert, jedyną różnicą jest miejsce
762+ gdzie nowe znaki będą dodawane.
763+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
764+ Lekcja 6.3.: INNA WERSJA REPLACE (zamiana)
765+
766+
767+ ** Wpisz wielkie R by zamienić więcej niż jeden znak. **
768+
769+ 1. Przenieś kursor do pierwszej linii poniżej oznaczonej --->. Przenieś
770+ kursor do pierwszego xxx .
771+
772+ 2. Wciśnij R i wpisz numer poniżej w drugiej linii, tak, że zastąpi on
773+ xxx.
774+
775+ 3. Wciśnij <ESC> by opuścić tryb Replace. Zauważ, że reszta linii pozostaje
776+ niezmieniona.
777+
778+ 5. Powtarzaj kroki by wymienić wszystkie xxx.
779+
780+---> Dodanie 123 do xxx daje xxx.
781+---> Dodanie 123 do 456 daje 579.
782+
783+UWAGA: Tryb Replace jest jak tryb Insert, ale każdy znak usuwa istniejący
784+ znak.
785+
786+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
787+ Lekcja 6.4.: KOPIOWANIE I WKLEJANIE TEKSTU
788+
789+
790+ ** użyj operatora y aby skopiować tekst i p aby go wkleić **
791+
792+ 1. Przejdź do linii oznaczonej ---> i umieśc kursor za "a)".
793+
794+ 2. Wejdź w tryb Visual v i przenieś kursor na początek "pierwszy".
795+
796+ 3. Wciśnij y aby yankować (kopiować) podświetlony tekst.
797+
798+ 4. Przenieś kursor do końca następnej linii: j$
799+
800+ 5. Wciśnij p aby wpakować (paste) tekst. Dodaj: a drugi<ESC> .
801+
802+ 6. Użyj trybu Visual aby wybrać " element.", yankuj go y , przejdź do końca
803+ następnej linii j$ i upakuj tam tekst z p .
804+
805+---> a) to jest pierwszy element.
806+ b)
807+Uwaga: możesz użyć y jako operatora; yw kopiuje jeden wyraz.
808+
809+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
810+ Lekcja 6.5.: USTAWIANIE OPCJI
811+
812+
813+** Ustawianie opcji tak by szukaj lub substytucja ignorowały wielkość liter **
814+
815+ 1. Szukaj 'ignore' wpisując: /ignore<ENTER>
816+ Powtórz szukanie kilka razy naciskając klawisz n .
817+
818+ 2. Ustaw opcję 'ic' (Ignore case -- ignoruj wielkość liter) poprzez
819+ wpisanie: :set ic
820+
821+ 3. Teraz szukaj 'ignore' ponownie wciskując: n
822+ Zauważ, że Ignore i IGNORE także są teraz znalezione.
823+
824+ 4. Ustaw opcje 'hlsearch' i 'incsearch': :set hls is
825+
826+ 5. Teraz wprowadź polecenie szukaj ponownie i zobacz co się zdarzy:
827+ /ignore<ENTER>
828+
829+ 6. Aby wyłączyć ignorowanie wielkości liter: :set noic
830+
831+Uwaga: Aby usunąć podświetlanie dopasowań wpisz: :nohlsearch
832+Uwaga: Aby ignorować wielkość liter dla jednego wyszukiwania: /ignore\c<ENTER>
833+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
834+ LEKCJA 6. PODSUMOWANIE
835+
836+
837+ 1. Wpisanie o otwiera linię PONIŻEJ kursora.
838+ Wpisanie wielkiego O otwiera linię POWYŻEJ kursora.
839+ 2. Wpisz a by wstawić tekst ZA znakiem na, którym jest kursor.
840+ Wpisanie wielkiego A dodaje tekst na końcu linii.
841+ 3. Polecenie e przenosi do końca wyrazu.
842+ 4. Operato y yankuje (kopiuje) tekst, p pakuje (wkleja, paste) go.
843+ 5. Wpisanie wielkiego R wprowadza w tryb Replace (zamiana) dopóki
844+ nie zostanie wciśnięty <ESC>.
845+ 6. Wpisanie ":set xxx" ustawia opcję "xxx". Nietkóre opcje:
846+ 'ic' 'ignorecase' ignoruj wielkość znaków
847+ 'is' 'incsearch' pokaż częściowe dopasowania
848+ 'hls' 'hlsearch' podświetl wszystkie dopasowania
849+ Możesz użyć zarówno długiej jak i krótkiej formy.
850+ 7. Dodaj "no" aby wyłączyć opcję: :set noic
851+
852+
853+
854+
855+
856+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
857+ LEKCJA 7.1. JAK UZYSKAĆ POMOC
858+
859+ ** Użycie systemu pomocy on-line **
860+
861+ Vim posiada bardzo dobry system pomocy on-line. By zacząć spróbuj jednej
862+ z trzech możliwości:
863+ - wciśnij klawisz <HELP> (jeśli takowy posiadasz)
864+ - wciśnij klawisz <F1> (jeśli takowy posiadasz)
865+ - wpisz :help<ENTER>
866+
867+ Przeczytaj tekst w oknie pomocy aby dowiedzieć się jak działa pomoc.
868+ wpisz CTRL-W CTRL-W aby przeskoczyć z jednego okna do innego
869+ wpisz :q<ENTER> aby zamknąć okno pomocy.
870+
871+ Możesz też znaleźć pomoc na każdy temat podając argument polecenia ":help".
872+ Spróbuj tych (nie zapomnij wcisnąć <ENTER>):
873+
874+ :help w
875+ :help c_CTRL-D
876+ :help insert-index
877+ :help user-manual
878+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
879+ LEKCJA 7.2. TWORZENIE SKRYPTU STARTOWEGO
880+
881+ ** Włącz możliwości Vim-a **
882+
883+ Vim ma o wiele więcej możliwości niż Vi, ale większość z nich jest domyślnie
884+ wyłączona. Jeśli chcesz włączyć te możliwości na starcie musisz utworzyć
885+ plik "vimrc".
886+
887+ 1. Początek edycji pliku "vimrc" zależy od Twojego systemu:
888+ :edit ~/.vimrc dla Uniksa
889+ :edit $VIM/_vimrc dla MS-Windows
890+ 2. Teraz wczytaj przykładowy plik "vimrc":
891+ :read $VIMRUNTIME/vimrc_example.vim
892+ 3. Zapisz plik:
893+ :w
894+
895+ Następnym razem gdy zaczniesz pracę w Vimie będzie on używać podświetlania
896+ składni. Możesz dodać wszystkie swoje ulubione ustawienia do tego pliku
897+ "vimrc".
898+ Aby uzyskać więcej informacji wpisz :help vimrc-intro
899+
900+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
901+ Lekcja 7.3.: UZUPEŁNIANIE
902+
903+
904+ ** Uzupełnianie linii poleceń z CTRL-D i <TAB> **
905+
906+ 1. Upewnij się, że Vim nie jest w trybie kompatybilności: :set nocp
907+
908+ 2. Zerknij jakie pliki są w bieżącm katalogu: :!ls lub :!dir
909+
910+ 3. Wpisz początek polecenia: :e
911+
912+ 4. Wciśnij CTRL-D i Vim pokaże listę poleceń jakie zaczynają się na "e".
913+
914+ 5. Wciśnij <TAB> i Vim uzupełni polecenie do ":edit".
915+
916+ 6. Dodaj spację i zacznij wpisywać nazwę istniejącego pliku: :edit FIL
917+
918+ 7. Wciśnij <TAB>. Vim uzupełni nazwę (jeśli jest niepowtarzalna).
919+
920+UWAGA: Uzupełnianie działa dla wielu poleceń. Spróbuj wcisnąć CTRL-D i <TAB>.
921+ Użyteczne zwłaszcza przy :help .
922+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
923+ Lekcja 7. PODSUMOWANIE
924+
925+
926+ 1. Wpisz :help lub wciśnij <F1> lub <Help> aby otworzyć okno pomocy.
927+
928+ 2. Wpisz :help cmd aby uzyskać pomoc o cmd .
929+
930+ 3. Wpisz CTRL-W CTRL-W aby przeskoczyć do innego okna.
931+
932+ 4. Wpisz :q aby zamknąć okno pomocy.
933+
934+ 5. Utwórz plik startowy vimrc aby zachować wybrane ustawienia.
935+
936+ 6. Po poleceniu : , wciśnij CTRL-D aby zobaczyć możliwe uzupełnienia.
937+ Wciśnij <TAB> aby użyć jednego z nich.
938+
939+
940+
941+
942+
943+
944+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
945+
946+ Tutaj się kończy tutorial Vim-a. Został on pomyślany tak aby dać krótki
947+ przegląd jego możliwości, wystarczający byś mógł go używać. Jest on
948+ daleki od kompletności ponieważ Vim ma o wiele, wiele więcej poleceń.
949+
950+ Dla dalszej nauki rekomendujemy książkę:
951+ Vim - Vi Improved - autor Steve Oualline
952+ Wydawca: New Riders
953+ Pierwsza ksiązka całkowicie poświęcona Vim-owi. Użyteczna zwłaszcza dla
954+ początkujących. Zawiera wiele przykładów i ilustracji.
955+ Zobacz http://iccf-holland.org./click5.html
956+
957+ Ta książka jest starsza i bardziej o Vi niż o Vim-ie, ale także warta
958+ polecenia:
959+ Learning the Vi Editor - autor Linda Lamb
960+ Wydawca: O'Reilly & Associates Inc.
961+ To dobra książka by dowiedzieć się niemal wszystkiego co chciałbyś zrobić
962+ z Vi. Szósta edycja zawiera też informacje o Vim-ie.
963+
964+ Po polsku wydano:
965+ Edytor vi. Leksykon kieszonkowy - autor Arnold Robbins
966+ Wydawca: Helion 2001 (O'Reilly).
967+ ISBN: 83-7197-472-8
968+ http://helion.pl/ksiazki/vilek.htm
969+ Jest to książeczka zawierająca spis poleceń vi i jego najważniejszych
970+ klonów (między innymi Vim-a).
971+
972+ Edytor vi - autorzy Linda Lamb i Arnold Robbins
973+ Wydawca: Helion 2001 (O'Reilly) - wg 6 ang. wydania
974+ ISBN: 83-7197-539-2
975+ http://helion.pl/ksiazki/viedyt.htm
976+ Rozszerzona wersja Learning the Vi Editor w polskim tłumaczeniu.
977+
978+ Ten tutorial został napisany przez Michaela C. Pierce'a i Roberta K. Ware'a,
979+ Colorado School of Mines korzystając z pomocy Charlesa Smitha,
980+ Colorado State University.
981+ E-mail: bware@mines.colorado.edu.
982+
983+ Zmodyfikowane dla Vim-a przez Brama Moolenaara.
984+
985+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
986+
987+ Przetłumaczone przez Mikołaja Machowskiego,
988+ Sierpień 2001,
989+ rev. Marzec 2002
990+ 2nd rev. Wrzesień 2004
991+ Wszelkie uwagi proszę kierować na: mikmach@wp.pl
diff -r 3f44e9abe4ec -r 8ff7fd162d3c runtime/tutor/tutor.vim
--- a/runtime/tutor/tutor.vim Mon Sep 06 17:44:46 2004 +0000
+++ b/runtime/tutor/tutor.vim Mon Sep 13 20:26:32 2004 +0000
@@ -1,6 +1,6 @@
11 " Vim tutor support file
22 " Author: Eduardo F. Amatria <eferna1@platea.pntic.mec.es>
3-" Last Change: 2004 Jun 03
3+" Last Change: 2004 Sep 06
44
55 " This small source file is used for detecting if a translation of the
66 " tutor file exist, i.e., a tutor.xx file, where xx is the language.
@@ -70,8 +70,12 @@
7070 endif
7171
7272 " The Polish tutor is available in two encodings, guess which one to use.
73-if s:ext =~? '\.pl' && &enc =~ 1250
74- let s:ext = ".pl.cp1250"
73+if s:ext =~? '\.pl'
74+ if &enc =~ 1250
75+ let s:ext = ".pl.cp1250"
76+ elseif &enc =~ "utf-8$"
77+ let s:ext = ".pl.utf-8"
78+ endif
7579 endif
7680
7781 " The Greek tutor is available in two encodings, guess which one to use
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/Make_ming.mak
--- a/src/Make_ming.mak Mon Sep 06 17:44:46 2004 +0000
+++ b/src/Make_ming.mak Mon Sep 13 20:26:32 2004 +0000
@@ -117,7 +117,7 @@
117117 # c:/windows/system32 isn't a good idea, use some other dir;
118118 # to build you can put them in temp dir)
119119 ifndef MZSCHEME_LIBDIR
120-MZSCHEME_LIBDIR=$(MZSCHEME)
120+MZSCHEME_LIBDIR=-L$(MZSCHEME)
121121 endif
122122 endif
123123
@@ -510,7 +510,7 @@
510510 $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
511511
512512 $(TARGET): $(OUTDIR) $(OBJ)
513- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid -L $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(RUBYLIB)
513+ $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(RUBYLIB)
514514
515515 upx: exes
516516 upx gvim.exe
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/buffer.c
--- a/src/buffer.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/buffer.c Mon Sep 13 20:26:32 2004 +0000
@@ -565,6 +565,7 @@
565565 #ifdef FEAT_SYN_HL
566566 syntax_clear(buf); /* reset syntax info */
567567 #endif
568+ buf->b_flags &= ~BF_READERR; /* a read error is no longer relevant */
568569 }
569570
570571 /*
@@ -670,17 +671,23 @@
670671 && (defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG))
671672 if (swap_exists_action == SEA_QUIT && *eap->cmd == 's')
672673 {
673- int old_got_int = got_int;
674-
675- /* Quitting means closing the split window, nothing else.
676- * Reset got_int here, because it causes aborting() to return TRUE
677- * which breaks closing a window. */
678- got_int = FALSE;
679-
674+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
675+ cleanup_T cs;
676+
677+ /* Reset the error/interrupt/exception state here so that
678+ * aborting() returns FALSE when closing a window. */
679+ enter_cleanup(&cs);
680+# endif
681+
682+ /* Quitting means closing the split window, nothing else. */
680683 win_close(curwin, TRUE);
681-
682- got_int |= old_got_int;
683684 swap_exists_action = SEA_NONE;
685+
686+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
687+ /* Restore the error/interrupt/exception state if not discarded by a
688+ * new aborting error, interrupt, or uncaught exception. */
689+ leave_cleanup(&cs);
690+# endif
684691 }
685692 else
686693 handle_swap_exists(old_curbuf);
@@ -697,37 +704,58 @@
697704 handle_swap_exists(old_curbuf)
698705 buf_T *old_curbuf;
699706 {
700- int old_got_int = got_int;
701-
702- /* Reset got_int here, because it causes aborting() to return TRUE which
703- * breaks closing a buffer. */
704- got_int = FALSE;
707+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
708+ cleanup_T cs;
709+# endif
705710
706711 if (swap_exists_action == SEA_QUIT)
707712 {
713+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
714+ /* Reset the error/interrupt/exception state here so that
715+ * aborting() returns FALSE when closing a buffer. */
716+ enter_cleanup(&cs);
717+# endif
718+
708719 /* User selected Quit at ATTENTION prompt. Go back to previous
709720 * buffer. If that buffer is gone or the same as the current one,
710721 * open a new, empty buffer. */
711722 swap_exists_action = SEA_NONE; /* don't want it again */
712723 close_buffer(curwin, curbuf, DOBUF_UNLOAD);
713724 if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
714- old_curbuf = buflist_new(NULL, NULL, 1L,
715- BLN_CURBUF | BLN_LISTED | BLN_FORCE);
725+ old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
716726 if (old_curbuf != NULL)
717727 enter_buffer(old_curbuf);
718728 /* If "old_curbuf" is NULL we are in big trouble here... */
729+
730+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
731+ /* Restore the error/interrupt/exception state if not discarded by a
732+ * new aborting error, interrupt, or uncaught exception. */
733+ leave_cleanup(&cs);
734+# endif
719735 }
720736 else if (swap_exists_action == SEA_RECOVER)
721737 {
738+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
739+ /* Reset the error/interrupt/exception state here so that
740+ * aborting() returns FALSE when closing a buffer. */
741+ enter_cleanup(&cs);
742+# endif
743+
722744 /* User selected Recover at ATTENTION prompt. */
723745 msg_scroll = TRUE;
724746 ml_recover();
725747 MSG_PUTS("\n"); /* don't overwrite the last message */
726748 cmdline_row = msg_row;
727749 do_modelines(FALSE);
750+
751+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
752+ /* Restore the error/interrupt/exception state if not discarded by a
753+ * new aborting error, interrupt, or uncaught exception. */
754+ leave_cleanup(&cs);
755+# endif
728756 }
729757 swap_exists_action = SEA_NONE;
730- got_int |= old_got_int;
758+
731759 }
732760 #endif
733761
@@ -1347,11 +1375,13 @@
13471375 /* Make sure the buffer is loaded. */
13481376 if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
13491377 {
1378+#ifdef FEAT_AUTOCMD
13501379 /* If there is no filetype, allow for detecting one. Esp. useful for
13511380 * ":ball" used in a autocommand. If there already is a filetype we
13521381 * might prefer to keep it. */
13531382 if (*curbuf->b_p_ft == NUL)
13541383 did_filetype = FALSE;
1384+#endif
13551385
13561386 open_buffer(FALSE, NULL);
13571387 }
@@ -1408,7 +1438,6 @@
14081438 * If (flags & BLN_CURBUF) is TRUE, may use current buffer.
14091439 * If (flags & BLN_LISTED) is TRUE, add new buffer to buffer list.
14101440 * If (flags & BLN_DUMMY) is TRUE, don't count it as a real buffer.
1411- * If (flags & BLN_FORCE) is TRUE, don't abort on an error.
14121441 * This is the ONLY way to create a new buffer.
14131442 */
14141443 static int top_file_num = 1; /* highest file number */
@@ -1484,7 +1513,7 @@
14841513 apply_autocmds(EVENT_BUFWIPEOUT, NULL, NULL, FALSE, curbuf);
14851514 # ifdef FEAT_EVAL
14861515 /* autocmds may abort script processing */
1487- if (!(flags & BLN_FORCE) && aborting())
1516+ if (aborting())
14881517 return NULL;
14891518 # endif
14901519 #endif
@@ -1538,7 +1567,7 @@
15381567 return NULL;
15391568 #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
15401569 /* autocmds may abort script processing */
1541- if (!(flags & BLN_FORCE) && aborting())
1570+ if (aborting())
15421571 return NULL;
15431572 #endif
15441573 /* buf->b_nwindows = 0; why was this here? */
@@ -1615,7 +1644,7 @@
16151644 apply_autocmds(EVENT_BUFADD, NULL, NULL, FALSE, buf);
16161645 # ifdef FEAT_EVAL
16171646 /* autocmds may abort script processing */
1618- if (!(flags & BLN_FORCE) && aborting())
1647+ if (aborting())
16191648 return NULL;
16201649 # endif
16211650 }
@@ -4262,18 +4291,25 @@
42624291 #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
42634292 if (swap_exists_action == SEA_QUIT)
42644293 {
4265- int old_got_int = got_int;
4266-
4267- /* User selected Quit at ATTENTION prompt; close this window.
4268- * Reset got_int here, because it causes aborting() to return
4269- * TRUE which breaks closing a window. */
4270- got_int = FALSE;
4271-
4294+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
4295+ cleanup_T cs;
4296+
4297+ /* Reset the error/interrupt/exception state here so that
4298+ * aborting() returns FALSE when closing a window. */
4299+ enter_cleanup(&cs);
4300+# endif
4301+
4302+ /* User selected Quit at ATTENTION prompt; close this window. */
42724303 win_close(curwin, TRUE);
42734304 --open_wins;
4274-
4275- got_int |= old_got_int;
42764305 swap_exists_action = SEA_NONE;
4306+
4307+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
4308+ /* Restore the error/interrupt/exception state if not
4309+ * discarded by a new aborting error, interrupt, or uncaught
4310+ * exception. */
4311+ leave_cleanup(&cs);
4312+# endif
42774313 }
42784314 else
42794315 handle_swap_exists(NULL);
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/eval.c
--- a/src/eval.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/eval.c Mon Sep 13 20:26:32 2004 +0000
@@ -2933,7 +2933,7 @@
29332933 {"synID", 3, 3, f_synID},
29342934 {"synIDattr", 2, 3, f_synIDattr},
29352935 {"synIDtrans", 1, 1, f_synIDtrans},
2936- {"system", 1, 1, f_system},
2936+ {"system", 1, 2, f_system},
29372937 {"tempname", 0, 0, f_tempname},
29382938 {"tolower", 1, 1, f_tolower},
29392939 {"toupper", 1, 1, f_toupper},
@@ -7570,16 +7570,52 @@
75707570 VAR argvars;
75717571 VAR retvar;
75727572 {
7573+ char_u *res = NULL;
75737574 char_u *p;
7574-
7575- p = get_cmd_output(get_var_string(&argvars[0]), SHELL_SILENT);
7575+ char_u *infile = NULL;
7576+ char_u buf[NUMBUFLEN];
7577+ int err = FALSE;
7578+ FILE *fd;
7579+
7580+ if (argvars[1].var_type != VAR_UNKNOWN)
7581+ {
7582+ /*
7583+ * Write the string to a temp file, to be used for input of the shell
7584+ * command.
7585+ */
7586+ if ((infile = vim_tempname('i')) == NULL)
7587+ {
7588+ EMSG(_(e_notmp));
7589+ return;
7590+ }
7591+
7592+ fd = mch_fopen((char *)infile, WRITEBIN);
7593+ if (fd == NULL)
7594+ {
7595+ EMSG2(_(e_notopen), infile);
7596+ goto done;
7597+ }
7598+ p = get_var_string_buf(&argvars[1], buf);
7599+ if (fwrite(p, STRLEN(p), 1, fd) != 1)
7600+ err = TRUE;
7601+ if (fclose(fd) != 0)
7602+ err = TRUE;
7603+ if (err)
7604+ {
7605+ EMSG(_("E677: Error writing temp file"));
7606+ goto done;
7607+ }
7608+ }
7609+
7610+ res = get_cmd_output(get_var_string(&argvars[0]), infile, SHELL_SILENT);
7611+
75767612 #ifdef USE_CR
75777613 /* translate <CR> into <NL> */
7578- if (p != NULL)
7614+ if (res != NULL)
75797615 {
75807616 char_u *s;
75817617
7582- for (s = p; *s; ++s)
7618+ for (s = res; *s; ++s)
75837619 {
75847620 if (*s == CAR)
75857621 *s = NL;
@@ -7588,12 +7624,12 @@
75887624 #else
75897625 # ifdef USE_CRNL
75907626 /* translate <CR><NL> into <NL> */
7591- if (p != NULL)
7627+ if (res != NULL)
75927628 {
75937629 char_u *s, *d;
75947630
7595- d = p;
7596- for (s = p; *s; ++s)
7631+ d = res;
7632+ for (s = res; *s; ++s)
75977633 {
75987634 if (s[0] == CAR && s[1] == NL)
75997635 ++s;
@@ -7603,8 +7639,15 @@
76037639 }
76047640 # endif
76057641 #endif
7642+
7643+done:
7644+ if (infile != NULL)
7645+ {
7646+ mch_remove(infile);
7647+ vim_free(infile);
7648+ }
76067649 retvar->var_type = VAR_STRING;
7607- retvar->var_val.var_string = p;
7650+ retvar->var_val.var_string = res;
76087651 }
76097652
76107653 /*
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/ex_cmds.h
--- a/src/ex_cmds.h Mon Sep 06 17:44:46 2004 +0000
+++ b/src/ex_cmds.h Mon Sep 13 20:26:32 2004 +0000
@@ -276,6 +276,8 @@
276276 RANGE|NOTADR|COUNT|TRLBAR),
277277 EX(CMD_delete, "delete", ex_operators,
278278 RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY),
279+EX(CMD_delmarks, "delmarks", ex_delmarks,
280+ BANG|EXTRA|TRLBAR|CMDWIN),
279281 EX(CMD_debug, "debug", ex_debug,
280282 NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN),
281283 EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy,
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/ex_docmd.c
--- a/src/ex_docmd.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/ex_docmd.c Mon Sep 13 20:26:32 2004 +0000
@@ -6679,10 +6679,24 @@
66796679 need_hide = (curbufIsChanged() && curbuf->b_nwindows <= 1);
66806680 if (!need_hide || P_HID(curbuf))
66816681 {
6682+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
6683+ cleanup_T cs;
6684+
6685+ /* Reset the error/interrupt/exception state here so that
6686+ * aborting() returns FALSE when closing a window. */
6687+ enter_cleanup(&cs);
6688+# endif
66826689 # ifdef FEAT_GUI
66836690 need_mouse_correct = TRUE;
66846691 # endif
66856692 win_close(curwin, !need_hide && !P_HID(curbuf));
6693+
6694+# if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
6695+ /* Restore the error/interrupt/exception state if not
6696+ * discarded by a new aborting error, interrupt, or
6697+ * uncaught exception. */
6698+ leave_cleanup(&cs);
6699+# endif
66866700 }
66876701 }
66886702 #endif
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/ex_eval.c
--- a/src/ex_eval.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/ex_eval.c Mon Sep 13 20:26:32 2004 +0000
@@ -1820,6 +1820,151 @@
18201820 }
18211821
18221822 /*
1823+ * Function to be called before a failed command invokes a sequence of
1824+ * autocommands for cleanup. (Failure means here that a call to emsg() has
1825+ * been made, an interrupt occurred, or there is an uncaught exception from a
1826+ * previous autocommand execution of the same command.) This function works a
1827+ * bit like ex_finally() except that there was not actually an extra try block
1828+ * around the part that failed and an error or interrupt has not (yet) been
1829+ * converted to an exception. This function saves the
1830+ * error/interrupt/exception state and prepares for the call to do_cmdline()
1831+ * that is going to be made for the cleanup autocommand execution.
1832+ *
1833+ * Stores the pending error/interrupt/exception state in the cleanup_T
1834+ * structure pointed to by "csp", which has to be passed as an argument to
1835+ * leave_cleanup() after the autocommand execution has finished.
1836+ */
1837+ void
1838+enter_cleanup(csp)
1839+ cleanup_T *csp;
1840+{
1841+ int pending = CSTP_NONE;
1842+
1843+ /*
1844+ * Postpone did_emsg, got_int, did_throw. The pending values will be
1845+ * restored by leave_cleanup() except if there was an aborting error,
1846+ * interrupt, or uncaught exception after this function ends.
1847+ */
1848+ if (did_emsg || got_int || did_throw || need_rethrow)
1849+ {
1850+ csp->pending = (did_emsg ? CSTP_ERROR : 0)
1851+ | (got_int ? CSTP_INTERRUPT : 0)
1852+ | (did_throw ? CSTP_THROW : 0)
1853+ | (need_rethrow ? CSTP_THROW : 0);
1854+
1855+ /* If we are currently throwing an exception (did_throw), save it as
1856+ * well. On an error not yet converted to an exception, update
1857+ * "force_abort" and reset "cause_abort" (as do_errthrow() would do).
1858+ * This is needed for the do_cmdline() call that is going to be made
1859+ * for autocommand execution. We need not save *msg_list because
1860+ * there is an extra instance for every call of do_cmdline(), anyway.
1861+ */
1862+ if (did_throw || need_rethrow)
1863+ csp->exception = current_exception;
1864+ else
1865+ {
1866+ csp->exception = NULL;
1867+ if (did_emsg)
1868+ {
1869+ force_abort |= cause_abort;
1870+ cause_abort = FALSE;
1871+ }
1872+ }
1873+ did_emsg = got_int = did_throw = need_rethrow = FALSE;
1874+
1875+ /* Report if required by the 'verbose' option or when debugging. */
1876+ report_make_pending(pending, csp->exception);
1877+ }
1878+ else
1879+ {
1880+ csp->pending = CSTP_NONE;
1881+ csp->exception = NULL;
1882+ }
1883+}
1884+
1885+/*
1886+ * Function to be called after a failed command invoked a sequence of
1887+ * autocommands for cleanup. It is a bit like ex_endtry() except that there
1888+ * was not actually an extra try block around the part that failed and an
1889+ * error or interrupt had not (yet) been converted to an exception when the
1890+ * cleanup autocommand sequence was invoked. This function has to be called
1891+ * with the address of the cleanup_T structure filled by enter_cleanup() as an
1892+ * argument; it restores the error/interrupt/exception state saved by that
1893+ * function - except there was an aborting error, an interrupt or an uncaught
1894+ * exception during execution of the cleanup autocommands. In the latter
1895+ * case, the saved error/interrupt/ exception state is discarded.
1896+ */
1897+ void
1898+leave_cleanup(csp)
1899+ cleanup_T *csp;
1900+{
1901+ int pending = csp->pending;
1902+
1903+ if (pending == CSTP_NONE) /* nothing to do */
1904+ return;
1905+
1906+ /* If there was an aborting error, an interrupt, or an uncaught exception
1907+ * after the corresponding call to enter_cleanup(), discard what has been
1908+ * made pending by it. Report this to the user if required by the
1909+ * 'verbose' option or when debugging. */
1910+ if (aborting() || need_rethrow)
1911+ {
1912+ if (pending & CSTP_THROW)
1913+ /* Cancel the pending exception (includes report). */
1914+ discard_exception((except_T *)csp->exception, FALSE);
1915+ else
1916+ report_discard_pending(pending, NULL);
1917+
1918+ /* If an error was about to be converted to an exception when
1919+ * enter_cleanup() was called, free the message list. */
1920+ free_msglist(*msg_list);
1921+ *msg_list = NULL;
1922+ }
1923+
1924+ /*
1925+ * If there was no new error, interrupt, or throw between the calls
1926+ * to enter_cleanup() and leave_cleanup(), restore the pending
1927+ * error/interrupt/exception state.
1928+ */
1929+ else
1930+ {
1931+ /*
1932+ * If there was an exception being thrown when enter_cleanup() was
1933+ * called, we need to rethrow it. Make it the exception currently
1934+ * being thrown.
1935+ */
1936+ if (pending & CSTP_THROW)
1937+ current_exception = csp->exception;
1938+
1939+ /*
1940+ * If an error was about to be converted to an exception when
1941+ * enter_cleanup() was called, let "cause_abort" take the part of
1942+ * "force_abort" (as done by cause_errthrow()).
1943+ */
1944+ else if (pending & CSTP_ERROR)
1945+ {
1946+ cause_abort = force_abort;
1947+ force_abort = FALSE;
1948+ }
1949+
1950+ /*
1951+ * Restore the pending values of did_emsg, got_int, and did_throw.
1952+ */
1953+ if (pending & CSTP_ERROR)
1954+ did_emsg = TRUE;
1955+ if (pending & CSTP_INTERRUPT)
1956+ got_int = TRUE;
1957+ if (pending & CSTP_THROW)
1958+ need_rethrow = TRUE; /* did_throw will be set by do_one_cmd() */
1959+
1960+ /* Report if required by the 'verbose' option or when debugging. */
1961+ report_resume_pending(pending,
1962+ (pending & CSTP_THROW) ? (void *)current_exception : NULL);
1963+ }
1964+}
1965+
1966+
1967+/*
18231968 * Make conditionals inactive and discard what's pending in finally clauses
18241969 * until the conditional type searched for or a try conditional not in its
18251970 * finally clause is reached. If this is in an active catch clause, finish the
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/fileio.c
--- a/src/fileio.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/fileio.c Mon Sep 13 20:26:32 2004 +0000
@@ -3832,8 +3832,10 @@
38323832 #ifdef FEAT_MBYTE
38333833 /*
38343834 * The BOM is written just after the encryption magic number.
3835+ * Skip it when appending and the file already existed, the BOM only makes
3836+ * sense at the start of the file.
38353837 */
3836- if (buf->b_p_bomb && !write_bin)
3838+ if (buf->b_p_bomb && !write_bin && (!append || perm < 0))
38373839 {
38383840 write_info.bw_len = make_bom(buffer, fenc);
38393841 if (write_info.bw_len > 0)
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/gui_kde_wid.cc
--- a/src/gui_kde_wid.cc Mon Sep 06 17:44:46 2004 +0000
+++ b/src/gui_kde_wid.cc Mon Sep 13 20:26:32 2004 +0000
@@ -154,9 +154,9 @@
154154 int
155155 gui_mch_haskey(char_u * name)//{{{
156156 {
157- for (int i=0; special_keys[i].qtkey != 0; i++)
158- if (name[0] == special_keys[i].code0 &&
159- name[1] == special_keys[i].code1)
157+ for (int i = 0; special_keys[i].qtkey != 0; i++)
158+ if (name[0] == special_keys[i].code0
159+ && name[1] == special_keys[i].code1)
160160 return OK;
161161 return FAIL;
162162 }//}}}
@@ -164,20 +164,20 @@
164164 /*
165165 * custom Frame for drawing ...
166166 */
167-void VimWidget::paintEvent( QPaintEvent *e)//{{{
167+void VimWidget::paintEvent(QPaintEvent *e)//{{{
168168 {
169169 QRect r = e->rect();
170- gui_redraw(r.x(), r.y(), r.width(), r.height() );
170+ gui_redraw(r.x(), r.y(), r.width(), r.height());
171171 }//}}}
172172
173173 void VimWidget::draw_string(int x, int y, QString s, int len, int flags)//{{{
174174 {
175- gui.current_font->setBold( flags & DRAW_BOLD );
176- gui.current_font->setUnderline( flags & DRAW_UNDERL );
175+ gui.current_font->setBold(flags & DRAW_BOLD);
176+ gui.current_font->setUnderline(flags & DRAW_UNDERL);
177177 gui.current_font->setItalic(flags & DRAW_ITALIC);
178- painter->setBackgroundMode( flags & DRAW_TRANSP ? Qt::TransparentMode : Qt::OpaqueMode);
179- painter->setFont( *(gui.current_font) );
180- painter->drawText( x, y, s, len);
178+ painter->setBackgroundMode(flags & DRAW_TRANSP ? Qt::TransparentMode : Qt::OpaqueMode);
179+ painter->setFont(*(gui.current_font));
180+ painter->drawText(x, y, s, len);
181181 }//}}}
182182
183183 void VimWidget::mousePressEvent(QMouseEvent *event)//{{{
@@ -1165,36 +1165,9 @@
11651165 I18N_NOOP("NetBSD configure/compilation fixes")
11661166 );
11671167 aboutData->setLicenseText(
1168-"KVim as an extension of Vim follows Vim license : \n\
1169-Vim is Charityware. You can use and copy it as much as you like, but you are\n\
1170-encouraged to make a donation to orphans in Uganda. Please read the file\n\
1171-runtime/doc/uganda.txt for details.\n\
1172-\n\
1173-There are no restrictions on distributing an unmodified copy of Vim. Parts of\n\
1174-Vim may also be distributed, but this text must always be included. You are\n\
1175-allowed to include executables that you made from the unmodified Vim sources,\n\
1176-your own usage examples and Vim scripts.\n\
1177-\n\
1178-If you distribute a modified version of Vim, you are encouraged to send the\n\
1179-maintainer a copy, including the source code. Or make it available to the\n\
1180-maintainer through ftp; let him know where it can be found. If the number of\n\
1181-changes is small (e.g., a modified Makefile) e-mailing the diffs will do.\n\
1182-When the maintainer asks for it (in any way) you must make your changes,\n\
1183-including source code, available to him.\n\
1184-\n\
1185-The maintainer reserves the right to include any changes in the official\n\
1186-version of Vim. This is negotiable. You are not allowed to distribute a\n\
1187-modified version of Vim when you are not willing to make the source code\n\
1188-available to the maintainer.\n\
1189-\n\
1190-The current maintainer is Bram Moolenaar <Bram@vim.org>. If this changes, it\n\
1191-will be announced in appropriate places (most likely www.vim.org and\n\
1192-comp.editors). When it is completely impossible to contact the maintainer,\n\
1193-the obligation to send him modified source code ceases.\n\
1194-\n\
1195-It is not allowed to remove these restrictions from the distribution of the\n\
1196-Vim sources or parts of it. These restrictions may also be used for previous\n\
1197-Vim releases instead of the text that was included with it.");
1168+"KVim as an extension of Vim follows Vim license.\n\
1169+You can read it with \":help license\"\n\
1170+Or read the file $VIMRUNTIME/doc/uganda.txt.");
11981171
11991172 KAboutApplication *about = new KAboutApplication(aboutData);
12001173 about->show();
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/mark.c
--- a/src/mark.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/mark.c Mon Sep 13 20:26:32 2004 +0000
@@ -743,6 +743,91 @@
743743 }
744744 }
745745
746+/*
747+ * ":delmarks[!] [marks]"
748+ */
749+ void
750+ex_delmarks(eap)
751+ exarg_T *eap;
752+{
753+ char_u *p;
754+ int from, to;
755+ int i;
756+ int lower;
757+ int digit;
758+ int n;
759+
760+ if (*eap->arg == NUL && eap->forceit)
761+ /* clear all marks */
762+ clrallmarks(curbuf);
763+ else if (eap->forceit)
764+ EMSG(_(e_invarg));
765+ else if (*eap->arg == NUL)
766+ EMSG(_(e_argreq));
767+ else
768+ {
769+ /* clear specified marks only */
770+ for (p = eap->arg; *p != NUL; ++p)
771+ {
772+ lower = ASCII_ISLOWER(*p);
773+ digit = VIM_ISDIGIT(*p);
774+ if (lower || digit || ASCII_ISUPPER(*p))
775+ {
776+ if (p[1] == '-')
777+ {
778+ /* clear range of marks */
779+ from = *p;
780+ to = p[2];
781+ if (!(lower ? ASCII_ISLOWER(p[2])
782+ : (digit ? VIM_ISDIGIT(p[2])
783+ : ASCII_ISUPPER(p[2])))
784+ || to < from)
785+ {
786+ EMSG2(_(e_invarg2), p);
787+ return;
788+ }
789+ p += 2;
790+ }
791+ else
792+ /* clear one lower case mark */
793+ from = to = *p;
794+
795+ for (i = from; i <= to; ++i)
796+ {
797+ if (lower)
798+ curbuf->b_namedm[i - 'a'].lnum = 0;
799+ else
800+ {
801+ if (digit)
802+ n = i - '0' + NMARKS;
803+ else
804+ n = i - 'A';
805+ namedfm[n].fmark.mark.lnum = 0;
806+ vim_free(namedfm[n].fname);
807+ namedfm[n].fname = NULL;
808+ }
809+ }
810+ }
811+ else
812+ switch (*p)
813+ {
814+ case '"': curbuf->b_last_cursor.lnum = 0; break;
815+ case '^': curbuf->b_last_insert.lnum = 0; break;
816+ case '.': curbuf->b_last_change.lnum = 0; break;
817+ case '[': curbuf->b_op_start.lnum = 0; break;
818+ case ']': curbuf->b_op_end.lnum = 0; break;
819+#ifdef FEAT_VISUAL
820+ case '<': curbuf->b_visual_start.lnum = 0; break;
821+ case '>': curbuf->b_visual_end.lnum = 0; break;
822+#endif
823+ case ' ': break;
824+ default: EMSG2(_(e_invarg2), p);
825+ return;
826+ }
827+ }
828+ }
829+}
830+
746831 #if defined(FEAT_JUMPLIST) || defined(PROTO)
747832 /*
748833 * print the jumplist
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/misc1.c
--- a/src/misc1.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/misc1.c Mon Sep 13 20:26:32 2004 +0000
@@ -8352,7 +8352,8 @@
83528352 buffer = eval_to_string(cmd + 1, &p);
83538353 else
83548354 #endif
8355- buffer = get_cmd_output(cmd, (flags & EW_SILENT) ? SHELL_SILENT : 0);
8355+ buffer = get_cmd_output(cmd, NULL,
8356+ (flags & EW_SILENT) ? SHELL_SILENT : 0);
83568357 vim_free(cmd);
83578358 if (buffer == NULL)
83588359 return 0;
@@ -8451,8 +8452,9 @@
84518452 * Returns an allocated string, or NULL for error.
84528453 */
84538454 char_u *
8454-get_cmd_output(cmd, flags)
8455+get_cmd_output(cmd, infile, flags)
84558456 char_u *cmd;
8457+ char_u *infile; /* optional input file name */
84568458 int flags; /* can be SHELL_SILENT */
84578459 {
84588460 char_u *tempname;
@@ -8473,7 +8475,7 @@
84738475 }
84748476
84758477 /* Add the redirection stuff */
8476- command = make_filter_cmd(cmd, NULL, tempname);
8478+ command = make_filter_cmd(cmd, infile, tempname);
84778479 if (command == NULL)
84788480 goto done;
84798481
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/normal.c
--- a/src/normal.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/normal.c Mon Sep 13 20:26:32 2004 +0000
@@ -1078,8 +1078,11 @@
10781078 goto normal_end;
10791079 }
10801080
1081- msg_didout = FALSE; /* don't scroll screen up for normal command */
1082- msg_col = 0;
1081+ if (ca.cmdchar != K_IGNORE)
1082+ {
1083+ msg_didout = FALSE; /* don't scroll screen up for normal command */
1084+ msg_col = 0;
1085+ }
10831086
10841087 #ifdef FEAT_VISUAL
10851088 old_pos = curwin->w_cursor; /* remember where cursor was */
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/option.c
--- a/src/option.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/option.c Mon Sep 13 20:26:32 2004 +0000
@@ -2868,6 +2868,21 @@
28682868 options[opt_idx].def_val[VI_DEFAULT] = p_enc;
28692869 options[opt_idx].flags |= P_DEF_ALLOCED;
28702870
2871+#if defined(MSDOS) || defined(MSWIN) || defined(OS2) || defined(MACOS) \
2872+ || defined(VMS)
2873+ if (STRCMP(p_enc, "latin1") == 0
2874+# ifdef FEAT_MBYTE
2875+ || enc_utf8
2876+# endif
2877+ )
2878+ {
2879+ /* Adjust the default for 'isprint' to match latin1. */
2880+ set_string_option_direct((char_u *)"isp", -1,
2881+ (char_u *)"@,161-255", OPT_FREE);
2882+ (void)init_chartab();
2883+ }
2884+#endif
2885+
28712886 # if defined(WIN3264) && !defined(FEAT_GUI)
28722887 /* Win32 console: When GetACP() returns a different value from
28732888 * GetConsoleCP() set 'termencoding'. */
@@ -4673,6 +4688,7 @@
46734688 char_u *s, *p;
46744689 int did_chartab = FALSE;
46754690 char_u **gvarp;
4691+ int free_oldval = (options[opt_idx].flags & P_ALLOCED);
46764692
46774693 /* Get the global option to compare with, otherwise we would have to check
46784694 * two values for all local options. */
@@ -5818,8 +5834,10 @@
58185834 #endif
58195835 /*
58205836 * Free string options that are in allocated memory.
5837+ * Use "free_oldval", because recursiveness may change the flags under
5838+ * our fingers (esp. init_highlight()).
58215839 */
5822- if (options[opt_idx].flags & P_ALLOCED)
5840+ if (free_oldval)
58235841 free_string_option(oldval);
58245842 if (new_value_alloced)
58255843 options[opt_idx].flags |= P_ALLOCED;
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/os_riscos.c
--- a/src/os_riscos.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/os_riscos.c Mon Sep 13 20:26:32 2004 +0000
@@ -654,7 +654,7 @@
654654 if (buf == NULL)
655655 return -1;
656656 sprintf((char *)buf, "which %s", name);
657- p = get_cmd_output(buf, SHELL_SILENT);
657+ p = get_cmd_output(buf, NULL, SHELL_SILENT);
658658 vim_free(buf);
659659 if (p == NULL)
660660 return -1;
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/os_win32.c
--- a/src/os_win32.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/os_win32.c Mon Sep 13 20:26:32 2004 +0000
@@ -3926,10 +3926,10 @@
39263926 else if (s[0] == ESC && len >= 3-1 && s[1] == '|')
39273927 {
39283928 #ifdef MCH_WRITE_DUMP
3929- char_u* old_s = s;
3929+ char_u *old_s = s;
39303930 #endif
3931- char_u* p;
3932- int arg1 = 0, arg2 = 0;
3931+ char_u *p;
3932+ int arg1 = 0, arg2 = 0;
39333933
39343934 switch (s[2])
39353935 {
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/po/sv.po
--- a/src/po/sv.po Mon Sep 06 17:44:46 2004 +0000
+++ b/src/po/sv.po Mon Sep 13 20:26:32 2004 +0000
@@ -5,7 +5,7 @@
55 msgstr ""
66 "Project-Id-Version: Vim 6.2\n"
77 "POT-Creation-Date: 2004-01-30 11:57+0100\n"
8-"PO-Revision-Date: 2004-04-24 21:54+0200\n"
8+"PO-Revision-Date: 2004-09-07 17:10%z\n"
99 "Last-Translator: Johan Svedberg <johan@svedberg.pp.se>\n"
1010 "Language-Team: Swedish <sv@li.org>\n"
1111 "MIME-Version: 1.0\n"
@@ -1357,7 +1357,7 @@
13571357
13581358 #: ex_docmd.c:8033
13591359 msgid "E194: No alternate file name to substitute for '#'"
1360-msgstr "E194: Inget alternativt filnamn att byta ut '#' med"
1360+msgstr "E194: Inget alternativt filnamn att ersätta '#' med"
13611361
13621362 #: ex_docmd.c:8064
13631363 msgid "E495: no autocommand file name to substitute for \"<afile>\""
@@ -1369,11 +1369,11 @@
13691369
13701370 #: ex_docmd.c:8083
13711371 msgid "E497: no autocommand match name to substitute for \"<amatch>\""
1372-msgstr "E497: inget autokommando-träffnamn att byta ut \"<amatch>\" med"
1372+msgstr "E497: inget autokommando-träffnamn att ersätta \"<amatch>\" med"
13731373
13741374 #: ex_docmd.c:8093
13751375 msgid "E498: no :source file name to substitute for \"<sfile>\""
1376-msgstr "E498: inget :source-filnamn att byta ut \"<sfile>\" med"
1376+msgstr "E498: inget :source-filnamn att ersätta \"<sfile>\" med"
13771377
13781378 #: ex_docmd.c:8134
13791379 #, no-c-format
@@ -3263,7 +3263,7 @@
32633263
32643264 #: main.c:2533 main.c:2553
32653265 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
3266-msgstr "-font <typsnitt>\t\tAnvänd <typsnitt> för vanlig text (även: -fn)"
3266+msgstr "-font <typsnitt>\tAnvänd <typsnitt> för vanlig text (även: -fn)"
32673267
32683268 #: main.c:2534
32693269 msgid "-boldfont <font>\tUse <font> for bold text"
@@ -6314,7 +6314,7 @@
63146314
63156315 #: globals.h:1240
63166316 msgid "E33: No previous substitute regular expression"
6317-msgstr "E33: Inget tidigare utbytningsreguljäruttryck"
6317+msgstr "E33: Inget tidigare reguljärt uttryck för ersättning"
63186318
63196319 #: globals.h:1241
63206320 msgid "E34: No previous command"
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/proto/ex_eval.pro
--- a/src/proto/ex_eval.pro Mon Sep 06 17:44:46 2004 +0000
+++ b/src/proto/ex_eval.pro Mon Sep 13 20:26:32 2004 +0000
@@ -23,6 +23,8 @@
2323 void ex_catch __ARGS((exarg_T *eap));
2424 void ex_finally __ARGS((exarg_T *eap));
2525 void ex_endtry __ARGS((exarg_T *eap));
26+void enter_cleanup __ARGS((cleanup_T *csp));
27+void leave_cleanup __ARGS((cleanup_T *csp));
2628 int cleanup_conditionals __ARGS((struct condstack *cstack, int searched_cond, int inclusive));
2729 void ex_endfunction __ARGS((exarg_T *eap));
2830 int has_while_cmd __ARGS((char_u *p));
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/proto/mark.pro
--- a/src/proto/mark.pro Mon Sep 06 17:44:46 2004 +0000
+++ b/src/proto/mark.pro Mon Sep 13 20:26:32 2004 +0000
@@ -11,6 +11,7 @@
1111 void clrallmarks __ARGS((buf_T *buf));
1212 char_u *fm_getname __ARGS((fmark_T *fmark, int lead_len));
1313 void do_marks __ARGS((exarg_T *eap));
14+void ex_delmarks __ARGS((exarg_T *eap));
1415 void ex_jumps __ARGS((exarg_T *eap));
1516 void ex_changes __ARGS((exarg_T *eap));
1617 void mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/proto/misc1.pro
--- a/src/proto/misc1.pro Mon Sep 06 17:44:46 2004 +0000
+++ b/src/proto/misc1.pro Mon Sep 13 20:26:32 2004 +0000
@@ -81,7 +81,7 @@
8181 int match_suffix __ARGS((char_u *fname));
8282 int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
8383 void addfile __ARGS((garray_T *gap, char_u *f, int flags));
84-char_u *get_cmd_output __ARGS((char_u *cmd, int flags));
84+char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
8585 void FreeWild __ARGS((int count, char_u **files));
8686 int goto_im __ARGS((void));
8787 /* vim: set ft=c : */
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/regexp.c
--- a/src/regexp.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/regexp.c Mon Sep 13 20:26:32 2004 +0000
@@ -33,8 +33,8 @@
3333 * precedence is structured in regular expressions. Serious changes in
3434 * regular-expression syntax might require a total rethink.
3535 *
36- * Changes have been made by Tony Andrews, Olaf 'Rhialto' Seibert, Robert Webb
37- * and Bram Moolenaar.
36+ * Changes have been made by Tony Andrews, Olaf 'Rhialto' Seibert, Robert
37+ * Webb, Ciaran McCreesh and Bram Moolenaar.
3838 * Named character class support added by Walter Briscoe (1998 Jul 01)
3939 */
4040
@@ -376,9 +376,14 @@
376376 * \t - Tab (TAB).
377377 * \e - Escape (ESC).
378378 * \b - Backspace (Ctrl_H).
379+ * \d - Character code in decimal, eg \d123
380+ * \o - Character code in octal, eg \o80
381+ * \x - Character code in hex, eg \x4a
382+ * \u - Multibyte character code, eg \u20ac
383+ * \U - Long multibyte character code, eg \U12345678
379384 */
380385 static char_u REGEXP_INRANGE[] = "]^-n\\";
381-static char_u REGEXP_ABBR[] = "nrteb";
386+static char_u REGEXP_ABBR[] = "nrtebdoxuU";
382387
383388 static int backslash_trans __ARGS((int c));
384389 static int skip_class_name __ARGS((char_u **pp));
@@ -681,6 +686,10 @@
681686 static int peekchr __ARGS((void));
682687 static void skipchr __ARGS((void));
683688 static void ungetchr __ARGS((void));
689+static int gethexchrs __ARGS((int maxinputlen));
690+static int getoctchrs __ARGS((void));
691+static int getdecchrs __ARGS((void));
692+static int coll_get_char __ARGS((void));
684693 static void regcomp_start __ARGS((char_u *expr, int flags));
685694 static char_u *reg __ARGS((int, int *));
686695 static char_u *regbranch __ARGS((int *flagp));
@@ -1722,6 +1731,42 @@
17221731 break;
17231732 }
17241733
1734+ case 'd': /* %d123 decimal */
1735+ case 'o': /* %o123 octal */
1736+ case 'x': /* %xab hex 2 */
1737+ case 'u': /* %uabcd hex 4 */
1738+ case 'U': /* %U1234abcd hex 8 */
1739+ {
1740+ int i;
1741+
1742+ switch (c)
1743+ {
1744+ case 'd': i = getdecchrs(); break;
1745+ case 'o': i = getoctchrs(); break;
1746+ case 'x': i = gethexchrs(2); break;
1747+ case 'u': i = gethexchrs(4); break;
1748+ case 'U': i = gethexchrs(8); break;
1749+ default: i = -1; break;
1750+ }
1751+
1752+ if (i < 0)
1753+ EMSG_M_RET_NULL(
1754+ _("E678: Invalid character after %s%%[dxouU]"),
1755+ reg_magic == MAGIC_ALL);
1756+ ret = regnode(EXACTLY);
1757+ if (i == 0)
1758+ regc(0x0a);
1759+ else
1760+#ifdef FEAT_MBYTE
1761+ regmbc(i);
1762+#else
1763+ regc(i);
1764+#endif
1765+ regc(NUL);
1766+ *flagp |= HASWIDTH;
1767+ break;
1768+ }
1769+
17251770 default:
17261771 if (VIM_ISDIGIT(c) || c == '<' || c == '>')
17271772 {
@@ -1816,6 +1861,11 @@
18161861 else
18171862 #endif
18181863 endc = *regparse++;
1864+
1865+ /* Handle \o40, \x20 and \u20AC style sequences */
1866+ if (endc == '\\' && !cpo_lit)
1867+ endc = coll_get_char();
1868+
18191869 if (startc > endc)
18201870 EMSG_RET_NULL(_(e_invrange));
18211871 #ifdef FEAT_MBYTE
@@ -1875,6 +1925,22 @@
18751925 regparse++;
18761926 startc = -1;
18771927 }
1928+ else if (*regparse == 'd'
1929+ || *regparse == 'o'
1930+ || *regparse == 'x'
1931+ || *regparse == 'u'
1932+ || *regparse == 'U')
1933+ {
1934+ startc = coll_get_char();
1935+ if (startc == 0)
1936+ regc(0x0a);
1937+ else
1938+#ifdef FEAT_MBYTE
1939+ regmbc(startc);
1940+#else
1941+ regc(startc);
1942+#endif
1943+ }
18781944 else
18791945 {
18801946 startc = backslash_trans(*regparse++);
@@ -2517,6 +2583,120 @@
25172583 }
25182584
25192585 /*
2586+ * get and return the value of the hex string immediately after the current
2587+ * position. Return -1 for invalid, or 0-255 for valid. Position is updated:
2588+ * blahblah\%x20asdf
2589+ * before-^ ^-after
2590+ * The parameter controls the maximum number of input characters. This will be
2591+ * 2 when reading a \%x20 sequence and 4 when reading a \%u20AC sequence.
2592+ */
2593+ static int
2594+gethexchrs(maxinputlen)
2595+ int maxinputlen;
2596+{
2597+ int nr = 0;
2598+ int c;
2599+ int i;
2600+
2601+ for (i = 0; i < maxinputlen; ++i)
2602+ {
2603+ c = regparse[0];
2604+ if (!vim_isxdigit(c))
2605+ break;
2606+ nr <<= 4;
2607+ nr |= hex2nr(c);
2608+ ++regparse;
2609+ }
2610+
2611+ if (i == 0)
2612+ return -1;
2613+ return nr;
2614+}
2615+
2616+/*
2617+ * get and return the value of the decimal string immediately after the
2618+ * current position. Return -1 for invalid. Consumes all digits.
2619+ */
2620+ static int
2621+getdecchrs()
2622+{
2623+ int nr = 0;
2624+ int c;
2625+ int i;
2626+
2627+ for (i = 0; ; ++i)
2628+ {
2629+ c = regparse[0];
2630+ if (c < '0' || c > '9')
2631+ break;
2632+ nr *= 10;
2633+ nr += c - '0';
2634+ ++regparse;
2635+ }
2636+
2637+ if (i == 0)
2638+ return -1;
2639+ return nr;
2640+}
2641+
2642+/*
2643+ * get and return the value of the octal string immediately after the current
2644+ * position. Return -1 for invalid, or 0-255 for valid. Smart enough to handle
2645+ * numbers > 377 correctly (for example, 400 is treated as 40) and doesn't
2646+ * treat 8 or 9 as recognised characters. Position is updated:
2647+ * blahblah\%o210asdf
2648+ * before-^ ^-after
2649+ */
2650+ static int
2651+getoctchrs()
2652+{
2653+ int nr = 0;
2654+ int c;
2655+ int i;
2656+
2657+ for (i = 0; i < 3 && nr < 040; ++i)
2658+ {
2659+ c = regparse[0];
2660+ if (c < '0' || c > '7')
2661+ break;
2662+ nr <<= 3;
2663+ nr |= hex2nr(c);
2664+ ++regparse;
2665+ }
2666+
2667+ if (i == 0)
2668+ return -1;
2669+ return nr;
2670+}
2671+
2672+/*
2673+ * Get a number after a backslash that is inside [].
2674+ * When nothing is recognized return a backslash.
2675+ */
2676+ static int
2677+coll_get_char()
2678+{
2679+ int nr = -1;
2680+
2681+ switch (*regparse++)
2682+ {
2683+ case 'd': nr = getdecchrs(); break;
2684+ case 'o': nr = getoctchrs(); break;
2685+ case 'x': nr = gethexchrs(2); break;
2686+ case 'u': nr = gethexchrs(4); break;
2687+ case 'U': nr = gethexchrs(8); break;
2688+ }
2689+ if (nr < 0)
2690+ {
2691+ /* If getting the number fails be backwards compatible: the character
2692+ * is a backslash. */
2693+ --regparse;
2694+ nr = '\\';
2695+ }
2696+ return nr;
2697+}
2698+
2699+/*
25202700 * read_limits - Read two integers to be taken as a minimum and maximum.
25212701 * If the first character is '-', then the range is reversed.
25222702 * Should end with 'end'. If minval is missing, zero is default, if maxval is
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/structs.h
--- a/src/structs.h Mon Sep 06 17:44:46 2004 +0000
+++ b/src/structs.h Mon Sep 13 20:26:32 2004 +0000
@@ -670,6 +670,17 @@
670670 #define ET_ERROR 1 /* error exception */
671671 #define ET_INTERRUPT 2 /* interrupt exception triggered by Ctrl-C */
672672
673+/*
674+ * Structure to save the error/interrupt/exception state between calls to
675+ * enter_cleanup() and leave_cleanup(). Must be allocated as an automatic
676+ * variable by the (common) caller of these functions.
677+ */
678+typedef struct cleanup_stuff cleanup_T;
679+struct cleanup_stuff
680+{
681+ int pending; /* error/interrupt/exception state */
682+ except_T *exception; /* exception value */
683+};
673684
674685 #ifdef FEAT_SYN_HL
675686 /* struct passed to in_id_list() */
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/syntax.c
--- a/src/syntax.c Mon Sep 06 17:44:46 2004 +0000
+++ b/src/syntax.c Mon Sep 13 20:26:32 2004 +0000
@@ -6016,7 +6016,18 @@
60166016 * If syntax highlighting is enabled load the highlighting for it.
60176017 */
60186018 if (get_var_value((char_u *)"g:syntax_on") != NULL)
6019- (void)cmd_runtime((char_u *)"syntax/syncolor.vim", TRUE);
6019+ {
6020+ static int recursive = 0;
6021+
6022+ if (recursive >= 5)
6023+ EMSG(_("E679: recursive loop loading syncolor.vim"));
6024+ else
6025+ {
6026+ ++recursive;
6027+ (void)cmd_runtime((char_u *)"syntax/syncolor.vim", TRUE);
6028+ --recursive;
6029+ }
6030+ }
60206031 #endif
60216032 }
60226033
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/testdir/test.ok
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/testdir/test.ok Mon Sep 13 20:26:32 2004 +0000
@@ -0,0 +1,92 @@
1+Results of test49.vim:
2+*** Test 1: OK (34695)
3+*** Test 2: OK (34695)
4+*** Test 3: OK (1384648195)
5+*** Test 4: OK (32883)
6+*** Test 5: OK (32883)
7+*** Test 6: OK (603978947)
8+*** Test 7: OK (90563)
9+*** Test 8: OK (562493431)
10+*** Test 9: OK (363)
11+*** Test 10: OK (559615)
12+*** Test 11: OK (2049)
13+*** Test 12: OK (352256)
14+*** Test 13: OK (145)
15+*** Test 14: OK (42413)
16+*** Test 15: OK (42413)
17+*** Test 16: OK (8722)
18+*** Test 17: OK (285127993)
19+*** Test 18: OK (67224583)
20+*** Test 19: OK (69275973)
21+*** Test 20: OK (1874575085)
22+*** Test 21: OK (147932225)
23+*** Test 22: OK (4161)
24+*** Test 23: OK (49)
25+*** Test 24: OK (41)
26+*** Test 25: OK (260177811)
27+*** Test 26: OK (1681500476)
28+*** Test 27: OK (1996459)
29+*** Test 28: OK (1996459)
30+*** Test 29: OK (170428555)
31+*** Test 30: OK (190905173)
32+*** Test 31: OK (190905173)
33+*** Test 32: OK (354833067)
34+--- Test 33: sum = 178275600 (ok)
35+*** Test 33: OK (1216907538)
36+*** Test 34: OK (2146584868)
37+*** Test 35: OK (2146584868)
38+*** Test 36: OK (1071644672)
39+*** Test 37: OK (1071644672)
40+*** Test 38: OK (357908480)
41+*** Test 39: OK (357908480)
42+*** Test 40: OK (357908480)
43+*** Test 41: OK (3076095)
44+*** Test 42: OK (1505155949)
45+*** Test 43: OK (1157763329)
46+*** Test 44: OK (1031761407)
47+*** Test 45: OK (1157763329)
48+*** Test 46: OK (739407)
49+*** Test 47: OK (371213935)
50+*** Test 48: OK (756255461)
51+*** Test 49: OK (179000669)
52+*** Test 50: OK (363550045)
53+*** Test 51: OK (40744667)
54+*** Test 52: OK (1247112011)
55+*** Test 53: OK (131071)
56+*** Test 54: OK (2047)
57+*** Test 55: OK (1023)
58+*** Test 56: OK (511)
59+*** Test 57: OK (2147450880)
60+*** Test 58: OK (624945)
61+*** Test 59: OK (2038431743)
62+*** Test 60: OK (311511339)
63+*** Test 61: OK (374889517)
64+*** Test 62: OK (286331153)
65+*** Test 63: OK (236978127)
66+*** Test 64: OK (1499645335)
67+*** Test 65: OK (70187)
68+*** Test 66: OK (5464)
69+*** Test 67: OK (212514423)
70+*** Test 68: OK (212514423)
71+*** Test 69: OK (8995471)
72+*** Test 70: OK (69544277)
73+*** Test 71: OK (34886997)
74+*** Test 72: OK (1789569365)
75+*** Test 73: OK (9032615)
76+*** Test 74: OK (224907669)
77+*** Test 75: OK (2000403408)
78+*** Test 76: OK (1610087935)
79+*** Test 77: OK (1388671)
80+*** Test 78: OK (134217728)
81+*** Test 79: OK (70288929)
82+*** Test 80: OK (17895765)
83+*** Test 81: OK (387)
84+*** Test 82: OK (8454401)
85+*** Test 83: OK (2835)
86+*** Test 84: OK (934782101)
87+*** Test 85: OK (198689)
88+--- Test 86: All tests were run with throwing exceptions on error.
89+ The $VIMNOERRTHROW control is not configured.
90+--- Test 86: All tests were run with throwing exceptions on interrupt.
91+ The $VIMNOINTTHROW control is not configured.
92+*** Test 86: OK (50443995)
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/testdir/test24.in
Binary file src/testdir/test24.in has changed
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/testdir/test24.ok
--- a/src/testdir/test24.ok Mon Sep 06 17:44:46 2004 +0000
+++ b/src/testdir/test24.ok Mon Sep 13 20:26:32 2004 +0000
@@ -5,3 +5,15 @@
55 test text test text
66 test text test text
77 test text test text
8+test text test text x61
9+test text test text x60-x64
10+test text test text x78 5
11+test text test text o143
12+test text test text o140-o144
13+test text test text o41 7
14+test text test text \%x42
15+test text test text \%o103
16+test text test text [\x00]
17+test text test text [\x00-\x10]
18+test text test text [\x-z]
19+test text test text [\u-z]
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/testdir/test44.in
--- a/src/testdir/test44.in Mon Sep 06 17:44:46 2004 +0000
+++ b/src/testdir/test44.in Mon Sep 13 20:26:32 2004 +0000
@@ -21,6 +21,12 @@
2121 /ม่
2222 x:" find word by change of word class
2323 /ち\<カヨ\>は
24+x:" Test \%u, [\u] and friends
25+/\%u20ac
26+x/[\u4f7f\u5929]\+
27+x/\%U12345678
28+x/[\U1234abcd\u1234\uabcd]
29+x/\%d21879b
2430 x:?^1?,$w! test.out
2531 :e! test.out
2632 G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב
@@ -42,3 +48,8 @@
4248 9 หม่x อมx
4349 a อมx หม่x
4450 b ちカヨは
51+c x ¬€x
52+d 天使x
53+e ü’…™¸y
54+f ü’Š¯z
55+g a啷bb
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/testdir/test44.ok
--- a/src/testdir/test44.ok Mon Sep 06 17:44:46 2004 +0000
+++ b/src/testdir/test44.ok Mon Sep 13 20:26:32 2004 +0000
@@ -9,6 +9,11 @@
99 9 หม่x อx
1010 a อมx หx
1111 b カヨは
12+c x ¬x
13+d 使x
14+e y
15+f z
16+g abb
1217 ב
1318 בג
1419 א
diff -r 3f44e9abe4ec -r 8ff7fd162d3c src/vim.h
--- a/src/vim.h Mon Sep 06 17:44:46 2004 +0000
+++ b/src/vim.h Mon Sep 13 20:26:32 2004 +0000
@@ -753,7 +753,6 @@
753753 #define BLN_CURBUF 1 /* May re-use curbuf for new buffer */
754754 #define BLN_LISTED 2 /* Put new buffer in buffer list */
755755 #define BLN_DUMMY 4 /* Allocating dummy buffer */
756-#define BLN_FORCE 8 /* Don't abort on error */
757756
758757 /* Values for in_cinkeys() */
759758 #define KEY_OPEN_FORW 0x101
Show on old repository browser