home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / fte037b.zip / fte-0.37 / fte.ipf < prev    next >
Text File  |  1995-11-05  |  53KB  |  1,428 lines

  1. .*! html2ipf 0.2
  2.  
  3. :userdoc.:title.fte Manual
  4.  
  5. :h1.About 
  6. :i1 id=about.About
  7.  
  8. :lines align=center.
  9. fte
  10. .br
  11. Version :hp2.0.37b:ehp2.
  12. .br
  13. (c) Copyright 1995 Marko Macek
  14. .br
  15. :elines.
  16. :p.
  17. :hp1.fte:ehp1. is an OS/2 text mode editor, with a lot of features&colon.
  18. :ul compact.
  19.  :li.Powerful Color Syntax Highlighting for&colon.
  20.   :ul compact.
  21.    :li.C/C++
  22.    :li.REXX
  23.    :li.HTML
  24.    :li.IPF
  25.    :li.Perl
  26.    :li.Ada
  27.    :li.Pascal
  28.    :li.Java
  29.    :li.and various other files...
  30.   :eul.
  31.  :li.Smart Indentation for C/C++ and REXX
  32.  :li.Multiple files/windows
  33.  :li.File limited only by virtual memory
  34.  :li.Configurable keyboard/menus/colors
  35.  :li.Undo/Redo of any number of commands
  36.  :li.Stream/Line/Column blocks
  37.  :li.Ability to edit binary files
  38.  :li.Regular expression search and replace
  39.  :li.Background compilation and compiler error parsing support
  40.  :li.Mouse support
  41.  :li.Automatic word wrap.
  42.  :li.Incremental search.
  43.  :li.Folding
  44. :eul.
  45. :p.
  46. :lines align=center.
  47. The latest version can be always downloaded from&colon.
  48. .br
  49. :hp2.http&colon.//ixtas.fer.uni-lj.si/~markom/fte:ehp2.
  50. .br
  51. :p.
  52. Please send comments/suggestions/bug reports to&colon.
  53. .br
  54. :hp2.Marko.Macek@snet.fer.uni-lj.si:ehp2.
  55. .br
  56. or
  57. .br
  58. :hp2.mark@hermes.si:ehp2.
  59. .br
  60. :elines.
  61.  
  62.  
  63. .br
  64. :h1.Configuration 
  65. :i1 id=config.Configuration
  66.  
  67. :p.
  68. This section covers installation and configuration of editor.
  69.  
  70. .br
  71. :h2.Installation 
  72. :i1 id=install.Installation
  73.  
  74. :p.
  75. The following files are included in the archive&colon.
  76. :dl compact tsize=8 break=all.
  77. :dt.:hp2.README:ehp2.
  78. :dd.Release notes, read first
  79. :dt.:hp2.fte.exe:ehp2.
  80. :dd.Main executable
  81. :dt.:hp2.fte.cfg:ehp2.
  82. :dd.Main configuration file
  83. :dt.:hp2.fte.inf:ehp2.
  84. :dd.This file.
  85. :dt.:hp2.config\*.fte:ehp2.
  86. :dt.Configuration files
  87. :dt.:hp2.clipserv.exe:ehp2.
  88. :dd.Clipboard server (required for PM clipboard support).
  89. :dt.:hp2.cliputil.exe:ehp2.
  90. :dd.Utility to copy/paste to/from clipboard from command line.
  91. :dt.:hp2.file_id.diz:ehp2.
  92. :dd.Program description for BBS upload.
  93. :edl.
  94. :p.
  95. To install, copy :hp1.FTE.EXE:ehp1., :hp1.CLIPSERV.EXE:ehp1., :hp1.CLIPUTIL.EXE:ehp1., 
  96. :hp1.FTE.CFG:ehp1., :hp1.FTE.INF:ehp1. into one directory and and :hp1.*.FTE:ehp1. files
  97. into the other. Then change :hp1.FTE.CFG:ehp1. to point to the :hp1.MAIN.FTE:ehp1. 
  98. file. Then, make sure that :hp1.PATH:ehp1. environment variable points to 
  99. the directory containing the executable.
  100.  
  101. :hp2.fte.exe:ehp2.
  102.  
  103. .br
  104. :h2.Command line options 
  105. :i1 id=cmdarg.Command line options
  106.  
  107. :p.
  108. The command syntax is&colon.
  109. :p.
  110. :hp2.fte [[options] [files] ...]:ehp2.
  111. :p.
  112. Options&colon.
  113. :dl compact tsize=8 break=all.
  114. :dt.:hp2.-!:ehp2.
  115. :dd.Ignore any external configuration file.
  116. :dt.:hp2.-c<file>:ehp2.
  117. :dd.Use specified configuration file.
  118. :dt.:hp2.-#<line>[,<column>]:ehp2.
  119. :dd.Go to line (and column) in next file on command line
  120. :dt.:hp2.-m<MODE>:ehp2.
  121. :dd.Set mode for next files to <MODE>
  122. :dt.:hp2.-m:ehp2.
  123. :dd.Reset to default mode
  124. :dt.:hp2.--:ehp2.
  125. :dd.The rest of the arguments are not options
  126. :dt.:hp2.-+:ehp2.
  127. :dd.The next argument is not an option even if starting with a '-'.
  128. :edl.
  129. :p.
  130. Examples&colon.
  131. :dl compact tsize=8 break=all.
  132. :dt.:hp2.fte -mBIN fte.exe:ehp2.
  133. :dd.load fte.exe in BIN mode
  134. :dt.:hp2.fte -#100,30 win.c:ehp2.
  135. :dd.go to (100,30) in win.c
  136. :dt.:hp2.fte window.cpp:ehp2.
  137. :dd.load file window.cpp
  138. :dt.:hp2.fte -mBIN fte.exe -m fte.cpp:ehp2.
  139. :dd.load fte.exe in binary mode, window.cpp in default mode (C/C++)
  140. :dt.:hp2.fte -mBIN -+ -bla-:ehp2.
  141. :dd.load file -bla- in BIN mode
  142. :dt.:hp2.fte -- -1 -2 -3 -4 -5 -6:ehp2.
  143. :dd..load files -1, -2, -3, -4, -5, -6
  144. :edl.
  145.  
  146. .br
  147. :h2.Configuration file 
  148. :i1 id=cfgfile.Configuration file
  149.  
  150. :p.
  151. If the command line option :hp2.-!:ehp2. is used, editor will not attemp to load
  152. a configuration file and will use default settings built into the
  153. editor executable.
  154. :p.
  155. All configuration is done in :hp2.fte.cfg:ehp2.. file which must reside
  156. in the same directory as the :hp2.fte.Exe:ehp2. executable. Most of
  157. the settings in configuration file are :hp2.CASE SENSITIVE:ehp2..
  158. :hp2.'#':ehp2.. is used to start a comment to the end of line.
  159.  
  160. .br
  161. :h2.Global Settings 
  162. :i1 id=global.Global Settings
  163.  
  164.  
  165. The following settings can be used in the :hp2.GLOBAL:ehp2. section of
  166. the configuration file.
  167. :dl compact tsize=8 break=all.
  168. :dt.:hp2.ScreenSizeX:ehp2.
  169. :dd.Number of columns visible on screen or window
  170. :dt.:hp2.ScreenSizeY:ehp2.
  171. :dd.Number of lines visible on screen or window
  172. :dt.:hp2.CursorInsertStart:ehp2.
  173. :dd.Starting percentage of cursor size (from top) when in insert mode.
  174. :dt.:hp2.CursorInsertEnd:ehp2.
  175. :dd.Ending percentage of cursor size when in insert mode.
  176. :dt.:hp2.CursorOverStart:ehp2.
  177. :dd.Starting percentage of cursor size when in overstrike mode
  178. :dt.:hp2.CursorOverEnd:ehp2.
  179. :dd.Ending percentage of cursor size when in overstrike mode.
  180. :dt.:hp2.SysClipboard:ehp2.
  181. :dd.When set to 1, editor will use external (PM) clipboard instead of internal one.
  182. :dt.:hp2.SelectPathname:ehp2.
  183. :dd.If set to 1, pathname will be selected by default when prompting for a file.
  184. :dt.:hp2.LoadAfterQuit:ehp2.
  185. :dd.If set to 1, editor will prompt for another file when all are closed.
  186. :dt.:hp2.ShowMenuBar:ehp2.
  187. :dd.If set to 1, main menu bar will be visible by default.
  188. :dt.:hp2.ShowScrollBar:ehp2.
  189. :dd.If set to 1, scroll bar will be visible by default.
  190. :dt.:hp2.ScrollBarWidth:ehp2.
  191. :dd.Scroll bar width in characters
  192. :dt.:hp2.DefaultModeName:ehp2.
  193. :dd.Default mode name for loading files. If not set or invalid, first mode 
  194. in the configuration file will be used instead.
  195. :dt.:hp2.CompletionFilter:ehp2.
  196. :dd.Files matching this regexp are ignored when doing filename completion.
  197. :dt.:hp2.WSStyleSearch:ehp2.
  198. :dd.If set to 1, editor will use WordStar style prompts with separate prompts 
  199. for search, replace string and options instead of the default search/replace/options
  200. style.
  201. :dt.:hp2.CompileRx:ehp2.
  202. :dd.Defines regexp and subpatterns to match when searching for errors/warnings
  203. in compilation output. First number is a number of the subpattern that matches 
  204. filename. The second must match the line number, the third parameter is 
  205. the regular expression to match to each line of the compiler output.
  206. :dt.:hp2.C_:ehp2.:hp1.*:ehp1.
  207. :dd.Define the C mode smart indentation parameters
  208. :dt.:hp2.REXX_Indent:ehp2.
  209. :dd.Defines the REXX basic indentation level
  210. :edl.
  211.  
  212.  
  213. .br
  214. :h2.Editing Modes 
  215. :i1 id=editmode.Editing Modes
  216.  
  217. :p.
  218. fte allows each file extension to have a different editing mode. Mode
  219. is a collection of editor settings such as keybindings, tab settings,
  220. autoindent settings, syntax highlighting,...
  221. :p.
  222. Syntax of :hp2.mode:ehp2. command is
  223. :p.
  224. :xmp.
  225. mode NAME { mode settings }
  226. mode NAME&colon. PARENT { mode settings }
  227. mode NAME&colon. PARENT, :hp1."filename regexp":ehp1. { mode settings }
  228. mode NAME&colon. PARENT, :hp1."filename regexp":ehp1., :hp1."first line regexp":ehp1. { mode settings }
  229. :exmp.
  230. :p.
  231. Mode with name :hp1.NAME:ehp1.inherits settings from mode :hp1.PARENT:ehp1. if 
  232. parent mode is specified at mode declaration.
  233. :p.
  234. When editor is searching for a mode to use for a file it will first check 
  235. if the mode has been overriden by a :hp2.FileLoadInMode:ehp2. command or a
  236. command line option (:hp2.-m:ehp2.).
  237. :p.
  238. Then it will check if the file name matches any of the :hp1."filename regexps":ehp1.
  239. listed with mode declarations. 
  240. :p.
  241. If the mode has still not been found, it will read the first line
  242. (max 80 chars) of the file, and attempt to match the :hp1."first line regexp":ehp1.
  243. with the first line. 
  244. :p.
  245. If this fails, editor will use mode specified by :hp2.DefaultModeName:ehp2. 
  246. setting to load a file. If that mode does not exist, first mode defined
  247. in the configuration file will be used.
  248.  
  249.  
  250. .br
  251. :h2.Mode Settings 
  252. :i1 id=modesetup.Mode Settings
  253.  
  254. :p.
  255. The following settings can be specified for each mode&colon.
  256. :dl compact tsize=8 break=all.
  257. :dt.:hp2.ExpandTabs:ehp2. {0,1}
  258. :dd.Should be set to 1 if tabs are to be expanded when displayed.
  259. :dt.:hp2.TabSize:ehp2. {1-32}
  260. :dd.Tab size when tabs are shown expanded on display.
  261. :dt.:hp2.AutoIndent:ehp2. {0,1}
  262. :dd.Should be set to 1 if autoindent is to be used.
  263. :dt.:hp2.Insert:ehp2. {0,1}
  264. :dd.If set to :hp2.1:ehp2., Insert mode is active by default. 
  265. If set to :hp2.0:ehp2., Overwrite mode is activated.
  266. :dt.:hp2.StripChar:ehp2. {ASCII code}
  267. :dd.This characted will be stripped if at the end of line when the 
  268. file is being loaded. If it is set to :hp2.-1:ehp2., no characted will 
  269. be stripped.
  270. :dt.:hp2.LineChar:ehp2. {ASCII code}
  271. :dd.This character is used as a line separator when loading a file.
  272. If set to :hp2.-1:ehp2., there is no line separator. (:hp2.WARNING&colon. File will
  273. be loaded as one line if LineChar is set to -1:ehp2.). 
  274. :dt.:hp2.AddCR:ehp2. {0,1}
  275. :dd.If set to :hp2.1:ehp2., CR (13, \r) character will be added to end of line when saving.
  276. :dt.:hp2.AddLF:ehp2. {0,1}
  277. :dd.If set to :hp2.1:ehp2., LF (10, \n) characted will be added to end if line when saving.
  278. :dt.:hp2.ForceNewLine:ehp2. {0,1}
  279. :dd.Normally, when saving, the last line is saved without any CR/LF characters. This setting will override that behaviour.
  280. :dt.:hp2.Hilit:ehp2. {0,1}
  281. :dd.If set to :hp2.1:ehp2., syntax highliting will be active
  282. :dt.:hp2.ShowTab:ehp2. {0,1}
  283. :dd.If set to :hp2.1:ehp2., tabs will be visible as circles (EPM-like).
  284. :dt.:hp2.IndentMode:ehp2. {PLAIN,C,REXX}
  285. :dd.Activates the specified smart indent mode. (PLAIN is not really smart &colon.))
  286. :dt.:hp2.HilitMode:ehp2. {PLAIN,C,HTML,MAKE,REXX,DIFF,IPF,PERL,MERGE,Ada}
  287. :dd.Activates the specified coloring mode. :hp2.PLAIN:ehp2. specifies no coloring.
  288. :dt.:hp2.UndoLimit:ehp2. {Number}
  289. :dd.Limit undo to this many recent commands (-1 = unlimited)
  290. :dt.:hp2.KeepBackups:ehp2. {0,1}
  291. :dd.If set to :hp2.0:ehp2., backup files will be deleted after a successful save operation.
  292. :dt.:hp2.MatchCase:ehp2. {0,1}
  293. :dd.If set to :hp2.0:ehp2., searches will be case insensitive. This
  294. can be toggled via :hp2.ToggleMatchCase:ehp2.(:hp2.C-O_C-C:ehp2.) command when editor is running.
  295. :dt.:hp2.BackSpKillTab:ehp2. {0,1}
  296. :dd.If set to 1, :hp2.BackSpace:ehp2. will kill entire tabs instead of converting them to spaces.
  297. :dt.:hp2.DeleteKillTab:ehp2. {0,1}
  298. :dd.If set to 1, :hp2.Delete:ehp2. will kill entire tabs instead of converting them to spaces.
  299. :dt.:hp2.BackSpUnindents:ehp2. {0,1}
  300. :dd.If set to 1, :hp2.BackSpace:ehp2. will inindent to previous indentation level if issued on beginning of line.
  301. :dt.:hp2.SpaceTabs:ehp2. {0,1}
  302. :dd.If set to 1, :hp2.InsertTab:ehp2. command will insert spaces instead of tabs.
  303. :dt.:hp2.IndentWithTabs:ehp2. {0,1}
  304. :dd.If set to 1, indentation will be done using tabs instead of spaces.
  305. :dt.:hp2.WordWrap:ehp2. {0,1,2}
  306. :dd.If set to 1, editor wrap current line when right margin is reached. If set to 2, editor will wrap current paragraph continously.
  307. :dt.:hp2.LeftMargin:ehp2. {1-xx}
  308. :dd.Left margin for word wrap.
  309. :dt.:hp2.RightMargin:ehp2. {1-xx}
  310. :dd.Right margin for word wrap.
  311. :dt.:hp2.Trim:ehp2. {0,1}
  312. :dd.If set to 1, spaces on the end of line will be trimmed when editing.
  313. :dt.:hp2.ShowMarkers:ehp2. {0,1}
  314. :dd.If set to 1, end of line and end of file markers will be shown.
  315. :dt.:hp2.CursorTroughTabs:ehp2. {0,1}
  316. :dd.If set to 1, editor will allow cursor position inside tabs.
  317. :dt.:hp2.DefFindOpt:ehp2. 'options'
  318. :dd.Default search options for :hp2.Find:ehp2. command.
  319. :dt.:hp2.DefFindReplaceOpt:ehp2. 'options'
  320. :dd.Default search/replace options for :hp2.FindReplace:ehp2. command.
  321. :dt.:hp2.MainMenu:ehp2. "menu"
  322. :dd.Main menu displayed when editing in this mode.
  323. :dt.:hp2.LocalMenu:ehp2. "menu"
  324. :dd.Local menu used when editing in this mode.
  325. :dt.:hp2.SaveFolds:ehp2. {0,1,2}
  326. :dd.If 0, folds are not saved. If 1, folds are saved at BOL, if 2 folds are saved at EOL.
  327. :dt.:hp2.CommentStart:ehp2. "comment-start-string"
  328. :dd.String that starts comments (for saving folds)
  329. :dt.:hp2.CommentEnd:ehp2. "comment-ent-string"
  330. :dd.String that ends comments
  331. :edl.
  332.  
  333. .br
  334. :h3.Loading files in various formats 
  335. :i1 id=loading.Loading files in various formats
  336.  
  337. :p.
  338. Here are settings for loading files in various formats&colon.
  339. :p.
  340. :dl compact tsize=8 break=all.
  341. :dt.DOS/Win/OS2/NT text files (CR/LF delimited)&colon.
  342. :dd.
  343. :xmp.
  344.           StripChar      13
  345.           LineChar       10
  346.           AddCR          1
  347.           AddLF          1
  348. :exmp.
  349.  
  350. .br
  351. :dt.UNIX text files (LF delimited)&colon.
  352. :dd.
  353. :xmp.
  354.           StripChar      -1
  355.           LineChar       10
  356.           AddCR          0
  357.           AddLF          1
  358. :exmp.
  359. :dt.MAC text files (CR delimited)&colon.
  360. :dd.
  361. :xmp.
  362.           StripChar      -1
  363.           LineChar       13
  364.           AddCR          1
  365.           AddLF          0
  366. :exmp.
  367. :dt.Binary files (fixed record length)&colon.
  368. :dd.
  369. :xmp.
  370.           StripChar      -1
  371.           LineChar       -1
  372.           AddCR          0
  373.           AddLF          0
  374.           LoadMargin     64
  375.           ForceNewLine   0
  376. :exmp.          
  377. :edl.
  378.  
  379. .br
  380. :h2.Mode Keyboard Mappings 
  381. :i1 id=modekeys.Mode Keyboard Mappings
  382.  
  383. :p.
  384. Keybindings are inherited from parent modes unless overriden.
  385. :p.
  386. Here are some examples of key specifiactions&colon.
  387. :dl compact tsize=8 break=all.
  388. :dt.[A]:dd.Uppercase a
  389. :dt.[a]:dd.Lowercase a 
  390. :dt.[;]:dd.Semicolon
  391. :dt.[A+A]:dd.Alt+A
  392. :dt.[C+B]:dd.Ctrl+B
  393. :dt.[A+C+F1]:dd.Alt+Ctrl+F1
  394. :dt.[A+C+S+F1]:dd.Alt+Ctrl+Shift+F1
  395. :dt.[A+Space]:dd.Alt+Space
  396. :dt.[C+K_C+B]:dd.Ctrl+K and then Ctrl+B (two keys)
  397. :dt.[C+A_C+B_C+C]:dd.Ctrl+A Ctrl+B Ctrl+C must be pressed in sequence.
  398. :dt.[G+-]:dd.Gray -
  399. :dt.[G++]:dd.Gray +
  400. :dt.[C-S-X]:dd.X, ignore the state of Ctrl and Shift keys.
  401. :dt.[C+\\]:dd.Ctrl+Backslash
  402. :dt.[C+\[]:dd.Ctrl+[
  403. :dt.[C+G-Left]:dd.Ctrl+Left, no difference between two Left keys.
  404. :dt.[C+A-A]:dd.Ctrl+A, ignore the state of Alt key.
  405. :edl.
  406. :p.The following special keys are available (case sensitive)&colon.
  407. :p.:hp2.F1-F12 Home End PgUp PgDn Insert Delete Up Down Left Right 
  408. Enter Esc BackSp Space Tab Center:ehp2.
  409. :p.Keyname can be preceeded by modifiers :hp2.(A, C, G, S):ehp2.. If modifier is followed
  410. by a :hp2.+:ehp2. (plus), the modifier key must be pressed to match the key 
  411. specification. If the modifier key is followed by :hp2.-:ehp2. (minus), the state
  412. of the modifier key is ignored.
  413. :p.Multiple-key combinations can be specified by separating
  414. them with :hp2._:ehp2. (underline)
  415. :p.Keys are bound using the :hp2.key:ehp2. command&colon.
  416. :p.:hp2.key:ehp2. :hp2.[keyspec]:ehp2. { :hp1.editor commands:ehp1. }
  417. :p.ASCII characters >= 32 are bound to SelfInsert by default.
  418. :p.See fte.Cfg for examples and default configuration.
  419.  
  420. .br
  421. :h2.Colors 
  422. :i1 id=colors.Colors
  423.  
  424. Colors are configured in COLOR.FTE file.
  425. :p.
  426. Syntax for color settings is&colon.
  427. :p.:hp2.color:ehp2. { { 'name', 'value' } ... } 
  428. :p.Value is the PC character attribute first char is background color, the second is foreground color.
  429. :p.Colors are as follows&colon.
  430. :xmp.
  431.         0        Black
  432.         1        Dark Blue
  433.         2        Dark Green 
  434.         3        Dark Cyan
  435.         4        Dark Red
  436.         5        Dark Magenta
  437.         6        Orange
  438.         7        Pale Gray
  439.         8        Dark Gray
  440.         9        Blue
  441.         A        Green
  442.         B        Cyan
  443.         C        Red
  444.         D        Magenta
  445.         E        Yellow
  446.         F        White
  447. :exmp.
  448.  
  449. .br
  450. :h1.Status Line 
  451. :i1 id=status.Status Line
  452.  
  453. :p.Status line displays the following status information&colon.
  454. :p.:hp2.position|flags|mode|curchar|mod? filename|winno:ehp2.
  455. :p.:hp2.position:ehp2. = line&colon.column
  456. :p.:hp2.flags:ehp2.
  457. :dl compact tsize=8 break=all.
  458. :dt.I:dd.Insert
  459. :dt.A:dd.Autoindent
  460. :dt.C:dd.Matches are case sensitive
  461. :dt.SLC:dd.Stream, Line, Column block-mode
  462. :dt.wW:dd.Automatic word wrap active (w = line, W = paragraph).
  463. :edl.
  464. :p.:hp2.mode:ehp2.      = Mode name as specified in configuration file
  465. :p.:hp2.curchar:ehp2.   = Decimal ASCII code of character under cursor, or EOL/EOF
  466. :p.:hp2.mod?:ehp2.      = :hp2.*:ehp2. if file was modified, :hp2.%:ehp2. if file is read-only
  467.  
  468.  
  469. .br
  470. :h1.Editor Commands 
  471. :i1 id=editcmds.Editor Commands
  472.  
  473. :p.These commands can be bound to keys in configuration file&colon.
  474.  
  475. .br
  476. :h2.Cursor Movement 
  477. :i1 id=cmdcursor.Cursor Movement
  478.  
  479. :dl compact tsize=8 break=all.
  480. :dt.:hp2.MoveLeft:ehp2.:dd.Move cursor left one character
  481. :dt.:hp2.MoveRight:ehp2.:dd.Move cursor right one character
  482. :dt.:hp2.MoveUp:ehp2.:dd.Move cursor up one line
  483. :dt.:hp2.MoveDown:ehp2.:dd.Move cursor down one line
  484. :dt.:hp2.MovePrev:ehp2.:dd.Move cursor to previous character
  485. :dt.:hp2.MoveNext:ehp2.:dd.Move cursor to next character
  486. :dt.:hp2.MoveWordLeft:ehp2.:dd.Move cursor one word left
  487. :dt.:hp2.MoveWordRight:ehp2.:dd.Move cursor one word right
  488. :dt.:hp2.MoveWordPrev:ehp2.:dd.Move cursor to start of previous word
  489. :dt.:hp2.MoveWordNext:ehp2.:dd.Move cursor to start of next word
  490. :dt.:hp2.MoveLineStart:ehp2.:dd.Move cursor to beginning of line
  491. :dt.:hp2.MoveLineEnd:ehp2.:dd.Move cursor to end of line
  492. :dt.:hp2.MovePageUp:ehp2.:dd.Move cursor to previous page
  493. :dt.:hp2.MovePageDown:ehp2.:dd.Move cursor to next page
  494. :dt.:hp2.MovePageLeft:ehp2.:dd.Move cursor one page left
  495. :dt.:hp2.MovePageRight:ehp2.:dd.Move cursor one page right
  496. :dt.:hp2.MovePageStart:ehp2.:dd.Move cursor to top of page
  497. :dt.:hp2.MovePageEnd:ehp2.:dd.Move cursor top bottom of page
  498. :dt.:hp2.MoveFileStart:ehp2.:dd.Move cursor to start of buffer
  499. :dt.:hp2.MoveFileEnd:ehp2.:dd.Move cursor to end of buffer
  500. :dt.:hp2.MoveBlockStart:ehp2.:dd.Move cursor to beginning of block
  501. :dt.:hp2.MoveBlockEnd:ehp2.:dd.Move cursor to end of block
  502. :dt.:hp2.ScrollLeft:ehp2.:dd.Scroll screen left 8 characters
  503. :dt.:hp2.ScrollRight:ehp2.:dd.Scroll screen right 8 characters
  504. :dt.:hp2.ScrollDown:ehp2.:dd.Scroll screen down 1 line
  505. :dt.:hp2.ScrollUp:ehp2.:dd.Scroll screen up 1 line
  506. :dt.:hp2.MoveFirstNonWhite:ehp2.:dd.Move to first non whitespace character on line
  507. :dt.:hp2.MoveLastNonWhite:ehp2.:dd.Move after last non whitespace character on line
  508. :dt.:hp2.MovePrevEqualIndent:ehp2.:dd.Move to previous line with indentation equal to current.
  509. :dt.:hp2.MoveNextEqualIndent:ehp2.:dd.Move to next line with indentation equal to current.
  510. :dt.:hp2.MovePrevTab:ehp2.:dd.Move cursor to previous tab stop.
  511. :dt.:hp2.MoveNextTab:ehp2.:dd.Move cursor to next tab stop.
  512. :dt.:hp2.MovePrevPos:ehp2.:dd.Move to previous position
  513. :dt.:hp2.SavePos:ehp2.:dd.Save current position
  514. :dt.:hp2.MoveSavedPos:ehp2.:dd.Restore saved position
  515. :dt.:hp2.MoveSavedPosCol:ehp2.:dd.Restore saved position column
  516. :dt.:hp2.MoveSavedPosRow:ehp2.:dd.Restore saved position row
  517. :dt.:hp2.MoveLineTop:ehp2.:dd.Move current line to top of window
  518. :dt.:hp2.MoveLineCenter:ehp2.:dd.Move current line to center of window
  519. :dt.:hp2.MoveLineBottom:ehp2.:dd.Move current line to bottom of window
  520. :edl.
  521.  
  522. .br
  523. :h2.Text deleting 
  524. :i1 id=cmddelete.Text deleting
  525.  
  526. :dl compact tsize=8 break=all.
  527. :dt.:hp2.KillLine:ehp2.:dd.Delete current line
  528. :dt.:hp2.KillChar:ehp2.:dd.Delete character under cursor
  529. :dt.:hp2.KillCharPrev:ehp2.:dd.Delete character before cursor
  530. :dt.:hp2.KillWord:ehp2.:dd.Delete next word
  531. :dt.:hp2.KillWordPrev:ehp2.:dd.Delete previous word
  532. :dt.:hp2.KillToLineStart:ehp2.:dd.Delete text to line start
  533. :dt.:hp2.KillToLineEnd:ehp2.:dd.Delete text to line end
  534. :dt.:hp2.KillBlock:ehp2.:dd.Kill text in block
  535. :dt.:hp2.BackSpace:ehp2.:dd.Delete character before cursor (configurable)
  536. :dt.:hp2.Delete:ehp2.:dd.Delete character under cursor (configurable)
  537. :edl.
  538.  
  539. .br
  540. :h2.Line commands 
  541. :i1 id=cmdsline.Line commands
  542.  
  543. :dl compact tsize=8 break=all.
  544. :dt.:hp2.LineInsert:ehp2.:dd.Insert empty line before current line
  545. :dt.:hp2.LineAdd:ehp2.:dd.Add line after current
  546. :dt.:hp2.LineSplit:ehp2.:dd.Split line at current cursor position
  547. :dt.:hp2.LineJoin:ehp2.:dd.Join line with next one
  548. :dt.:hp2.LineNew:ehp2.:dd.Add new line after current one, move to next line and autoindent
  549. :dt.:hp2.LineIndent:ehp2.:dd.Reindent current line
  550. :dt.:hp2.LineTrim:ehp2.:dd.Trim spaces at the end of current line
  551. :edl.
  552.  
  553. .br
  554. :h2.Text insertion 
  555. :i1 id=cmdinsert.Text insertion
  556.  
  557. :dl compact tsize=8 break=all.
  558. :dt.:hp2.InsertTab:ehp2.:dd.Insert Tab character
  559. :dt.:hp2.SelfInsert:ehp2.:dd.Insert character defined by last key
  560. :dt.:hp2.WrapPara:ehp2.:dd.Word wrap paragraph (to next blank line).
  561. :dt.:hp2.LineDuplicate:ehp2.:dd.Duplicate current line.
  562. :dt.:hp2.InsPrevLineChar:ehp2.:dd.Insert character above current character.
  563. :dt.:hp2.InsPrevLineToEol:ehp2.:dd.Insert previous line from current char to eol.
  564. :dt.:hp2.CompleteWord:ehp2.:dd.Complete word to previous word starting with text before cursor.
  565. :edl.
  566.  
  567. .br
  568. :h2.Blocks 
  569. :i1 id=cmdblock.Blocks
  570.  
  571. :dl compact tsize=8 break=all.
  572. :dt.:hp2.BlockBegin:ehp2.:dd.Set block beginning to current position
  573. :dt.:hp2.BlockEnd:ehp2.:dd.Set block end to current position
  574. :dt.:hp2.BlockUnmark:ehp2.:dd.Unmark selected block
  575. :dt.:hp2.BlockCut:ehp2.:dd.Cut selected block to clipboard
  576. :dt.:hp2.BlockCopy:ehp2.:dd.Copy selected block to clipboard
  577. :dt.:hp2.BlockPaste:ehp2.:dd.Paste clipboard to current position
  578. :dt.:hp2.BlockPasteStream:ehp2.:dd.Paste clipboard to current position as stream block.
  579. :dt.:hp2.BlockPasteLine:ehp2.:dd.Paste clipboard to current position as line block.
  580. :dt.:hp2.BlockPasteColumn:ehp2.:dd.Paste clipboard to current position as column block.
  581. :dt.:hp2.BlockKill:ehp2.:dd.Delete selected text
  582. :dt.:hp2.BlockIndent:ehp2.:dd.Indent block by 1 character
  583. :dt.:hp2.BlockUnindent:ehp2.:dd.Unindent block by 1 character
  584. :dt.:hp2.BlockMarkStream:ehp2.:dd.Begin/end marking stream block
  585. :dt.:hp2.BlockMarkLine:ehp2.:dd.Begin/end marking line block
  586. :dt.:hp2.BlockMarkColumn:ehp2.:dd.Begin/end marking column block
  587. :dt.:hp2.BlockExtendBegin:ehp2.:dd.Begin extending selected block
  588. :dt.:hp2.BlockExtendEnd:ehp2.:dd.End extending selected block
  589. :dt.:hp2.BlockReIndent:ehp2.:dd.Reindent entire block (C/REXX mode)
  590. :dt.:hp2.BlockRead:ehp2.:dd.Read block from file
  591. :dt.:hp2.BlockWrite:ehp2.:dd.Write marked block to file
  592. :edl.
  593.  
  594. .br
  595. :h2.File commands 
  596. :i1 id=cmdfile.File commands
  597.  
  598. :dl compact tsize=8 break=all.
  599. :dt.:hp2.FileSave:ehp2.:dd.Save current file
  600. :dt.:hp2.FileSaveAll:ehp2.:dd.Save all loaded files
  601. :dt.:hp2.FileSaveAs:ehp2.:dd.Save current file under a new name, changing the name of loaded file
  602. :dt.:hp2.FileWriteTo:ehp2.:dd.Save current file under a new name, without changing name of loaded file
  603. :dt.:hp2.FileQuit:ehp2.:dd.Close current file
  604. :dt.:hp2.FileQuitAll:ehp2.:dd.Close all files
  605. :dt.:hp2.FileLoad:ehp2.:dd.Load a file
  606. :dt.:hp2.FileLoadInMode:ehp2.:dd.Load a file in a specified mode.
  607. :dt.:hp2.FileReload:ehp2.:dd.Reload current file
  608. :dt.:hp2.FileNext:ehp2.:dd.Select next file in buffer ring
  609. :dt.:hp2.FilePrev:ehp2.:dd.Select previous file in buffer ring
  610. :edl.
  611.  
  612. .br
  613. :h2.Window commands 
  614. :i1 id=cmdwin.Window commands
  615.  
  616. :dl compact tsize=8 break=all.
  617. :dt.:hp2.WinHSplit:ehp2.:dd.Split window horizontally
  618. :dt.:hp2.WinNext:ehp2.:dd.Activate next window
  619. :dt.:hp2.WinPrev:ehp2.:dd.Activate previous window
  620. :dt.:hp2.WinZoom:ehp2.:dd.Make current window the only one (close all others)
  621. :dt.:hp2.WinRefresh:ehp2.:dd.Repaint entire screen.
  622. :dt.:hp2.WinResize:ehp2.:dd.Resize window (takes integer argument, -x = smaller, +x = bigger)
  623. :dt.:hp2.WinClose:ehp2.:dd.Close current window.
  624. :edl.
  625.  
  626. .br
  627. :h2.Undo/Redo 
  628. :i1 id=cmdundo.Undo/Redo
  629.  
  630. :dl compact tsize=8 break=all.
  631. :dt.:hp2.Undo:ehp2.:dd.Undo last operation
  632. :dt.:hp2.Redo:ehp2.:dd.Redo last undone operation
  633. :edl.
  634.  
  635. .br
  636. :h2.Case conversion 
  637. :i1 id=cmdcase.Case conversion
  638.  
  639. :dl compact tsize=8 break=all.
  640. :dt.:hp2.CharCaseUp:ehp2.:dd.Convert current character to uppercase
  641. :dt.:hp2.CharCaseDown:ehp2.:dd.Convert current character to lowercase
  642. :dt.:hp2.CharCaseToggle:ehp2.:dd.Toggle case of current characters
  643. :dt.:hp2.LineCaseUp:ehp2.:dd.Convert characters on current line to uppercase
  644. :dt.:hp2.LineCaseDown:ehp2.:dd.Convert characters on current line to lowercase
  645. :dt.:hp2.LineCaseToggle:ehp2.:dd.Toggle case of characters on current line
  646. :dt.:hp2.BlockCaseUp:ehp2.:dd.Convert characters in selected block to uppercase
  647. :dt.:hp2.BlockCaseDown:ehp2.:dd.Convert characters in selected block to lowercase
  648. :dt.:hp2.BlockCaseToggle:ehp2.:dd.Toggle case of characters in selected block
  649. :edl.
  650.  
  651. .br
  652. :h2.Searching 
  653. :i1 id=cmdfind.Searching
  654.  
  655. :dl compact tsize=8 break=all.
  656. :dt.:hp2.Find:ehp2.:dd.Search for text, w/options
  657. :dt.:hp2.FindReplace:ehp2.:dd.Search and replace text w/options. 
  658. :dt.:hp2.FindRepeat:ehp2.:dd.Repeat last search/replace operation
  659. :dt.:hp2.FindRepeatReverse:ehp2.:dd.Repeat last search/replace operation in opposite direction
  660. :dt.:hp2.FindRepeatOnce:ehp2.:dd.Repeat last search/replace operation only once.
  661. :dt.:hp2.MatchBracket:ehp2.:dd.Search for matching bracket
  662. :dt.:hp2.IncrementalSearch:ehp2.:dd.Search incrementally for text.
  663. :dt.:hp2.Search:ehp2.:dd.Search for text
  664. :dt.:hp2.SearchB:ehp2.:dd.Search for text backwards
  665. :dt.:hp2.SearchRx:ehp2.:dd.Search for regexp
  666. :dt.:hp2.SearchReplaceRx:ehp2.:dd.Search and replace using regexp
  667. :dt.:hp2.SearchAgain:ehp2.:dd.Search for text again
  668. :dt.:hp2.SearchAgainB:ehp2.:dd.Search for text again backwards
  669. :dt.:hp2.SearchReplace:ehp2.:dd.Search for text and replace
  670. :dt.:hp2.SearchReplaceB:ehp2.:dd.Search and replace backwards
  671. :edl.
  672.  
  673. .br
  674. :h2.Folding 
  675. :i1 id=cmdfold.Folding
  676.  
  677. :dl compact tsize=8 break=all.
  678. :dt.:hp2.FoldCreate:ehp2.:dd.Create fold
  679. :dt.:hp2.FoldCreateByRegexp:ehp2.:dd.Create folds at lines matching regexp
  680. :dt.:hp2.FoldDestroy:ehp2.:dd.Destroy fold at current line
  681. :dt.:hp2.FoldDestroyAll:ehp2.:dd.Destroy all folds in file
  682. :dt.:hp2.FoldOpen:ehp2.:dd.Open fold at current line
  683. :dt.:hp2.FoldOpenAll:ehp2.:dd.Open all folds in file
  684. :dt.:hp2.FoldOpenNested:ehp2.:dd.Open current fold and all nested folds
  685. :dt.:hp2.FoldClose:ehp2.:dd.Close current fold
  686. :dt.:hp2.FoldCloseAll:ehp2.:dd.Close all folds in file
  687. :dt.:hp2.FoldToggleOpenClose:ehp2.:dd.Toggle open/close fold.
  688. :dt.:hp2.FoldPromote:ehp2.:dd.Make fold a higher level fold
  689. :dt.:hp2.FoldDemote:ehp2.:dd.Make fold a lower level fold
  690. :edl.
  691.  
  692. .br
  693. :h2.Compile commands 
  694. :i1 id=cmdcompile.Compile commands
  695.  
  696. :dl compact tsize=8 break=all.
  697. :dt.:hp2.Compile:ehp2.:dd.Run compile command in background
  698. :dt.:hp2.CompileViewErrors:ehp2.:dd.View compiler output
  699. :dt.:hp2.CompilePrevError:ehp2.:dd.Jump to previous compiler error
  700. :dt.:hp2.CompileNextError:ehp2.:dd.Jump to next compiler error
  701. :edl.
  702.  
  703. .br
  704. :h2.Settings 
  705. :i1 id=cmdsets.Settings
  706.  
  707. :dl compact tsize=8 break=all.
  708. :dt.:hp2.ToggleAutoIndent:ehp2.:dd.Toggle automatic indentation
  709. :dt.:hp2.ToggleInsert:ehp2.:dd.Toggle insert/overwrite mode
  710. :dt.:hp2.ToggleExpandTabs:ehp2.:dd.Toggle tab expansion on display
  711. :dt.:hp2.ToggleShowTabs:ehp2.:dd.Toggle tab visibility (as circles).
  712. :dt.:hp2.ToggleUndo:ehp2.:dd.Toggle undo/redo information saving.
  713. :dt.:hp2.ToggleReadOnly:ehp2.:dd.Toggle read only file.
  714. :dt.:hp2.ToggleKeepBackups:ehp2.:dd.Toggle backup files.
  715. :dt.:hp2.ToggleMatchCase:ehp2.:dd.Toggle case sensitivity for searches
  716. :dt.:hp2.ToggleBackSpKillTab:ehp2.:dd.Enable/disable BackSp killing entire tabs.
  717. :dt.:hp2.ToggleDeleteKillTab:ehp2.:dd.Enable/disable Delete killing entire tabs.
  718. :dt.:hp2.ToggleSpaceTabs:ehp2.:dd.Toggle insertion of spaces instead of tabs on Tab key.
  719. :dt.:hp2.ToggleIndentWithTabs:ehp2.:dd.Toggle indentation with tabs.
  720. :dt.:hp2.ToggleBackSpUnindents:ehp2.:dd.Toggle unindentation on previous indent level on BackSp.
  721. :dt.:hp2.ToggleWordWrap:ehp2.:dd.Toggle automatic word wrap.
  722. :dt.:hp2.ToggleTrim:ehp2.:dd.Toggle trimming of spaces at end of line.
  723. :dt.:hp2.ToggleShowMarkers:ehp2.:dd.Toggle EOL/EOF marker visibility.
  724. :dt.:hp2.ToggleSysClipboard:ehp2.:dd.Toggle usage of system clipboard.
  725. :dt.:hp2.SetLeftMargin:ehp2.:dd.Set left margin to current cursor column.
  726. :dt.:hp2.SetRightMargin:ehp2.:dd.Set right margin to current cursor column.
  727. :dt.:hp2.ChangeTabSize:ehp2.:dd.Prompt for tab size.
  728. :dt.:hp2.ChangeCIndent:ehp2.:dd.Prompt for indentation level for CMode smart indentation.
  729. :dt.:hp2.ChangeCBraceOfs:ehp2.:dd.Change brace offset for CMode smart indentation.
  730. :dt.:hp2.ChangeREXXIndent:ehp2.:dd.Prompt for indentation level for REXX smart indentation
  731. :dt.:hp2.ChangeLeftMargin:ehp2.:dd.Prompt for left margin for word wrap.
  732. :dt.:hp2.ChangeRightMargin:ehp2.:dd.Prompt for right margin for word wrap.
  733. :edl.
  734.  
  735. .br
  736. :h2.Other 
  737. :i1 id=cmdother.Other
  738.  
  739. :dl compact tsize=8 break=all.
  740. :dt.:hp2.ExitEditor:ehp2.:dd.Close all files and exit editor
  741. :dt.:hp2.RunCommand:ehp2.:dd.Run command in foreground.
  742. :dt.:hp2.ViewBuffers:ehp2.:dd.View buffer list
  743. :dt.:hp2.ViewModeMap:ehp2.:dd.View keyboard mappings for current mode
  744. :dt.:hp2.ChangeMode:ehp2.:dd.Activate another mode
  745. :dt.:hp2.GetPMClip:ehp2.:dd.Copy PM clipboard to editor clipboard
  746. :dt.:hp2.PutPMClip:ehp2.:dd.Copy editor clipboard to PM clipboard
  747. :dt.:hp2.ShowEntryScreen:ehp2.:dd.Show saved shell screen.
  748. :dt.:hp2.SwitchTo:ehp2.:dd.Switch to buffer with a number.
  749. :dt.:hp2.ChangeKeys:ehp2.:dd.Change current keymap to keymap of another mode.
  750. :dt.:hp2.ChangeFlags:ehp2.:dd.Change current flags to flags of another mode.
  751. :dt.:hp2.ShowMenu:ehp2.:dd.Show and select from menu.
  752. :dt.:hp2.MainMenu:ehp2.:dd.Activate menu bar.
  753. :dt.:hp2.LocalMenu:ehp2.:dd.Activate local popup menu.
  754. :dt.:hp2.ASCIITable:ehp2.:dd.Show a popup ASCII table.
  755. :dt.:hp2.PlaceBookmark:ehp2.:dd.Place a named bookmark at current buffer position
  756. :dt.:hp2.GotoBookmark:ehp2.:dd.Goto a named bookmark in current buffer
  757. :dt.:hp2.RemoveBookmark:ehp2.:dd.Remove a named bookmark from current buffer
  758. :edl.
  759.  
  760.  
  761. .br
  762. :h1.Regular Expressions 
  763. :i1 id=regexp.Regular Expressions
  764.  
  765. :p.
  766. Regular expressions are a way to specify text patterns when searching for
  767. a text in a buffer. Regular expressions consist of normal characters
  768. and special operator characters with a special meanings. Operators
  769. allow you to anchor matches, match classes of characters, match given
  770. pattern several times or match alternate patterns. Operators can be
  771. also used to group patterns.
  772. :p.
  773. :hp2.Search Operators:ehp2. 
  774. :dl compact tsize=8 break=all.
  775.  :dt.:hp2.\:ehp2.
  776.  :dd.Quotes next character. Character will lose it's special meaning. Can also be used to match special characters.
  777.  :dt.:hp2.\n:ehp2.
  778.  :dd.Matches a 0x0A (LF) character.
  779.  :dt.:hp2.\r:ehp2.
  780.  :dd.Matches a 0x0D (CR) character.
  781.  :dt.:hp2.\t:ehp2.
  782.  :dd.Matches a 0x09 (TAB) character.
  783.  :dt.:hp2.\e:ehp2.
  784.  :dd.Matches an escape character (0x1B)
  785.  :dt.:hp2.\s:ehp2.
  786.  :dd.Matches whitespace (CR, LF, TAB, SPACE) characters.
  787.  :dt.:hp2.\S:ehp2.
  788.  :dd.Matches non-whitespace (the reverse of \s)
  789.  :dt.:hp2.\w:ehp2.
  790.  :dd.Matches word character [a-zA-Z0-9]
  791.  :dt.:hp2.\W:ehp2.
  792.  :dd.Matches non-word character
  793.  :dt.:hp2.\d:ehp2.
  794.  :dd.Matches a digit [0-9].
  795.  :dt.:hp2.\D:ehp2.
  796.  :dd.Matches a non-digit.
  797.  :dt.:hp2.\U:ehp2.
  798.  :dd.Matches uppercase characters (A-Z)
  799.  :dt.:hp2.\L:ehp2.
  800.  :dd.Matches lowercase characters (a-z)
  801.  :dt.:hp2.\x##:ehp2.
  802.  :dd.Matches specified hex value (\x0A, \x0D, \x09, etc.)
  803.  :dt.:hp2.\o###:ehp2.
  804.  :dd.Matches specified octal value (\o000, \o015, etc.)
  805.  :dt.:hp2.\N###:ehp2.
  806.  :dd.Matches specified decimal value (\N000, \N013, \N009, etc.)
  807.  :dt.:hp2.\C:ehp2.
  808.  :dd.Starts case sensitive matching.
  809.  :dt.:hp2.\c:ehp2.
  810.  :dd.Starts case insensitive matching.
  811.  :dt.:hp2.^:ehp2.
  812.  :dd.Match a beginning of line.
  813.  :dt.:hp2.$:ehp2.
  814.  :dd.Match an end of line.
  815.  :dt.:hp2..:ehp2.
  816.  :dd.Match any character.
  817.  :dt.:hp2.<:ehp2.
  818.  :dd.Match beginning of word (word consists of [A-Za-z0-9]).
  819.  :dt.:hp2.>:ehp2.
  820.  :dd.Match end of word.
  821.  :dt.:hp2.[ ]:ehp2.
  822.  :dd.Specifies a class of characters ([abc123], [\]\x10], etc).
  823.  :dt.:hp2.[ - ]:ehp2.
  824.  :dd.Specified a range of characters ([0-9a-zA-Z_], [0-9], etc)
  825.  :dt.:hp2.[^ ]:ehp2.
  826.  :dd.Specifies complement class ([^a-z], [^\-], etc)
  827.  :dt.:hp2.?:ehp2.
  828.  :dd.Matches preceeding pattern optionally (a?bc, filename\.?, $?, etc)
  829.  :dt.:hp2.|:ehp2.
  830.  :dd.Matches preceeding or next pattern (a|b, c|d, abc|d). Only one character will be used as pattern unless grouped together using {} or ().
  831.  :dt.:hp2.*:ehp2.
  832.  :dd.Match zero or more occurances of preceeding pattern. Matching is greedy and will match as much as possible.
  833.  :dt.:hp2.+:ehp2.
  834.  :dd.Match one or more occurances of preceeding pattern. Match is greedy.
  835.  :dt.:hp2.@:ehp2.
  836.  :dd.Match zero or more occurances of preceeding pattern. Matching is non-greedy and will match as little as possible without causing the rest of the pattern match to fail.
  837.  :dt.:hp2.#:ehp2.
  838.  :dd.Match one or more occurances of preceeding pattern. Matching is non-greedy.
  839.  :dt.:hp2.{ }:ehp2.
  840.  :dd.Group patterns together to form complex pattern. ( {abc}, {abc}|{cde}, {abc}?, {word}?)
  841.  :dt.:hp2.( ):ehp2.
  842.  :dd.Group patterns together to form complex pattern. Also used to remember the matched substring which can be used for substitution operation. Up to 9 can be used.
  843. :edl.
  844. :p.
  845. :hp2.Replace Operators&colon.:ehp2. 
  846. :dl compact tsize=8 break=all.
  847.  :dt.:hp2.\:ehp2.
  848.  :dd.Causes the next character to lose it's special meaning.
  849.  :dt.:hp2.\n:ehp2.
  850.  :dd.Inserts a 0x0A (LF) character.
  851.  :dt.:hp2.\r:ehp2.
  852.  :dd.Inserts a 0x0D (CR) character.
  853.  :dt.:hp2.\t:ehp2.
  854.  :dd.Inserts a 0x09 (TAB) character.
  855.  :dt.:hp2.\#:ehp2.
  856.  :dd.Recalls stored substring from matched pattern ()'s. (\1, \2, \3, to \9)
  857.  :dt.:hp2.\0:ehp2.
  858.  :dd.Recalls entire matched pattern.
  859.  :dt.:hp2.\u:ehp2.
  860.  :dd.Convert next character to uppercase
  861.  :dt.:hp2.\l:ehp2.
  862.  :dd.Convert next character to lowercase
  863.  :dt.:hp2.\U:ehp2.
  864.  :dd.Convert to uppercase till \E or \e
  865.  :dt.:hp2.\L:ehp2.
  866.  :dd.Convert to lowercase till \E or \e
  867. :edl.
  868.  
  869. .br
  870. :h1.Search and Replace 
  871. :i1 id=search.Search and Replace
  872.  
  873. :p.
  874. :hp2.Search and Replace Commands&colon.:ehp2.
  875. :p.
  876. :dl compact tsize=8 break=all.
  877. :dt.:hp2.Find:ehp2.:dd.Search for text w/options.
  878. :dt.:hp2.FindReplace:ehp2.:dd.Search and replace text w/options. 
  879. :dt.:hp2.FindRepeat:ehp2.:dd.Repeat last search/replace operation
  880. :dt.:hp2.FindRepeatReverse:ehp2.:dd.Repeat last search/replace operation in opposite direction
  881. :dt.:hp2.FindRepeatOnce:ehp2.:dd.Repeat last search/replace operation only once.
  882. :dt.:hp2.MatchBracket:ehp2.:dd.Search for matching bracket
  883. :dt.:hp2.IncrementalSearch:ehp2.:dd.Search incrementally for text.
  884. :dt.:hp2.Search:ehp2.:dd.Search for text
  885. :dt.:hp2.SearchB:ehp2.:dd.Search for text backwards
  886. :dt.:hp2.SearchRx:ehp2.:dd.Search for regexp
  887. :dt.:hp2.SearchReplaceRx:ehp2.:dd.Search and replace using regexp
  888. :dt.:hp2.SearchAgain:ehp2.:dd.Search for text again
  889. :dt.:hp2.SearchAgainB:ehp2.:dd.Search for text again backwards
  890. :dt.:hp2.SearchReplace:ehp2.:dd.Search for text and replace
  891. :dt.:hp2.SearchReplaceB:ehp2.:dd.Search and replace backwards
  892. :edl.
  893. :p.
  894. If :hp2.WSStyleSearch:ehp2. is set to 1, search/replace string and options
  895. are entered at separate prompts. Otherwise they must be separated by a '/' 
  896. (slash) and any slash or backslash in search/replace string must be escaped 
  897. by '\' (backslash), except when using regular expressions (double 
  898. escaping is not necessary).
  899. :p.
  900. For example (when WSStyleSearch is off)&colon.
  901. :xmp.
  902.          foo/bar/agn    replace all foo with bar globally without prompting
  903. :exmp.
  904.  
  905. :hp2.Search and Replace Options:ehp2.
  906. :p.
  907. :dl compact tsize=8 break=all.
  908. :dt.:hp2.a:ehp2.:dd.Search for all occurances
  909. :dt.:hp2.b:ehp2.:dd.Search in block only
  910. :dt.:hp2.g:ehp2.:dd.Search through entire file/block (globally).
  911. :dt.:hp2.i:ehp2.:dd.Ignore case
  912. :dt.:hp2.r:ehp2.:dd.Reverse search
  913. :dt.:hp2.x:ehp2.:dd.Use regular expression matching
  914. :dt.:hp2.d:ehp2.:dd.Delete found line
  915. :dt.:hp2.j:ehp2.:dd.Join found line
  916. :dt.:hp2.n:ehp2.:dd.No prompting
  917. :edl.
  918. :p.
  919. Commands affected by :hp2.DefFindOpt:ehp2. mode setting&colon.
  920. :ul compact.
  921. :li.:hp2.Find:ehp2.
  922. :eul.
  923. :p.
  924. Commands affected by :hp2.DefFindReplaceOpt:ehp2. mode setting&colon.
  925. :ul compact.
  926. :li.:hp2.FindReplace:ehp2.
  927. :eul.
  928. :p.
  929. Commands affected by :hp2.MatchCase:ehp2. mode setting&colon.
  930. :ul compact.
  931. :li.:hp2.IncrementalSearch:ehp2.
  932. :li.:hp2.Search:ehp2.
  933. :li.:hp2.SearchB:ehp2.
  934. :li.:hp2.SearchRx:ehp2.
  935. :li.:hp2.SearchReplaceRx:ehp2.
  936. :li.:hp2.SearchReplace:ehp2.
  937. :li.:hp2.SearchReplaceB:ehp2.
  938. :eul.
  939. :p.
  940. Commands affected by :hp2.WSStyleSearch:ehp2. mode setting&colon.
  941. :ul compact.
  942. :li.:hp2.Find:ehp2.
  943. :li.:hp2.FindReplace:ehp2.
  944. :li.:hp2.FindRepeat:ehp2.
  945. :li.:hp2.FindRepeatReverse:ehp2.
  946. :li.:hp2.FindRepeatOnce:ehp2.
  947. :eul.
  948.  
  949.  
  950. .br
  951. :h1.CMode Smart Indentation 
  952. :i1 id=cindent.CMode Smart Indentation
  953.  
  954.  
  955. :hp2.Settings for CMode smart indentation:ehp2.
  956. :p.
  957. :dl compact tsize=8 break=all.
  958. :dt.:hp2.C_Indent:ehp2.:dd.Basic C indentation level
  959. :dt.:hp2.C_BraceOfs:ehp2.:dd.Brace '{' offset
  960. :dt.:hp2.C_CaseOfs:ehp2.:dd.Offset of case and default statements
  961. :dt.:hp2.C_CaseDelta:ehp2.:dd.Offsets of statements following case/default.
  962. :dt.:hp2.C_ClassOfs:ehp2.:dd.Offset of public, private and protected
  963. :dt.:hp2.C_ClassDelta:ehp2.:dd.Offset of statements following public, private, protected
  964. :dt.:hp2.C_ColonOfs:ehp2.:dd.Offset of labels
  965. :dt.:hp2.C_CommentOfs:ehp2.:dd.Offset of comments
  966. :dt.:hp2.C_CommentDelta:ehp2.:dd.Offset of second line of comments
  967. :edl.
  968. :p.
  969. Example 1&colon.
  970.  
  971. :xmp.
  972. class line {
  973. public&colon.                   // C_ClassOfs = 0
  974.     line();               // C_ClassDelta = 4
  975.     ~line();
  976. };
  977.  
  978. int main() {
  979.     int x = 1;
  980.     
  981.     /*                    // C_CommentOfs = 0
  982.      * check value        // C_CommentDelta = 1
  983.      */
  984.     
  985.     puts("main");         // C_Indent = 4
  986.     if (x)
  987.     {                     // C_BraceOfs = 0
  988.         switch (x) {
  989.         case 1&colon.           // C_CaseOfs = 0
  990.             puts("ok");   // C_CaseDelta = 4
  991.             break;
  992.         }
  993.     }
  994. end&colon.
  995.     return 0;
  996. }
  997. :exmp.
  998.  
  999. :p.
  1000. Example 2&colon.
  1001.  
  1002. :xmp.
  1003. class line {
  1004.   public&colon.                     // C_ClassOfs = 2
  1005.     line();                   // C_ClassDelta = 2
  1006.     ~line();
  1007. };
  1008.  
  1009. int main() {
  1010.     int x = 1;
  1011.     
  1012.       /*                      // C_CommentOfs = 2
  1013.       ** check value          // C_CommentDelta = 0
  1014.       */
  1015.     
  1016.     puts("main");             // C_Indent = 4
  1017.     if (x)
  1018.     {                         // C_BraceOfs = 0
  1019.         switch (x) {
  1020.             case 1&colon.           // C_CaseOfs = 4
  1021.                 puts("ok");   // C_CaseDelta = 4
  1022.                 break;
  1023.         }
  1024.     }
  1025. end&colon.
  1026.     return 0;
  1027. }
  1028. :exmp.
  1029.  
  1030.  
  1031. .br
  1032. :h1.Performance Tips 
  1033.  
  1034. If you want to achieve top performance (necessary for 
  1035. some text editing tasks), here are some tips&colon.
  1036.  
  1037. :ul compact.
  1038. :li.Disable Tab Expansion
  1039. :li.Disable ShowMarkers
  1040. :li.Disable Undo
  1041. :li.Use PLAIN hilit mode
  1042. :eul.
  1043.  
  1044. :h1.History of Changes 
  1045. :i1 id=history.History of Changes
  1046.  
  1047. :ul compact.
  1048.  :li.0.37:ul compact. 
  1049.   :li.Status line can now be hidden. Also changed it's look.
  1050.   :li.Changed the syntax of keyboard bindings. Now it is possible to better emulate the wordstar two-key behavior. See documentation for details. It is also possible to define different commands for gray/white keys.
  1051.   :li.MENU shortcuts now work.
  1052.   :li.New command&colon. FileWriteTo
  1053.   :li.Fixed crash when trying to center nonexistant line in file.
  1054.   :li.Changing folds now modifies the file.
  1055.   :li.When CursorTroughTabs was set to 0, certain movement commands would behave incorrectly.
  1056.   :li.S-Ins will perform Paste operation in prompts.
  1057.   :li.New Command&colon. WinResize <delta> and WinClose. Windows can be also resized by a mouse.
  1058.   :eul.
  1059.  :li.0.36:ul compact. 
  1060.    :li.Fixed when editor would crash when saving a folded file, but no folds
  1061.        are configured for active mode.
  1062.    :li.Fixed minor bug in C mode indentation.
  1063.    :li.New command&colon. InsertSpacesToTab (takes optional tabsize argument).
  1064.   :eul.
  1065.  :li.0.35 
  1066.   :ul compact.
  1067.    :li.
  1068.     :ul compact.
  1069.      :li.KillWordPrev now works correctly.
  1070.      :li.FindReplace command works correctly if WSStyleSearch == 1.
  1071.     :eul.
  1072.   :eul.
  1073.  :li.0.34 
  1074.   :ul compact.
  1075.    :li.1995/10/15
  1076.     :ul compact.
  1077.      :li.Minor fixes &. docs updates...
  1078.     :eul.
  1079.   :eul.
  1080.  :li.0.33 
  1081.   :ul compact.
  1082.    :li.1995/10/01
  1083.     :ul compact.
  1084.      :li.SIGBREAK handler now works again.
  1085.      :li.Fixes in C/C++ smart indentation (if in switch, ...)
  1086.      :li.Pascal highlighting mode.
  1087.      :li.Printing.
  1088.      :li.Rewritten folding. Now supports nested folds, opening closing folds, and persistent folds.
  1089.      :li.New folding commands&colon. FoldCreate, FoldDestroy, FoldOpen, FoldClose, FoldPromote, FoldDemote, FoldCreateByRegexp, FoldOpenAll, FoldOpenNested, FoldCloseAll, FoldDestroyAll, FoldToggleOpenClose, MoveFoldPrev, MoveFoldNext.
  1090.      :li.New settings&colon. SaveFolds, CommentStart, CommentEnd.
  1091.      :li.Word characters can be configured using WordChars setting.
  1092.     :eul.
  1093.   :eul.
  1094.  :li.0.32 
  1095.   :ul compact.
  1096.    :li.1995/08/15
  1097.     :ul compact.
  1098.      :li.New search routines. (Find, FindReplace, FindRepeat, FindRepeatReverse, FindRepeatOnce, ...)
  1099.      :li.Block-local searches.
  1100.      :li.In buffer-list, most recently used files will now be listed first.
  1101.      :li.Main menu bar can now be hidden.
  1102.      :li.Performance improvements.
  1103.      :li.Bookmarks! New commands&colon. PlaceBookmark, GotoBookmark, RemoveBookmark
  1104.      :li.Files can now be saved and closed from window list.
  1105.      :li.Optimized CMode indentation. Also more configurable.
  1106.     :eul.
  1107.   :eul.
  1108.  :li.0.31
  1109.   :ul compact.
  1110.    :li.1995/07/31
  1111.     :ul compact.
  1112.      :li.Bug fixed in undo/redo when UndoLimit reached.
  1113.     :eul.
  1114.   :eul.
  1115.  :li.0.30
  1116.   :ul compact.
  1117.    :li.1995/07/30
  1118.     :ul compact.
  1119.      :li.Folding support.
  1120.      :li.New commands&colon. FoldLine, UnfoldLine, UnfoldNextLine, UnfoldAll, ClearFolds, FoldIndent, FoldRegexp, FoldBlock, UnfoldBlock, FoldBlockRegexp
  1121.      :li.BackSpace at eof when TrimLine is enabled will not abort.
  1122.      :li.Incremental search (IncrementalSearch).
  1123.      :li.PgUp/PgDn on a file prompt will show a list of files.
  1124.      :li.New command&colon. CompleteWord
  1125.     :eul.
  1126.   :eul.
  1127.  :li.0.29
  1128.   :ul compact.
  1129.    :li.1995/07/20
  1130.     :ul compact.
  1131.      :li.Regexps can now be case insensitive (\C,\c).
  1132.      :li.BlockRead/BlockReadColumn/BlockWrite commands.
  1133.      :li.Block marking can now be undone.
  1134.      :li.Commands that prompt for string/int values can now take string/int arguments.
  1135.      :li.Multiple compile-regex statements can be specified simultaneously
  1136.      :li.Minor bug-fixes in regexps ([\x00-\xFF] now works).
  1137.      :li.Filter for filename completion.
  1138.      :li.New commands&colon. SwitchTo ChangeKeys ChangeFlags ShowMenu 
  1139.      :li.New options&colon. CompletionFilter DefaultModeName
  1140.     :eul.
  1141.   :eul.
  1142.  :li.0.28
  1143.   :ul compact.
  1144.    :li.1995/07/08
  1145.     :ul compact.
  1146.      :li.- Needs to have documentation updated.
  1147.      :li.Mostly rewritten PERL highlighting. Works much better now.
  1148.      :li.Completely new config file syntax.
  1149.      :li.New commands&colon. ASCIITable, LoadFileInMode
  1150.      :li.CMode indentation should now work for Perl (close enough).
  1151.      :li.Highlighting for ADA and Email messages.
  1152.     :eul.
  1153.   :eul.
  1154.  :li.0.27
  1155.   :ul compact.
  1156.    :li.1995/06/19
  1157.     :ul compact.
  1158.      :li.Minor bug fixes.
  1159.     :eul.
  1160.   :eul.
  1161.  :li.0.26
  1162.   :ul compact.
  1163.    :li.1995/06/18
  1164.     :ul compact.
  1165.      :li.New commands&colon. {Char,Line,Block}Case{Up,Down,Toggle}
  1166.      :li.New setting&colon. LoadAfterQuit -- if set to 1, editor will prompt to load another file before exiting.
  1167.      :li.New setting&colon. ShowScrollBar {0,1}.
  1168.     :eul.
  1169.   :eul.
  1170.  :li.0.25
  1171.   :ul compact.
  1172.    :li.1995/06/12
  1173.     :ul compact.
  1174.      :li.Minor bug fix in REXX highlighting ("\"", ...)
  1175.      :li.Bug fixes in word wrap.
  1176.      :li.BlockCut now doesn't move the cursor to the block beginning.
  1177.      :li.New commands&colon. MoveLineTop, MoveLineCenter, MoveLineBottom.
  1178.      :li.Editor will now check if the file has changed before the first modification.
  1179.      :li.Found text is now highlighted.
  1180.      :li.New CMode setting&colon. C.BraceOfs and command&colon. ChangeCBraceOfs
  1181.      :li.New commands&colon. MovePrevPos, SavePos, MoveSavedPos, MoveSavedPosCol, MoveSavedPosRow
  1182.     :eul.
  1183.   :eul.
  1184.  :li.0.24
  1185.   :ul compact.
  1186.    :li.1995/06/06
  1187.     :ul compact.
  1188.      :li.When checking for file modification time of last change is now used instead of the time of last access.
  1189.      :li.Wildcard support for file loading.
  1190.     :eul.
  1191.   :eul.
  1192.  :li.0.23
  1193.   :ul compact.
  1194.    :li.1995/06/04
  1195.     :ul compact.
  1196.      :li.Ctrl+C and Ctrl+Break are now disabled.
  1197.      :li.Ctrl+S and Ctrl+C keys are now again recognised in Windowed mode.
  1198.      :li.Fixed problem when spawning a subprocess in Windowed mode.
  1199.      :li.New command&colon. ShowEntryScreen
  1200.      :li.ListRoutines in CMode only shows functions not their prototypes.
  1201.      :li.New setting&colon. SysClipboard - if set to 1, editor will automatically use system clipboard.
  1202.      :li.New command&colon. ToggleSysClipboard.
  1203.      :li.Minor bug fix in PM clipboard support.
  1204.      :li.New commands&colon. BlockPasteStream, BlockPasteColumn and BlockPasteLine. BlockPaste command will now always paste in current block mode, not in the last Copy/Cut mode.
  1205.      :li.More than 4 commands can be bound to a key (actually this worked since 0.18, but was not documented).
  1206.      :li.New command&colon. FileReload.
  1207.      :li.Editor will now check if file has changed on disk before saving it.
  1208.     :eul.
  1209.   :eul.
  1210.  :li.0.22
  1211.   :ul compact.
  1212.    :li.1995/05/28
  1213.     :ul compact.
  1214.      :li.But fix in regular expressions (nested +#*@).
  1215.      :li.Changes in regular expression syntax.
  1216.      :li.New function&colon. ListRoutines. Shows functions in current buffer.
  1217.      :li.New setting&colon. RoutineRx
  1218.     :eul.
  1219.   :eul.
  1220.  :li.0.21
  1221.   :ul compact.
  1222.    :li.1995/05/21
  1223.     :ul compact.
  1224.      :li.REXX mode smart indentation.
  1225.      :li.KillWord &. KillWordPrev commands now actually work.
  1226.      :li.Pressing Ctrl+Enter to begin Search will toggle case sensitivity of search.
  1227.      :li.New option 'Trim' and commands 'ToggleTrim', 'LineTrim'. Removes whitespace from end of lines.
  1228.      :li.New option 'ShowMarkers' and command 'ToggleShowMarkers'. Shows end of line and end of file markers.
  1229.      :li.Bug fix in PERL highlighting (caused lockups)
  1230.      :li.Bug fixes and improvements in regular expressions.
  1231.     :eul.
  1232.   :eul.
  1233.  :li.0.20
  1234.   :ul compact.
  1235.    :li.1995/05/18
  1236.     :ul compact.
  1237.      :li.Major bug fixes in word wrap.
  1238.      :li.New commands&colon. MovePrevTab, MoveNextTab.
  1239.      :li.Bug fixes in BlockIndent and BlockUnindent (stream/line mode)
  1240.     :eul.
  1241.   :eul.
  1242.  :li.0.19
  1243.   :ul compact.
  1244.    :li.1995/05/16
  1245.     :ul compact.
  1246.      :li.Function names in REXX are now highlighted.
  1247.      :li.WordWrap can be set to 0 - disabled, 1 - wrap line at right margin and 2 - wrap paragraph continously. Function ToggleAutoWrap renamed to ToggleWordWrap.
  1248.      :li.New way to set left/right margin (SetLeftMargin, SetLeftMargin)
  1249.      :li.Minor fix in PERL highlighting.
  1250.     :eul.
  1251.   :eul.
  1252.  :li.0.18
  1253.   :ul compact.
  1254.    :li.1995/05/13
  1255.     :ul compact.
  1256.      :li.PERL Syntax Higlighting.
  1257.      :li.Memory allocation problem in tab expansion.
  1258.      :li.Wordwrap now strips all spaces on beginning of line (except on the first line of the paragraph).
  1259.      :li.Tabs can be set to any number between 1 and 32.
  1260.      :li.Changed names of buffer flags (WrapOn -> AutoWrap, UndoRedo -> Undo, ShowTab -> ShowTabs)
  1261.      :li.New commands&colon. ToggleAutoIndent, ToggleExpandTabs, ToggleShowTabs, ToggleUndo, ToggleReadOnly, ToggleKeepBackups, ToggleMatchCase, ToggleBackSpKillTab,
  1262.          ToggleDeleteKillTab, ToggleSpaceTabs, ToggleIndentWithTabs, ToggleBackSpUnindents, ToggleAutoWrap.
  1263.      :li.New commands&colon. WinRefresh, ChangeTabSize, ChangeCIndent, ChangeLeftMargin, ChangeRightMargin.
  1264.      :eul.
  1265.   :eul.
  1266.  :li.0.17
  1267.   :ul compact.
  1268.    :li.1995/05/10
  1269.     :ul compact.
  1270.      :li.Minor fix in word-wrap.
  1271.      :li.Screen repaint problems when shelling out fixed.
  1272.      :li.Blinking disabled for full-screen, high-intensity background colors can now be used.
  1273.     :eul.
  1274.   :eul.
  1275.  :li.0.16
  1276.   :ul compact.
  1277.    :li.1995/05/06
  1278.    :ul compact.
  1279.     :li.Minor speedups in screen handling and highlighting.
  1280.     :li.Regular expressions can now match start and end of words using .
  1281.     :li.Regexp replace can paste entire matched string using &.
  1282.     :li.Regexp search/replace could match part of just replaced string.
  1283.     :li.New commands&colon. MoveLastNonWhite, MovePrevEqualIndent and MoveNextEqualIndent, LineDuplicate, InsPrevLineChar, InsPrevLineToEol.
  1284.     :li.New color config. 'C.Function' for functions in C highlighting mode.
  1285.     :li.Improved CMode hilit, preprocessor hiliting improved (strings, comments, numbers)
  1286.    :eul.
  1287.   :eul.
  1288.  :li.0.15
  1289.   :ul compact.
  1290.    :li.1995/04/29
  1291.     :ul compact.
  1292.      :li.Speed improvement in CMode auto indent.
  1293.      :li.Delete command can now delete full tabs instead of converting them to spaces.
  1294.      :li.When closing a modified file, editor prompts you to save it.
  1295.      :li.Automatic indentation can now use tabs.
  1296.      :li.Manual and automatic wordwrap.
  1297.     :eul.
  1298.    :li.1995/04/24
  1299.     :ul compact.
  1300.      :li.Backspace can now delete full tabs instead of converting them to spaces (See BackSpace and KillBackTab).
  1301.      :li.Backspace can unindent to previous indentation level.
  1302.     :eul.
  1303.    :li.1995/04/20
  1304.     :ul compact.
  1305.      :li.Basic mouse support.
  1306.     :eul.
  1307.    :li.1995/04/12
  1308.     :ul compact.
  1309.      :li.Configurable colors/keywords in C/REXX mode.
  1310.     :eul.
  1311.   :eul.
  1312.  :li.0.14
  1313.   :ul compact.
  1314.    :li.1995/04/07
  1315.     :ul compact.
  1316.      :li.Characters could not be entered using AltGr on international keyboards.
  1317.      :li.Immediatelly doing an undo on a newly loaded file deleted the first line.
  1318.      :li.Ascii characters >= 128 can be now entered without quote command (C-Q).
  1319.      :li.IPF Syntax highlighting.
  1320.     :eul.
  1321.   :eul.
  1322.  :li.0.13
  1323.   :ul compact.
  1324.    :li.1995/04/03
  1325.     :ul compact.
  1326.      :li.Bug fix in regular expressions.
  1327.      :li.Bug fixes in compiler support
  1328.      :li.Editor clipboard can now be copied to/from PM clipboard.
  1329.     :eul.
  1330.   :eul.
  1331.  :li.0.12
  1332.   :ul compact.
  1333.    :li.1995/03/30
  1334.     :ul compact.
  1335.      :li.Compiler support + error message parsing
  1336.     :eul.
  1337.    :li.1995/03/25
  1338.     :ul compact.
  1339.      :li.Paren matching (Command&colon. MatchBracket).
  1340.      :li.Bug fixes in CMode smart indentation.
  1341.     :eul.
  1342.   :eul.
  1343.  :li.0.11
  1344.   :ul compact.
  1345.    :li.1995/03/11
  1346.     :ul compact.
  1347.      :li.Unlimited undo now works again.
  1348.     :eul.
  1349.    :li.1995/03/18
  1350.     :ul compact.
  1351.      :li.Entire blocks of C code can now be reindented (BlockReIndent)
  1352.      :li.Search can now be case insensitive (SearchMatchCase - toggle). Option&colon. MatchCase, Command&colon. SearchMatchCase
  1353.      :li.Regular expression find/replace works (case sensitive only)
  1354.     :eul.
  1355.    :li.1995/03/19
  1356.     :ul compact.
  1357.      :li.Fixed a bug in redo (last command could not be undone)
  1358.      :li.New option&colon. KeepBackups -- if set to 0, backup files will be deleted after a succesful save.
  1359.     :eul.
  1360.   :eul.
  1361.  :li.0.10
  1362.   :ul compact.
  1363.    :li.1995/03/06
  1364.     :ul compact.
  1365.      :li.Fixed CMode indent when tabs are present in the file.
  1366.      :li.Prompts now retain previous text only if you try to edit it.
  1367.     :eul.
  1368.    :li.1995/03/04
  1369.     :ul compact.
  1370.      :li.4DOS/4OS2 style filename completion (FileOpen, ...).
  1371.     :eul.
  1372.    :li.1995/02/25
  1373.     :ul compact.
  1374.      :li.New load routine, much faster in some cases.
  1375.      :li.Undo/Redo can now be limited (if you hate to waste memory).
  1376.     :eul.
  1377.    :li.1995/02/19
  1378.     :ul compact.
  1379.      :li.C Mode indentation level can now be specified (C.Indent)
  1380.      :li.Bug fixes in screen redraw. 
  1381.      :li.Editor will now scroll text instead of always redisplaying the screen.
  1382.      :li.Regular expressions (Search only).
  1383.     :eul.
  1384.   :eul.
  1385.  :li.0.09 
  1386.   :ul compact.
  1387.    :li.1995/02/08   
  1388.     :ul compact.
  1389.      :li.First public release (Version 0.09b)
  1390.     :eul.
  1391.   :eul.
  1392. :eul.
  1393.  
  1394.  
  1395. .br
  1396. :h1.Things To Do 
  1397. :i1 id=todo.Things To Do
  1398.  
  1399. :lines align=center.
  1400. :hp2.Short term&colon.:ehp2.
  1401. :elines.
  1402.  
  1403. :ul compact.
  1404.  :li.:hp2.Improve documentation:ehp2.
  1405.  :li.DrawMode
  1406.  :li.Block sort/detab/entab, copy-w/append, cut-w/append
  1407.  :li.Piping block to program redirection of program output to buffer
  1408.  :li.HexMode
  1409.  :li.REXX macros support.
  1410.  :li.Menus should determine keybindings automatically.
  1411. :eul.
  1412. :lines align=center.
  1413. :hp2.Future&colon.:ehp2.
  1414. :elines.
  1415. :ul compact.
  1416.  :li.PM Version.
  1417.  :li.Script language (C like, also REXX support).
  1418.  :li.CVS/RCS support.
  1419.  :li.Save/Restore desktop.
  1420.  :li.Regexp optimizer &. improved regexps.
  1421. :eul.
  1422.  
  1423. :lines align=center.
  1424. :hp2.Comments and suggestions are appreciated.:ehp2.
  1425. :elines.
  1426.  
  1427.  
  1428. :euserdoc.