docs

docs and guides
git clone git://git.2f30.org/docs
Log | Files | Refs

commit 855cda47a994cedd54cce06ca0e315d5d2201675
parent cf1fabf2d15d7db636c79f8ec7c4fbe72a0fbba0
Author: sin <sin@2f30.org>
Date:   Thu, 27 Jun 2013 17:50:58 +0100

Add edcheat

Diffstat:
Aedcheat.ps | 1178+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 1178 insertions(+), 0 deletions(-)

diff --git a/edcheat.ps b/edcheat.ps @@ -0,0 +1,1178 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 24 24 571 818 +%%Title: Enscript Output +%%For: Lazaros Koromilas,,, +%%Creator: GNU Enscript 1.6.5.2 +%%CreationDate: Wed Sep 19 15:50:37 2012 +%%Orientation: Portrait +%%Pages: (atend) +%%DocumentMedia: A4 595 842 0 () () +%%DocumentNeededResources: (atend) +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +%%BeginResource: procset Enscript-Prolog 1.6.5 2 +% +% Procedures. +% + +/_S { % save current state + /_s save def +} def +/_R { % restore from saved state + _s restore +} def + +/S { % showpage protecting gstate + gsave + showpage + grestore +} bind def + +/MF { % fontname newfontname -> - make a new encoded font + /newfontname exch def + /fontname exch def + + /fontdict fontname findfont def + /newfont fontdict maxlength dict def + + fontdict { + exch + dup /FID eq { + % skip FID pair + pop pop + } { + % copy to the new font dictionary + exch newfont 3 1 roll put + } ifelse + } forall + + newfont /FontName newfontname put + + % insert only valid encoding vectors + encoding_vector length 256 eq { + newfont /Encoding encoding_vector put + } if + + newfontname newfont definefont pop +} def + +/MF_PS { % fontname newfontname -> - make a new font preserving its enc + /newfontname exch def + /fontname exch def + + /fontdict fontname findfont def + /newfont fontdict maxlength dict def + + fontdict { + exch + dup /FID eq { + % skip FID pair + pop pop + } { + % copy to the new font dictionary + exch newfont 3 1 roll put + } ifelse + } forall + + newfont /FontName newfontname put + + newfontname newfont definefont pop +} def + +/SF { % fontname width height -> - set a new font + /height exch def + /width exch def + + findfont + [width 0 0 height 0 0] makefont setfont +} def + +/SUF { % fontname width height -> - set a new user font + /height exch def + /width exch def + + /F-gs-user-font MF + /F-gs-user-font width height SF +} def + +/SUF_PS { % fontname width height -> - set a new user font preserving its enc + /height exch def + /width exch def + + /F-gs-user-font MF_PS + /F-gs-user-font width height SF +} def + +/M {moveto} bind def +/s {show} bind def + +/Box { % x y w h -> - define box path + /d_h exch def /d_w exch def /d_y exch def /d_x exch def + d_x d_y moveto + d_w 0 rlineto + 0 d_h rlineto + d_w neg 0 rlineto + closepath +} def + +/bgs { % x y height blskip gray str -> - show string with bg color + /str exch def + /gray exch def + /blskip exch def + /height exch def + /y exch def + /x exch def + + gsave + x y blskip sub str stringwidth pop height Box + gray setgray + fill + grestore + x y M str s +} def + +/bgcs { % x y height blskip red green blue str -> - show string with bg color + /str exch def + /blue exch def + /green exch def + /red exch def + /blskip exch def + /height exch def + /y exch def + /x exch def + + gsave + x y blskip sub str stringwidth pop height Box + red green blue setrgbcolor + fill + grestore + x y M str s +} def + +% Highlight bars. +/highlight_bars { % nlines lineheight output_y_margin gray -> - + gsave + setgray + /ymarg exch def + /lineheight exch def + /nlines exch def + + % This 2 is just a magic number to sync highlight lines to text. + 0 d_header_y ymarg sub 2 sub translate + + /cw d_output_w cols div def + /nrows d_output_h ymarg 2 mul sub lineheight div cvi def + + % for each column + 0 1 cols 1 sub { + cw mul /xp exch def + + % for each rows + 0 1 nrows 1 sub { + /rn exch def + rn lineheight mul neg /yp exch def + rn nlines idiv 2 mod 0 eq { + % Draw highlight bar. 4 is just a magic indentation. + xp 4 add yp cw 8 sub lineheight neg Box fill + } if + } for + } for + + grestore +} def + +% Line highlight bar. +/line_highlight { % x y width height gray -> - + gsave + /gray exch def + Box gray setgray fill + grestore +} def + +% Column separator lines. +/column_lines { + gsave + .1 setlinewidth + 0 d_footer_h translate + /cw d_output_w cols div def + 1 1 cols 1 sub { + cw mul 0 moveto + 0 d_output_h rlineto stroke + } for + grestore +} def + +% Column borders. +/column_borders { + gsave + .1 setlinewidth + 0 d_footer_h moveto + 0 d_output_h rlineto + d_output_w 0 rlineto + 0 d_output_h neg rlineto + closepath stroke + grestore +} def + +% Do the actual underlay drawing +/draw_underlay { + ul_style 0 eq { + ul_str true charpath stroke + } { + ul_str show + } ifelse +} def + +% Underlay +/underlay { % - -> - + gsave + 0 d_page_h translate + d_page_h neg d_page_w atan rotate + + ul_gray setgray + ul_font setfont + /dw d_page_h dup mul d_page_w dup mul add sqrt def + ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto + draw_underlay + grestore +} def + +/user_underlay { % - -> - + gsave + ul_x ul_y translate + ul_angle rotate + ul_gray setgray + ul_font setfont + 0 0 ul_h_ptsize 2 div sub moveto + draw_underlay + grestore +} def + +% Page prefeed +/page_prefeed { % bool -> - + statusdict /prefeed known { + statusdict exch /prefeed exch put + } { + pop + } ifelse +} def + +% Wrapped line markers +/wrapped_line_mark { % x y charwith charheight type -> - + /type exch def + /h exch def + /w exch def + /y exch def + /x exch def + + type 2 eq { + % Black boxes (like TeX does) + gsave + 0 setlinewidth + x w 4 div add y M + 0 h rlineto w 2 div 0 rlineto 0 h neg rlineto + closepath fill + grestore + } { + type 3 eq { + % Small arrows + gsave + .2 setlinewidth + x w 2 div add y h 2 div add M + w 4 div 0 rlineto + x w 4 div add y lineto stroke + + x w 4 div add w 8 div add y h 4 div add M + x w 4 div add y lineto + w 4 div h 8 div rlineto stroke + grestore + } { + % do nothing + } ifelse + } ifelse +} def + +% EPSF import. + +/BeginEPSF { + /b4_Inc_state save def % Save state for cleanup + /dict_count countdictstack def % Count objects on dict stack + /op_count count 1 sub def % Count objects on operand stack + userdict begin + /showpage { } def + 0 setgray 0 setlinecap + 1 setlinewidth 0 setlinejoin + 10 setmiterlimit [ ] 0 setdash newpath + /languagelevel where { + pop languagelevel + 1 ne { + false setstrokeadjust false setoverprint + } if + } if +} bind def + +/EndEPSF { + count op_count sub { pos } repeat % Clean up stacks + countdictstack dict_count sub { end } repeat + b4_Inc_state restore +} bind def + +% Check PostScript language level. +/languagelevel where { + pop /gs_languagelevel languagelevel def +} { + /gs_languagelevel 1 def +} ifelse +%%EndResource +%%BeginResource: procset Enscript-Encoding-88591 1.6.5 2 +/encoding_vector [ +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign +/dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus +/comma /hyphen /period /slash +/zero /one /two /three +/four /five /six /seven +/eight /nine /colon /semicolon +/less /equal /greater /question +/at /A /B /C +/D /E /F /G +/H /I /J /K +/L /M /N /O +/P /Q /R /S +/T /U /V /W +/X /Y /Z /bracketleft +/backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c +/d /e /f /g +/h /i /j /k +/l /m /n /o +/p /q /r /s +/t /u /v /w +/x /y /z /braceleft +/bar /braceright /tilde /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling +/currency /yen /brokenbar /section +/dieresis /copyright /ordfeminine /guillemotleft +/logicalnot /hyphen /registered /macron +/degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /bullet +/cedilla /onesuperior /ordmasculine /guillemotright +/onequarter /onehalf /threequarters /questiondown +/Agrave /Aacute /Acircumflex /Atilde +/Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis +/Igrave /Iacute /Icircumflex /Idieresis +/Eth /Ntilde /Ograve /Oacute +/Ocircumflex /Otilde /Odieresis /multiply +/Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls +/agrave /aacute /acircumflex /atilde +/adieresis /aring /ae /ccedilla +/egrave /eacute /ecircumflex /edieresis +/igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute +/ocircumflex /otilde /odieresis /divide +/oslash /ugrave /uacute /ucircumflex +/udieresis /yacute /thorn /ydieresis +] def +%%EndResource +%%EndProlog +%%BeginSetup +%%IncludeResource: font Courier-Bold +%%IncludeResource: font DejaVuSansMono +/HFpt_w 10 def +/HFpt_h 10 def +/Courier-Bold /HF-gs-font MF +/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def +/DejaVuSansMono /F-gs-font MF +/F-gs-font 6 6 SF +/#copies 1 def +% Pagedevice definitions: +gs_languagelevel 1 gt { + << + /Duplex true /PageSize [595 842] + >> setpagedevice +} if +/d_page_w 547 def +/d_page_h 794 def +/d_header_x 0 def +/d_header_y 794 def +/d_header_w 547 def +/d_header_h 0 def +/d_footer_x 0 def +/d_footer_y 0 def +/d_footer_w 547 def +/d_footer_h 0 def +/d_output_w 547 def +/d_output_h 794 def +/cols 2 def +%%EndSetup +%%Page: (1) 1 +%%BeginPageSetup +_S +24 24 translate +/pagenum 1 def +/fname () def +/fdir (.) def +/ftail (.) def +/user_header_p false def +/user_footer_p false def +%%EndPageSetup +5 785 M +(.---------------------------------------------------------------------.) s +5 778 M +(| |) s +5 771 M +(| The Original UNIX Text Editor |) s +5 764 M +(| Ed Cheat Sheet |) s +5 757 M +(| |) s +5 750 M +('---------------------------------------------------------------------') s +5 743 M +(| Peteris Krumins \(peter@catonmat.net\), 2007.08.22 |) s +5 736 M +(| http://www.catonmat.net - good coders code, great reuse |) s +5 729 M +('---------------------------------------------------------------------') s +5 715 M +( ====================== Line Addressing Summary ======================) s +5 701 M +(.----------------.----------------------------------------------------.) s +5 694 M +(| | |) s +5 687 M +(| Address Symbol | Description |) s +5 680 M +(| | |) s +5 673 M +('----------------+----------------------------------------------------') s +5 666 M +(| . | The current line \(address\) in the buffer. |) s +5 659 M +('----------------+----------------------------------------------------') s +5 652 M +(| $ | The last line in the buffer. |) s +5 645 M +('----------------+----------------------------------------------------') s +5 638 M +(| n | The nth, line in the buffer where n is a number |) s +5 631 M +(| | in the range [0,$]. |) s +5 624 M +('----------------+----------------------------------------------------') s +5 617 M +(| $ | The last line in the buffer. |) s +5 610 M +('----------------+----------------------------------------------------') s +5 603 M +(| - | The previous line. This is equivalent to -1 and |) s +5 596 M +(| ^ | may be repeated with cumulative effect. |) s +5 589 M +('----------------+----------------------------------------------------') s +5 582 M +(| -n | The nth previous line, where n is a non-negative |) s +5 575 M +(| ^n | number. |) s +5 568 M +('----------------+----------------------------------------------------') s +5 561 M +(| + | The next line. This is equivalent to +1 and may |) s +5 554 M +(| | be repeated with cumulative effect. |) s +5 547 M +('----------------+----------------------------------------------------') s +5 540 M +(| +n | The nth next line, where n is a non-negative |) s +5 533 M +(| whitespace n | number. |) s +5 526 M +(| | Whitespace followed by a number n is interpreted |) s +5 519 M +(| | as +n. |) s +5 512 M +('----------------+----------------------------------------------------') s +5 505 M +(| , | The first through last lines in the buffer. |) s +5 498 M +(| % | This is equivalent to the address range 1,$. |) s +5 491 M +('----------------+----------------------------------------------------') s +5 484 M +(| ; | The current through last lines in the buffer. |) s +5 477 M +(| | This is equivalent to the address range .,$. |) s +5 470 M +('----------------+----------------------------------------------------') s +5 463 M +(| /re/ | The next line containing the regular |) s +5 456 M +(| | expression re. |) s +5 449 M +(| | The search wraps to the beginning of the buffer |) s +5 442 M +(| | and continues down to the current line, if |) s +5 435 M +(| | necessary. |) s +5 428 M +(| | // repeats the last search. |) s +5 421 M +('----------------+----------------------------------------------------') s +5 414 M +(| ?re? | The previous line containing the regular |) s +5 407 M +(| | expression re. |) s +5 400 M +(| | The search wraps to the end of the buffer and |) s +5 393 M +(| | continues up to the current line, if necessary. |) s +5 386 M +(| | ?? repeats the last search. |) s +5 379 M +('----------------+----------------------------------------------------') s +5 372 M +(| 'lc | The line previously marked by a `k' \(mark\) |) s +5 365 M +(| | command, where lc is a lower case letter. |) s +5 358 M +('----------------'----------------------------------------------------') s +5 344 M +(Each address in a comma-delimited range is interpreted relative) s +5 337 M +(to the current address.) s +5 330 M +(In a semicolon-delimited range, the 1st address is used to set) s +5 323 M +(the current address, and the 2nd address is interpreted) s +5 316 M +(relative to the first.) s +5 295 M +( ========================== Command Summary ==========================) s +5 281 M +(.-------------------------.-------------------------------------------.) s +5 274 M +(| | |) s +5 267 M +(| Command | Description |) s +5 260 M +(| | |) s +5 253 M +('-------------------------+-------------------------------------------') s +5 246 M +(| \(.\)a | Appends text to the buffer after the |) s +5 239 M +(| | addressed line, which may be theaddress |) s +5 232 M +(| | 0 \(zero\). Text is entered in input mode. |) s +5 225 M +(| | The current address is set to last line |) s +5 218 M +(| | entered. |) s +5 211 M +('-------------------------+-------------------------------------------') s +5 204 M +(| \(.,.\)c | Changes lines in the buffer. The |) s +5 197 M +(| | addressed lines are deleted from the |) s +5 190 M +(| | buffer, and text is appended in their |) s +5 183 M +(| | place. |) s +5 176 M +(| | Text is entered in input mode. The |) s +5 169 M +(| | current address is set to last line |) s +5 162 M +(| | entered. |) s +5 155 M +('-------------------------+-------------------------------------------') s +5 148 M +(| \(.,.\)d | Deletes the addressed lines from the |) s +5 141 M +(| | buffer. If there is a line after the |) s +5 134 M +(| | deleted range, then the current address |) s +5 127 M +(| | is set to this line. Otherwise the |) s +5 120 M +(| | current address is set to the line before |) s +5 113 M +(| | the deleted range. |) s +5 106 M +('-------------------------+-------------------------------------------') s +5 99 M +(| e file | Edits file, and sets the default |) s +5 92 M +(| | filename. If file is not specified, then |) s +5 85 M +(| | the default filename is used. Any lines |) s +5 78 M +(| | in the buffer are deleted before the new |) s +5 71 M +(| | file is read. The current address is set |) s +5 64 M +(| | to the last line read. |) s +5 57 M +('-------------------------+-------------------------------------------') s +5 50 M +(| e !command | Edits the standard output of `!command', |) s +5 43 M +(| | \(see !command below\). The default |) s +5 36 M +(| | filename is unchanged. Any lines in the |) s +5 29 M +(| | buffer are deleted before the output of |) s +5 22 M +(| | command is read. The current address is |) s +5 15 M +(| | set to the last line read. |) s +5 8 M +('-------------------------+-------------------------------------------') s +278.5 785 M +(.-------------------------+-------------------------------------------.) s +278.5 778 M +(| E file | Edits file unconditionally. This is |) s +278.5 771 M +(| | similar to the e command, except that |) s +278.5 764 M +(| | unwritten changes are discarded without |) s +278.5 757 M +(| | warning. The current address is set to |) s +278.5 750 M +(| | the last line read. |) s +278.5 743 M +('-------------------------+-------------------------------------------') s +278.5 736 M +(| f file | Sets the default filename to file. If |) s +278.5 729 M +(| | file is not specified, then the default |) s +278.5 722 M +(| | unescaped filename is printed. |) s +278.5 715 M +('-------------------------+-------------------------------------------') s +278.5 708 M +(| \(1,$\)g/re/command-list | Applies command-list to each of the |) s +278.5 701 M +(| | addressed lines matching a regular |) s +278.5 694 M +(| | expression re. The current address is set |) s +278.5 687 M +(| | to the line currently matched before |) s +278.5 680 M +(| | command-list is executed. At the end of |) s +278.5 673 M +(| | the `g' command, the current address is |) s +278.5 666 M +(| | set to the last line affected by |) s +278.5 659 M +(| | command-list. |) s +278.5 652 M +(| | |) s +278.5 645 M +(| | Each command in command-list must be on a |) s +278.5 638 M +(| | separate line, and every line except for |) s +278.5 631 M +(| | the last must be terminated by a |) s +278.5 624 M +(| | back-slash \(\\\). Any commands are allowed, |) s +278.5 617 M +(| | except for `g', `G', `v', and `V'. |) s +278.5 610 M +(| | A newline alone in command-list is |) s +278.5 603 M +(| | equivalent to a `p' command. |) s +278.5 596 M +('-------------------------+-------------------------------------------') s +278.5 589 M +(| \(1,$\)G/re/ | Interactively edits the addressed lines |) s +278.5 582 M +(| | matching a regular expression re. For |) s +278.5 575 M +(| | each matching line, the line is printed, |) s +278.5 568 M +(| | the current address is set, and the user |) s +278.5 561 M +(| | is prompted to enter a command-list. |) s +278.5 554 M +(| | At the end of the `G' command, the |) s +278.5 547 M +(| | current address is set to the last line |) s +278.5 540 M +(| | affected by \(the last\) command-list. |) s +278.5 533 M +(| | |) s +278.5 526 M +(| | The format of command-list is the same as |) s +278.5 519 M +(| | that of the `g' command. A newline alone |) s +278.5 512 M +(| | acts as a null command list. A single `&' |) s +278.5 505 M +(| | repeats the last non-null command list. |) s +278.5 498 M +('-------------------------+-------------------------------------------') s +278.5 491 M +(| H | Toggles the printing of error |) s +278.5 484 M +(| | explanations. By default, explanations |) s +278.5 477 M +(| | are not printed. It is recommended that |) s +278.5 470 M +(| | ed scripts begin with this command to aid |) s +278.5 463 M +(| | in debugging. |) s +278.5 456 M +('-------------------------+-------------------------------------------') s +278.5 449 M +(| h | Prints an explanation of the last error. |) s +278.5 442 M +('-------------------------+-------------------------------------------') s +278.5 435 M +(| \(.\)i | Inserts text in the buffer before the |) s +278.5 428 M +(| | current line. Text is entered in input |) s +278.5 421 M +(| | mode. The current address is set to the |) s +278.5 414 M +(| | last line entered. |) s +278.5 407 M +('-------------------------+-------------------------------------------') s +278.5 400 M +(| \(.,.+1\)j | Joins the addressed lines. The addressed |) s +278.5 393 M +(| | lines are deleted from the buffer and |) s +278.5 386 M +(| | replaced by a single line containing |) s +278.5 379 M +(| | their joined text. The current address is |) s +278.5 372 M +(| | set to the resultant line. |) s +278.5 365 M +('-------------------------+-------------------------------------------') s +278.5 358 M +(| \(.\)klc | Marks a line with a lower case letter lc. |) s +278.5 351 M +(| | The line can then be addressed as 'lc |) s +278.5 344 M +(| | \(i.e., a single quote followed by lc\) in |) s +278.5 337 M +(| | subsequent commands. The mark is not |) s +278.5 330 M +(| | cleared until the line is deleted or |) s +278.5 323 M +(| | otherwise modified. |) s +278.5 316 M +('-------------------------+-------------------------------------------') s +278.5 309 M +(| \(.,.\)l | Prints the addressed lines unambiguously. |) s +278.5 302 M +(| | If invoked from a terminal, ed pauses at |) s +278.5 295 M +(| | the end of each page until a newline is |) s +278.5 288 M +(| | entered. The current address is set to |) s +278.5 281 M +(| | the last line printed. |) s +278.5 274 M +('-------------------------+-------------------------------------------') s +278.5 267 M +(| \(.,.\)m\(.\) | Moves lines in the buffer. The addressed |) s +278.5 260 M +(| | lines are moved to after the right-hand |) s +278.5 253 M +(| | destination address, which may be the |) s +278.5 246 M +(| | address 0 \(zero\). The current address is |) s +278.5 239 M +(| | set to the last line moved. |) s +278.5 232 M +('-------------------------+-------------------------------------------') s +278.5 225 M +(| \(.,.\)n | Prints the addressed lines along with |) s +278.5 218 M +(| | their line nums. The curr. addr is set to |) s +278.5 211 M +(| | the last line printed |) s +278.5 204 M +('-------------------------+-------------------------------------------') s +278.5 197 M +(| \(.,.\)p | Prints the addressed lines. If invoked |) s +278.5 190 M +(| | from a terminal, ed pauses at the end of |) s +278.5 183 M +(| | each page until a newline is entered. |) s +278.5 176 M +(| | The current address is set to the last |) s +278.5 169 M +(| | line printed. |) s +278.5 162 M +('-------------------------+-------------------------------------------') s +278.5 155 M +(| P | Toggles the command prompt on and off. |) s +278.5 148 M +(| | Unless a prompt was specified by with |) s +278.5 141 M +(| | command-line option -p string, the |) s +278.5 134 M +(| | command prompt is by default turned off. |) s +278.5 127 M +('-------------------------+-------------------------------------------') s +278.5 120 M +(| q | Quits ed. |) s +278.5 113 M +('-------------------------+-------------------------------------------') s +278.5 106 M +(| Q | Quits ed unconditionally. This is similar |) s +278.5 99 M +(| | to the q command, except that unwritten |) s +278.5 92 M +(| | changes are discarded without warning. |) s +278.5 85 M +('-------------------------+-------------------------------------------') s +278.5 78 M +(| \($\)r file | Reads file to after the addressed line. |) s +278.5 71 M +(| | If file is not specified, then the |) s +278.5 64 M +(| | default filename is used. If there was no |) s +278.5 57 M +(| | default filename prior to the command, |) s +278.5 50 M +(| | then the default filename is set to file. |) s +278.5 43 M +(| | Otherwise, the default filename is |) s +278.5 36 M +(| | unchanged. The current address is set to |) s +278.5 29 M +(| | the last line read. |) s +278.5 22 M +('-------------------------+-------------------------------------------') s +_R +S +%%Page: (2) 2 +%%BeginPageSetup +_S +24 24 translate +/pagenum 2 def +/fname () def +/fdir (.) def +/ftail (.) def +/user_header_p false def +/user_footer_p false def +%%EndPageSetup +5 785 M +(.-------------------------+-------------------------------------------.) s +5 778 M +(| \($\)r !command | Reads to after the addressed line the |) s +5 771 M +(| | standard output of `!command', |) s +5 764 M +(| | \(see the !command below\). The default |) s +5 757 M +(| | filename is unchanged. The current |) s +5 750 M +(| | address is set to the last line read. |) s +5 743 M +('-------------------------+-------------------------------------------') s +5 736 M +(| \(.,.\)s/re/replacement/ | Replaces text in the addressed lines |) s +5 729 M +(| \(.,.\)s/re/replacement/g | matching a regular expression re with |) s +5 722 M +(| \(.,.\)s/re/replacement/n | replacement. By default, only the first |) s +5 715 M +(| | match in each line is replaced. |) s +5 708 M +(| | If the `g' \(global\) suffix is given, then |) s +5 701 M +(| | every match to be replaced. |) s +5 694 M +(| | The `n' suffix, where n is a positive |) s +5 687 M +(| | number, causes only the n-th match to be |) s +5 680 M +(| | replaced. It is an error if no |) s +5 673 M +(| | substitutions are performed on any |) s +5 666 M +(| | of the addressed lines. The current |) s +5 659 M +(| | address is set the last line affected. |) s +5 652 M +(| | |) s +5 645 M +(| | re and replacement may be delimited by |) s +5 638 M +(| | any character other than space and |) s +5 631 M +(| | newline \(see the `s' command below\). |) s +5 624 M +(| | If one or two of the last delimiters is |) s +5 617 M +(| | omitted, then the last line affected is |) s +5 610 M +(| | printed as though the print suffix `p' |) s +5 603 M +(| | were specified. |) s +5 596 M +(| | |) s +5 589 M +(| | An unescaped `&' in replacement is |) s +5 582 M +(| | replaced by the currently matched text. |) s +5 575 M +(| | The character sequence `\\m', where m is a |) s +5 568 M +(| | number in the range [1,9], is replaced by |) s +5 561 M +(| | the m-th backreference expression of the |) s +5 554 M +(| | matched text. If replacement consists of |) s +5 547 M +(| | a single `%', then replacement from the |) s +5 540 M +(| | last substitution is used. Newlines may |) s +5 533 M +(| | be embedded in replacement if they are |) s +5 526 M +(| | escaped with a backslash \(\\\). |) s +5 519 M +('-------------------------+-------------------------------------------') s +5 512 M +(| \(.,.\)s | Repeats the last substitution. This form |) s +5 505 M +(| | of the `s' command accepts a count suffix |) s +5 498 M +(| | `n', or any combination of the characters |) s +5 491 M +(| | `r', `g', and `p'. |) s +5 484 M +(| | If a count suffix `n' is given, then only |) s +5 477 M +(| | the n-th match is replaced. |) s +5 470 M +(| | The `r' suffix causes the regular |) s +5 463 M +(| | expression of the last search to be used |) s +5 456 M +(| | instead of that of the last substitution. |) s +5 449 M +(| | The `g' suffix toggles the global suffix |) s +5 442 M +(| | of the last substitution. |) s +5 435 M +(| | The `p' suffix toggles the print suffix |) s +5 428 M +(| | of the last substitution. The current |) s +5 421 M +(| | address is set to the last line affected. |) s +5 414 M +('-------------------------+-------------------------------------------') s +5 407 M +(| \(.,.\)t\(.\) | Copies \(i.e., transfers\) the addressed |) s +5 400 M +(| | lines to after the right-hand destination |) s +5 393 M +(| | address, which may be the address |) s +5 386 M +(| | 0 \(zero\). The current address is set to |) s +5 379 M +(| | the last line copied. |) s +5 372 M +('-------------------------+-------------------------------------------') s +5 365 M +(| u | Undoes the last command and restores the |) s +5 358 M +(| | current address to what it was before the |) s +5 351 M +(| | command. The global commands `g', `G', |) s +5 344 M +(| | `v', and `V' are treated as a single |) s +5 337 M +(| | command by undo. `u' is its own inverse. |) s +5 330 M +('-------------------------+-------------------------------------------') s +5 323 M +(| \(1,$\)v/re/command-list | Applies command-list to each of the |) s +5 316 M +(| | addressed lines not matching a regular |) s +5 309 M +(| | expression re. This is similar to the |) s +5 302 M +(| | `g' command. |) s +5 295 M +('-------------------------+-------------------------------------------') s +5 288 M +(| \(1,$\)V/re/ | Interactively edits the addressed lines |) s +5 281 M +(| | not matching a regular expression re. |) s +5 274 M +(| | This is similar to the `G' command. |) s +5 267 M +('-------------------------+-------------------------------------------') s +5 260 M +(| \(1,$\)w file | Writes the addressed lines to file. Any |) s +5 253 M +(| | previous contents of file is lost without |) s +5 246 M +(| | warning. If there is no default filename, |) s +5 239 M +(| | then the default filename is set to file, |) s +5 232 M +(| | otherwise it is unchanged. If no filename |) s +5 225 M +(| | is specified, then the default filename |) s +5 218 M +(| | is used. The current address is unchanged.|) s +5 211 M +('-------------------------+-------------------------------------------') s +5 204 M +(| \(1,$\)wq file | Writes the addressed lines to file, and |) s +5 197 M +(| | then executes a `q' command. |) s +5 190 M +('-------------------------+-------------------------------------------') s +5 183 M +(| \(1,$\)w !command | Writes the addressed lines to the |) s +5 176 M +(| | standard input of `!command', \(see the |) s +5 169 M +(| | !command below\). |) s +5 162 M +(| | The defaultfilename and current address |) s +5 155 M +(| | are unchanged. |) s +5 148 M +('-------------------------+-------------------------------------------') s +5 141 M +(| \(1,$\)W file | Appends the addressed lines to the end of |) s +5 134 M +(| | file. This is similar to the `w' command, |) s +5 127 M +(| | expect that the previous contents of file |) s +5 120 M +(| | is not clobbered. The current address is |) s +5 113 M +(| | unchanged. |) s +5 106 M +('-------------------------+-------------------------------------------') s +5 99 M +(| \(.\)x | Copies \(puts\) the contents of the cut |) s +5 92 M +(| | buffer to after the addressed line. |) s +5 85 M +(| | The current address is set to the last |) s +5 78 M +(| | line copied. |) s +5 71 M +('-------------------------+-------------------------------------------') s +5 64 M +(| \(.,.\)y | Copies \(yanks\) the addressed lines to the |) s +5 57 M +(| | cut buffer. The cut buffer is overwritten |) s +5 50 M +(| | by subsequent `y', `s', `j', `d', or `c' |) s +5 43 M +(| | commands. The current address is |) s +5 36 M +(| | unchanged. |) s +5 29 M +('-------------------------+-------------------------------------------') s +278.5 785 M +(.-------------------------+-------------------------------------------.) s +278.5 778 M +(| \(.+1\)zn | Scrolls n lines at a time starting at |) s +278.5 771 M +(| | addressed line. If n is not specified, |) s +278.5 764 M +(| | then the current window size is used. |) s +278.5 757 M +(| | The current address is set to the last |) s +278.5 750 M +(| | line printed. |) s +278.5 743 M +('-------------------------+-------------------------------------------') s +278.5 736 M +(| !command | Executes command via sh\(1\). If the first |) s +278.5 729 M +(| | character of command is `!', then it is |) s +278.5 722 M +(| | replaced by text of the previous |) s +278.5 715 M +(| | `!command'. ed does not process command |) s +278.5 708 M +(| | for backslash \(\\\) escapes. However, an |) s +278.5 701 M +(| | unescaped `%' is replaced by the default |) s +278.5 694 M +(| | filename. When the shell returns from |) s +278.5 687 M +(| | execution, a `!' is printed to the |) s +278.5 680 M +(| | standard output. The current line is |) s +278.5 673 M +(| | unchanged. |) s +278.5 666 M +('-------------------------+-------------------------------------------') s +278.5 659 M +(| \(.,.\)# | Begins a comment; the rest of the line, |) s +278.5 652 M +(| | up to a newline, is ignored. If a line |) s +278.5 645 M +(| | address followed by a semicolon is given, |) s +278.5 638 M +(| | then the current address is set to that |) s +278.5 631 M +(| | address. Otherwise, the current address |) s +278.5 624 M +(| | is unchanged. |) s +278.5 617 M +('-------------------------+-------------------------------------------') s +278.5 610 M +(| \($\)= | Prints the line number of the addressed |) s +278.5 603 M +(| | line. |) s +278.5 596 M +('-------------------------+-------------------------------------------') s +278.5 589 M +(| \(.+1\)newline | Prints the addressed line, and sets the |) s +278.5 582 M +(| | current address to that line. |) s +278.5 575 M +('-------------------------'-------------------------------------------') s +278.5 561 M +( =====================================================================) s +278.5 547 M +(.---------------------------------------------------------------------.) s +278.5 540 M +(| Peteris Krumins \(peter@catonmat.net\), 2007.08.22 |) s +278.5 533 M +(| http://www.catonmat.net - good coders code, great reuse |) s +278.5 526 M +('---------------------------------------------------------------------') s +_R +S +%%Trailer +%%Pages: 2 +%%DocumentNeededResources: font Courier-Bold DejaVuSansMono +%%EOF