258 lines
10 KiB
Plaintext
258 lines
10 KiB
Plaintext
|
DESCRIPTION
|
|||
|
|
|||
|
CMDEDIT (OS2EDIT) is a program that allows editing and retrieval of the
|
|||
|
command line, allows commands to be assigned to functions keys, and allows
|
|||
|
aliases for commands to be created
|
|||
|
|
|||
|
COMMAND LINE
|
|||
|
|
|||
|
CMDEDIT [options] [aliasfile [cmdfile]] (DOS)
|
|||
|
CMDEDIT -q [cmdfile] (DOS)
|
|||
|
OS2EDIT (OS/2 1.x)
|
|||
|
OS22EDIT (OS/2 2.x)
|
|||
|
|
|||
|
Options:
|
|||
|
|
|||
|
-i Go to insert mode at the start of each command.
|
|||
|
-s Make insert mode 'sticky' between commands. (overrides -i)
|
|||
|
-e Always save commands at the end of the buffer.
|
|||
|
Normally, duplicate commands are not stored in the buffer.
|
|||
|
-a Use the aliases regardless of the process requesting the string.
|
|||
|
Normally it tries to determine if COMMAND.COM is the requesting
|
|||
|
process, but the check does not work properly on some systems,
|
|||
|
or if a subsequent command processor has been invoked.
|
|||
|
-f Stop completing a file name when multiple choices exist. See
|
|||
|
descriptions of Tab and Shift-Tab keys for details.
|
|||
|
-l Complete file names in lower case
|
|||
|
-mx Character x will be used to separate multiple commands
|
|||
|
-h Directory commands (u,d,o,r) must be preceded with '#'
|
|||
|
-\ Append '\' after directories, and ' ' after normal files
|
|||
|
during filename completion
|
|||
|
|
|||
|
Notes:
|
|||
|
|
|||
|
- If the environment variable CMDEDIT (or OS2EDIT) is set, and
|
|||
|
no command is given to CMDEDIT (OS2EDIT) the environment variable
|
|||
|
will be used as the command line.
|
|||
|
|
|||
|
- [cmdfile] may be used to save the command buffer if CMDEDIT is
|
|||
|
unloaded then reloaded. For example:
|
|||
|
|
|||
|
cmdedit -q cmd.fil
|
|||
|
cmdedit alias.fil cmd.fil
|
|||
|
|
|||
|
will use cmd.fil to save/restore the internal command buffer.
|
|||
|
|
|||
|
Notes for OS/2 1.x:
|
|||
|
|
|||
|
- OS2EDIT.DLL is also loaded and needs to be in a LIBPATH directory
|
|||
|
(where you keep your other .DLL files)
|
|||
|
|
|||
|
- You must remove the SET KEYS=ON statment from CONFIG.SYS
|
|||
|
or change it to SET KEYS=OFF.
|
|||
|
|
|||
|
- You may not pass the command line directly to OS2EDIT. You must
|
|||
|
use the environment variable method to pass the command line.
|
|||
|
|
|||
|
Notes for OS/2 2.x.
|
|||
|
|
|||
|
- OS22EDIT is not run directly. Instead, change CONFIG.SYS as follows
|
|||
|
|
|||
|
SET OS2_SHELL=[drive][path]CMD.EXE ...
|
|||
|
becomes
|
|||
|
SET OS2_SHELL=[drive][path]OS22EDIT.EXE [drive][path]CMD.EXE ...
|
|||
|
|
|||
|
In this case, you must set the OS2EDIT environment variable
|
|||
|
in CONFIG.SYS, in order for it to be noticed by OS22EDIT.
|
|||
|
|
|||
|
- Only environment variables set in CONFIG.SYS are available to
|
|||
|
OS22EDIT.
|
|||
|
|
|||
|
- You may not pass the command line directly to OS22EDIT. You must
|
|||
|
use the environment variable method to pass the command line.
|
|||
|
This environment variable must be set in CONFIG.SYS.
|
|||
|
|
|||
|
|
|||
|
- OS2EDIT.DLL is not needed
|
|||
|
|
|||
|
The default alias file name is
|
|||
|
|
|||
|
none (DOS)
|
|||
|
C:\ALIAS.OS2 (OS/2)
|
|||
|
|
|||
|
|
|||
|
FORM OF THE ALIAS FILE
|
|||
|
|
|||
|
The alias file contains records of the following form
|
|||
|
|
|||
|
word string - When <word> appears as the first word on the
|
|||
|
command line, it will be substituted with
|
|||
|
<string> before being passed to DOS.
|
|||
|
|
|||
|
<Fn> string - When <Fn> is hit, CMDEDIT behaves as if <string> were
|
|||
|
typed by you. It is inserted if you are in insert
|
|||
|
mode, overstrikes if not, etc..
|
|||
|
keys F1 thru F40 are supported.
|
|||
|
|
|||
|
<Fn> !string - As above, but an <ENTER> is generated
|
|||
|
following string.
|
|||
|
|
|||
|
Only keys F1 through F10 on the keyboard are actually used. For F11 thru
|
|||
|
F20, use the shift key, for F21 to F30 use Ctrl key and for F31 to F40 use
|
|||
|
the Alt key.
|
|||
|
|
|||
|
Within the replacement string, the symbols %1 %2 ... %9 are replaceable by
|
|||
|
parameters. When the alias is invoked, each blank delimited word following
|
|||
|
the alias word is considered to be a parameter to the alias. Parameters
|
|||
|
which have no corresponding %n in the alias are appended to the end of the
|
|||
|
command. For example, if
|
|||
|
|
|||
|
printps myfile lpt1
|
|||
|
|
|||
|
is typed, and the alias
|
|||
|
|
|||
|
printps copy preamble.ps+%1.c+eoj.ps
|
|||
|
|
|||
|
is present in the alias list, the resulting DOS command would be
|
|||
|
|
|||
|
copy preamble.ps+myfile.c+eoj.ps lpt1
|
|||
|
|
|||
|
A symbol such as %name% within an alias will be replaced with the corresponding
|
|||
|
DOS or OS/2 environment variable name. For example, the alias
|
|||
|
|
|||
|
addpath set path=%path%;%1
|
|||
|
|
|||
|
will cause another directory to be added to your path when used.
|
|||
|
|
|||
|
Aliases are substituted recursively. For example, if the aliases
|
|||
|
|
|||
|
rn rename %1 %2
|
|||
|
bk rn %1.c %1.bak
|
|||
|
|
|||
|
are present, typing
|
|||
|
|
|||
|
bk foo
|
|||
|
|
|||
|
is equivalent to typing
|
|||
|
|
|||
|
rename foo.c foo.bak
|
|||
|
|
|||
|
Recursive definitions are handled as well. The alias
|
|||
|
|
|||
|
dir dir *.c
|
|||
|
|
|||
|
is perfectly alright, although somewhat limited in its usefulness.
|
|||
|
EDITING FEATURES
|
|||
|
|
|||
|
Whenever a command is executed, CMDEDIT will save the command in a buffer for
|
|||
|
future recall and editing. When the buffer becomes full, the oldest command is
|
|||
|
discarded. CMDEDIT will not save a second copy of a command that is already
|
|||
|
present in the buffer.
|
|||
|
|
|||
|
Multiple commands
|
|||
|
|
|||
|
! (or as set by -m) Separates multiple commands on a line.
|
|||
|
A real exclamation point must be entered as !!.
|
|||
|
|
|||
|
Command Retrieval
|
|||
|
|
|||
|
Key Alternate Meaning
|
|||
|
|
|||
|
Cursor-Up retrieve previous command from the buffer
|
|||
|
Cursor-Down retrieve next command from the buffer
|
|||
|
Ctrl-Cursor-Up Alt-E retrieve first command from buffer
|
|||
|
Ctrl-Cursor-Down Alt-B retrieve last command from buffer
|
|||
|
Ctrl-Delete Alt-X delete the current command from the buffer
|
|||
|
Page-Down save the unentered command line in the buffer
|
|||
|
Alt-C list all commands in the buffer
|
|||
|
Alt-A list all current aliases
|
|||
|
Ctrl-Tab Alt-N retrieve next command that begins as ... see below
|
|||
|
Alt-Tab Alt-P retrieve previous command that begins as ...
|
|||
|
Ctrl-Insert Alt-Z retrieve accidentally erased line
|
|||
|
|
|||
|
The Alt-Tab and Ctrl-Tab commands are used by typing the beginning of a command
|
|||
|
which is in the buffer then pressing the key. The entire command will then
|
|||
|
appear on the command line. You can press Alt-Tab again to see other commands
|
|||
|
starting with that prefix.
|
|||
|
|
|||
|
Cursor movement
|
|||
|
|
|||
|
Cursor-Left move left on command line
|
|||
|
Cursor-Right move right on command line
|
|||
|
Home move to beginning of line
|
|||
|
End move to end of line
|
|||
|
Ctrl-Cursor-Left move left word
|
|||
|
Ctrl-Cursor-Right move right word
|
|||
|
|
|||
|
Line editing
|
|||
|
|
|||
|
Insert toggle in and out of insert mode
|
|||
|
Delete delete character under cursor
|
|||
|
Ctrl-Delete delete to end of word
|
|||
|
Backspace delete character to left of cursor
|
|||
|
Ctrl-Backspace delete to beginning of word
|
|||
|
Escape delete input line and leave insert mode
|
|||
|
Ctrl-Home erase to beginning of line
|
|||
|
Ctrl-End erase to end of line
|
|||
|
Alt-H toggle the -h option interactively
|
|||
|
|
|||
|
Retrieving screen items
|
|||
|
|
|||
|
Alt-Cursor-Up Alt-U move a cursor up the screen
|
|||
|
Alt-Cursor-Down Alt-D move a cursor down the screen
|
|||
|
Alt-Cursor-Left Alt-L move a cursor left on the screen
|
|||
|
Alt-Cursor-Right Alt-R move a cursor right on the screen
|
|||
|
Alt-Home Alt-0 move screen cursor to column 0
|
|||
|
Alt-End Alt-2 retrieve two lines from screen
|
|||
|
|
|||
|
This is useful for changing your path. Type path, then retrieve it from
|
|||
|
the screen, edit it into a command and press Enter. You can also type a
|
|||
|
batch file, then execute certain commands from it using this capability.
|
|||
|
|
|||
|
File name completion
|
|||
|
|
|||
|
Tab Complete file name
|
|||
|
Shift-Tab / List choices if -f option in effect.
|
|||
|
\ List previous file name if -f not in effect.
|
|||
|
|
|||
|
These keys are used by typing the first part of a filename and then
|
|||
|
pressing Tab. For example, typing edit my<TAB> will expand to edit
|
|||
|
MYFILE.C if the file MYFILE.C is the first file starting with 'MY' in the
|
|||
|
current directory. If Tab is pressed before the first space on the line,
|
|||
|
the path is searched for a matching command. For example, typeing
|
|||
|
cmde<TAB> might expand to c:\lang\bin\CMDEDIT.EXE. Subsequent TABS
|
|||
|
will list the next file matching the pattern. Shift-Tab will back up one
|
|||
|
file name. With -f in effect, the file name is only completed to a point
|
|||
|
where a choice must be made, and Shift-Tab will list those choices. More
|
|||
|
characters may then by typed to differentiate between the choices and Tab
|
|||
|
hit again. Also the environment variable CMDMATCH controls which file
|
|||
|
extensions are to be matched. For example, set CMDMATCH=.C.H.ASM means
|
|||
|
only match files of type .C, .H and .ASM. set CMDMATCH=~.OBJ.EXE means
|
|||
|
match all files except those of type
|
|||
|
.OBJ and .EXE.
|
|||
|
|
|||
|
DIRECTORY COMMANDS
|
|||
|
|
|||
|
I hate typing the '\' character. It's in an awkward spot on the keyboard.
|
|||
|
This fact prompted me to put some support into CMDEDIT to change the
|
|||
|
current working directory without typing '\'. I also like to change my
|
|||
|
current working directory and drive as an atomic operation. In the
|
|||
|
directory commands, the following substitutions are made in a path.
|
|||
|
|
|||
|
/ becomes \
|
|||
|
' ' becomes \
|
|||
|
- becomes ..\
|
|||
|
|
|||
|
For example, "--codegen 8086 c" and "--codegen/8086/c" both become
|
|||
|
"..\..\codegen\8086\c".
|
|||
|
|
|||
|
Commands
|
|||
|
|
|||
|
d [d:]path Set current drive to d and directory to path
|
|||
|
o [d:]path The "over" command. Equivalent to #d [d:]..\path
|
|||
|
u [n] Go up n levels in the tree
|
|||
|
r Return to the previous drive and directory
|
|||
|
|
|||
|
You can alias these commands as well. I have aliases for 'd', 'o', 'u' and
|
|||
|
'r' in my alias file.
|