home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 June / SIMTEL_0692.cdr / msdos / keyboard / cedwars2.arc / CED.ART < prev    next >
Text File  |  1987-11-15  |  17KB  |  387 lines

  1. Living With DOS:  CED, the Command Editor
  2. by Barry Simon
  3.  
  4. Copyright (c) 1986, Capital PC User Group Inc.
  5. This material may be republished only for internal use
  6. by other not-for-profit user groups.
  7.  
  8. Posted on Compuserve with permission of CPCUG.  May not be
  9. reproduced without including the above copyright notice.
  10.  
  11. Published in the January 1986 issue of the Capital PC Monitor.
  12.  
  13.  
  14. This article is the second in a series that discusses products
  15. and utilities that enhance the usefulness and ease of use of
  16. DOS, the Disk Operating System.  This article discusses a
  17. program called CED (for Command EDitor) by Chris Dunford.  CED
  18. remains loaded in  memory and available while you are in DOS and
  19. in some additional programs like EDLIN and DEBUG; it sits
  20. between the commands you type in and DOS.
  21.  
  22. CED is the kind of program that you can't do without once you
  23. start using it.  Indeed, if I were travelling somewhere and were
  24. told that I'd have a PC with only the basic application
  25. software, the first utility I would be sure to bring along would
  26. be CED.
  27.  
  28. CED was originally placed in the public domain by its author.
  29. An enhanced version, PROFESSIONAL CED, was recently introduced
  30. as a commercial product.  This review discusses the public
  31. domain version of CED, version 1.0D; some of the enhanced
  32. features of the commercial version will be described in a
  33. separate article that will appear in a future issue of the
  34. MONITOR.
  35.  
  36.  
  37. OVERVIEW
  38.  
  39. CED provides four major facilities:
  40.  
  41.   1.  command editing
  42.   2.  a command stack or buffer
  43.   3.  recalling a program with the same parameters
  44.   4.  synonyms
  45.  
  46. Imagine exiting your word processor after working on a letter or
  47. document.  You enter a command in DOS, perhaps copying a file to
  48. the directory where you have your spelling checker, a directory
  49. with a long path name.  Before hitting <enter>, you scan the
  50. command and discover a typing error in the middle.
  51. Unfortunately, DOS does not have a full-function command editor
  52. so you cannot go back and edit the command as you can with a
  53. word processor; instead, you have to retype the correct command.
  54. CED resolves this problem by providing a command editing
  55. capability for DOS.
  56.  
  57. And, having learned to use the DOS editing keys (F1, F3) to
  58. avoid having to retype the last command, haven't you wished that
  59. you had the capability to recall the command that was made the
  60. one before the last one or even six commands ago?  That's what
  61. the command stack is all about.
  62.  
  63. And having used your word processing program to edit a file
  64. "therise.and", haven't you wished that you could call up the
  65. program on this last used file without having to remember the
  66. precise file name.  That's what parameter recall is all about.
  67.  
  68. And aren't there some long commands that you're tired of typing
  69. and you wish you could abbreviate them or use shorthand
  70. notations for them?  That's what the synonyms are all about --
  71. creating macros as shorthand methods for issuing a set of
  72. commands.
  73.  
  74.  
  75. The Command Line Editor
  76.  
  77. The command editor provides most of the features that you would
  78. want and expect in editing the current line.  You can move the
  79. cursor non-destructively with the <left-> and <right-arrow> keys
  80. and use the <delete> key to delete the character at the cursor.
  81. In the default mode, striking a key overwrites the character at
  82. the cursor, i.e., replaces the character at the cursor with the
  83. character that was struck.  The <insert> key toggles between
  84. this mode and an insert mode where the key struck is inserted
  85. just before the cursor.  The <home> and <end> keys take the
  86. cursor to the beginning and end of the line respectively.
  87. <Ctrl-End> erases from the cursor to the end of the line; <Ctrl-
  88. left-> and <Ctrl-right-arrow> move the cursor a word at a time.
  89.  
  90. The editing keys are helpful in normal use but are especially
  91. useful because you can recall previous commands from a stack and
  92. edit them.  For example, PC-WRITE has an editing program called
  93. ed.exe and a printing program called pr.exe.  After exiting the
  94. editor which you called up with ed FILENAME, you need only
  95. recall this command from the stack, hit <home>, then "pr" and
  96. finally <enter> to issue the command pr FILENAME.
  97.  
  98.  
  99. The Command Stack
  100.  
  101. The <left-> and <right-arrow> keys move the cursor in the
  102. obvious manner.  It would be useful to have full-screen editing
  103. in DOS so that one could use the up and down cursor to move
  104. around the screen reissuing commands.  In many ways, the command
  105. stack does precisely that; however, it also allows you to use
  106. commands that have scrolled off the screen!
  107.  
  108. When CED is invoked, it reserves 2K of memory (this number can
  109. be modified) to store the last 2,000 characters sent as commands
  110. to DOS.  After issuing a new command, the <up-arrow> key
  111. restores that command to the command line.  If you just <enter>
  112. without any editing of the command line, you move one position
  113. down in the stack; that is, the <up-arrow> key recalls the
  114. command just issued and the <down-arrow> key recalls the next
  115. command in the stack.  This is especially convenient for
  116. recycling a series of commands.
  117.  
  118. If you should change your mind while you're in the stack, you
  119. can press the <esc> key to blank the command line.
  120.  
  121. The stack idea is enhanced with many thoughtful extras which are
  122. typical of the CED program.  One is the "ignore character".  The
  123. ignore character tells CED not to include in the stack the
  124. command that follows.  The default value for the ignore
  125. character is <Ctrl-N> or ^N (* in PROFESSIONAL CED) but that can
  126. be changed by the user.  If, for example, you enter "dir" at the
  127. command line, the command is added to the stack.  However, by
  128. entering "^Ndir", the command is issued to DOS but is not placed
  129. in the stack.
  130.  
  131. This is especially useful for key redefinitions.  I have defined
  132. <F1> to mean "dir^" (where ^ means <enter>).  Because I can get
  133. that command by hitting <F1>, there is no reason to stack it, so
  134. <F1> is really defined to CED as "^Ndir^".  In general, you
  135. should only do this with redefinitions that end in <enter>.  For
  136. example, my <Alt-F1> key means "dir[]" where [] means space.
  137. Since I would want to recall a command such as "dir
  138. C:\bin\dump\vdump\ce*.*", I do not put a ^N before that dir.
  139.  
  140. Another use for the ignore character is to stack synonyms.  As
  141. I'll explain shortly, you can set up lists of short names for
  142. commands or sets of commands that you use often.  If there are
  143. sets of commands, both the synonym and the individual commands
  144. get stacked; depending upon the size of your commands, this
  145. could fill up the stack.  Thus, you would want to include the
  146. ignore character before the individual commands in your synonym
  147. definitions.  [This is not necessary in PROFESSIONAL CED because
  148. the commands within synonyms are NOT stacked.]  WARNING: Because
  149. of the way CED processes the ignore character, you should not
  150. include it in front of the first command in a multiple command
  151. synonym nor in front of a command which is a synonym if you have
  152. nested synonyms.
  153.  
  154.  
  155. Parameter Recall
  156.  
  157. One can tell CED that one wishes to have certain programs
  158. normally called up with the same parameters that were used the
  159. last time the program was loaded during the current seesion.
  160. Thus, if your word processor is called ed.exe and you issue the
  161. command
  162.  
  163.   ced pcall ed
  164.  
  165. then this feature is made available for the command "ed".  If
  166. you enter the command "ed oldfile newfile", CED stores the
  167. "oldfile newfile".  The next time you type "ed" followed by
  168. <Enter>, CED will resupply these parameters by flashing them on
  169. the screen and passing them to the ed-program.  If you want to
  170. apply ed to another file, typing "ed newerfile" does precisely
  171. what you want and stores "newerfile" in the pcall buffer.  If
  172. you want to invoke ed without any parameters, typing "ed " (note
  173. the space) followed by <Enter> will work.  The pcalled command
  174. can be a CED synonym.
  175.  
  176.  
  177. Loading CED and Issuing Commands to It
  178.  
  179. The final feature of CED is its "synonyms".  Before explaining
  180. this, it is first necessary to explain how you issue commands to
  181. CED.  There are two ways.
  182.  
  183. First, you can enter CED commands on the DOS command line.  For
  184. example, if CED has not been loaded before, entering "ced ic !"
  185. from the command line will load CED and change the ignore
  186. character (ic) to !.  The second way is to place any number of
  187. CED commands in a "configuration file" and enter the command
  188. "ced -fPATH\FILENAME", where PATH is the complete DOS path list
  189. and FILENAME is the name of your configuration file that
  190. contains the CED commands.  Thus, I load CED by including the
  191. following line in my autoexec.bat file
  192.  
  193.   ced -b2048,128,6144,256,256,128 -fC:\bin\lists\cedfile
  194.  
  195. (The -b part of the command sets the sizes for the various CED
  196. buffers to values different from their defaults.  Even with my
  197. large 6K buffer for synonyms, CED takes only 17K of memory.)
  198.  
  199. Some warnings are in order here:  Entering a command beginning
  200. with "ced" from DOS will not reload CED but, if issued in a
  201. BATch file, such a command will reload CED from scratch.
  202. Therefore, you should make sure that the initial loading of CED
  203. is in a BATch file.  A second point is that commands in a CED
  204. configuration file must not begin with "ced".  A third point is
  205. that one cannot call up synonyms from a BATch file.  (These
  206. restrictions do not apply to PROFESSIONAL CED.)
  207.  
  208. This dual method of setting synonyms is useful, especially since
  209. you can define a synonym more than once -- the last definition
  210. is the one that counts.  For example, when I want to try out a
  211. new and complicated definition, say to make "foo" mean COMMAND
  212. STRING, I type in "ced syn foo COMMAND STRING" at the DOS
  213. command line and then check that "foo" does what I want.  If it
  214. doesn't, I use CED to recall this command and edit the COMMAND
  215. STRING.  Once I get it right, I add the command to my CED
  216. configuration file.
  217.  
  218.  
  219. Synonyms
  220.  
  221. In its simplest form, a synonym allows you to replace a command
  222. with a shorter (or easier to remember) alternate name.  Thus,
  223. for example, you can make "d" a synonym for "dir" by issuing the
  224. command
  225.  
  226.   ced syn d dir
  227.  
  228. at the command line or by including the following line in your
  229. CED configuration file
  230.  
  231.   syn d dir
  232.  
  233. Once that is done, you can type "d" and the command "dir" is
  234. issued.
  235.  
  236. You may be concerned that calling up your favorite program,
  237. doodle, might be interpreted by the CED-enhanced DOS as
  238. diroodle, but CED is smarter than that; unless the synonym is
  239. the only thing on the line or is followed by a space, it is not
  240. treated as a synonym.  Moreover, if you type " d" (note the
  241. leading space), the synonym processing does not take place and a
  242. DOS error message is issued.
  243.  
  244. Like BATch files, synonyms also allow parameters.  Thus, if you
  245. type
  246.  
  247.   ced syn wd dir %1/w
  248.  
  249. at the command line, the command "wd \bin\batfiles" is
  250. interpreted by DOS as "wd dir \bin\batfiles/w" and produces a
  251. wide listing of the specified directory.
  252.  
  253. The above remark about "diroodle" illustrates a major difference
  254. between synonyms and keyboard enhancer products such as
  255. SUPERKEY, PROKEY, or ANSI.SYS.  If you used a keyboard enhancer
  256. to redefine "d" to mean "dir", then "doodle" would be sent to
  257. DOS as "diroodirle".  While synonyms can be assigned to any key
  258. or key combinations, you will want to limit a keyboard enhancer
  259. to Function Keys, <alt> and <ctrl> keys, which may be harder to
  260. remember and more awkward to strike.
  261.  
  262. One of the more powerful features of the synonym is the ability
  263. to issue several commands with one synonym.  While the default
  264. "chain character" is ^, I have used CED to change the chain
  265. character to & for clarity.  Here is an involved example, that I
  266. actually use, to demonstrate chaining multiple commands:
  267.  
  268.   syn ed key pcw/ml /op35&^Nmenu C:\words\pcwrite\m_pcwrit &^Ned@
  269.   %1&^Nkey /mc /op00&^Ncls
  270.  
  271. Using the above example, CED parses this single synonym into its
  272. five separate component commands:
  273.  
  274.   key pcw/ml /op35
  275.   menu C:\words\pcwrite\m_pcwrit
  276.   ed@ %1
  277.   key /mc /op00
  278.   cls
  279.  
  280. If I issue the command "ed my.ltr" to DOS, the following
  281. happens.  The first command loads the appropriate SUPERKEY
  282. macros; the second loads the file required to make my mouse work
  283. properly in my word processor; and the third command calls up my
  284. word processor by issuing the command "ed@ my.ltr".  The last
  285. two commands are not executed until I have completed my word
  286. processing.  When I exit my word processor, the fourth command
  287. is issued to clear my SUPERKEY macros.  The last command clears
  288. the screen.
  289.  
  290. When I want to run a program in a special directory, I include
  291. "cd\directory name" as one of the commands in the synonym and
  292. get a synonym similar to what are sometimes called gobatfiles.
  293.  
  294.  
  295. Synonyms vs. BATch Files
  296.  
  297. You may get the idea that a synonym is similar to a small BATch
  298. file and you're right about that.  So why not use BATch files?
  299.  
  300. In general, the storage space requirements and execution speeds
  301. for both synonyms and BATch files are nearly identical on a hard
  302. disk while synonyms are much faster on a floppy based system.
  303. For me, however, the deciding factor is convenience.  With
  304. synonyms, you can try one out by simply typing it on one line; to
  305. change or edit it, you recall that line from the stack and modify
  306. it.  With BATch files, you must load an editor, enter or modify
  307. the file, exit the edit, and then test the file.
  308.  
  309. Another convenience with synonyms is that all your short "batch
  310. files" are in one place.  When I had to transfer my files from a
  311. two hard disk system at the office to a one hard disk system at
  312. home, I merely had to do a single global search and replace from
  313. D: to C: within my CED configuration file rather than edit many
  314. individual files.  Using synonyms also allows me to order them
  315. any way I want in the file and thus keep track of them in a
  316. manner that wouldn't be possible with individual BATch files.
  317.  
  318. So why use BATch files at all?  Well, first, there is a
  319. limitation on how long synonyms can be (255 characters; 127 if
  320. the synonym is being typed in at the DOS command line rather
  321. than placed in a configuration file by your word processor or
  322. editor).  By nesting or chaining synonyms, one can often
  323. overcome this restriction.  Secondly, there are times when you
  324. would want to use the features of "echo off" to leave nothing on
  325. the screen.  Finally, there are various enhancements for BATch
  326. files available like Extended Batch Language (EBL) which make
  327. them useful in special situations where synonyms won't work.
  328.  
  329. If you've discovered the capability of BATch files to perform
  330. lots of little tasks, I can assure you that not long after you
  331. install CED, you'll be adding new synonyms to your configuration
  332. file and erasing old BATch files from your hard disk.
  333.  
  334.  
  335. Some Examples of Synonynms
  336.  
  337. For my purposes, the most common use for synonyms is the "gt
  338. synonym"; gt is an abbreviation for "go to".  For each
  339. subdirectory, I have one or more gt synonyms.  For example, both
  340. gtbatfiles and gtbat are synonyms for
  341.  
  342.   C:&^Ncd\bin\batfiles
  343.  
  344. Thus I need not remember the precise path or even name of my
  345. various directories and travelling around my hard disk is
  346. virtually effortless.  Of course some discipline is required to
  347. keep this list current so I have a synonym called makedir which
  348. not only makes a directory but calls up my editor acting on my
  349. CED configuration file to add the necessary gt synonyms.
  350.  
  351. Another invaluable use for synonyms is for executing programs
  352. that you always invoke with the same parameters.  For example,
  353. because I always call up FILE COMMAND II as "fc2/q", I use the
  354. synonym "syn fc fc2/q".  This saves me from having to remember
  355. the proper parameter necessary for execution.
  356.  
  357. Other useful synonyms involve control of your printer.  Make a
  358. file, say "send.tf", with only a Ctrl-L in it.  Put this file in
  359. the directory whose path name is "george" and make a synonym:
  360.  
  361.   syn tf copy "george"\send.tf prn
  362.  
  363. Then typing "tf" will send a top-of-page command to your
  364. printer.  I use several synonyms in this way, including one that
  365. I call "boldprn" that turns boldface print on and off.
  366.  
  367. You can also use synonyms to catch your typing mistakes.  For
  368. example, if you find that you often type "dit" rather than
  369. "dir"; then make "syn dit dir" a line in your CED configuration
  370. file.
  371.  
  372. A final use of synonyms that I should mention is to allow one to
  373. shorten one's DOS search path.  I once had C:\bin\private\norton
  374. in my path but now have synnoyms like "syn nu
  375. C:\bin\private\norton\nu" in my CED configuration file.
  376.  
  377.  
  378. SUMMARY
  379.  
  380. CED is a program that really fits the cliche that "once you use
  381. it, you don't know how you ever did without it".  If I had a
  382. penny for every keystroke it saved me over the past six months,
  383. I'd be a rich man.
  384.  
  385. CED, version 1.0D, is available on Compuserve.
  386. See the file PCED.ART for a discussion of PCED.