ByArgs plugin for Take Command / TCC / TCC/LE
beta version 0.92.0.5 2023-12-04
Charles Dye
Purpose:
This plugin provides keystrokes to move the cursor left or right by
arguments, and to delete arguments to the left or right of the cursor. By
default it replaces the normal functions of the Ctrl-Left,
Ctrl-Right, Ctrl-L, Ctrl-R,
and Ctrl-Backspace keys (which TCC uses to move or delete
by “words”). You can set different key bindings with the
BYARGS
command.
Installation:
To use this plugin, copy ByArgs.dll to
some known location on your hard drive. (If you are still using the 32-bit
version of Take Command, use ByArgs-x86.dll
instead of ByArgs.dll.) Load the plugin
with a PLUGIN /L
command, for example:
plugin /l c:\bin\tcmd\test\byargs.dll
If you copy this file to a subdirectory named PlugIns within your Take Command program directory, the plugin will be loaded automatically when TCC starts.
Using ByArgs:
While composing a command line, press any of the hotkeys to move the cursor or delete text by arguments, rather than by words:
Function: | Default binding: |
Move the cursor left by one argument | Ctrl-Left |
Move the cursor right by one argument | Ctrl-Right |
Delete the argument to the left of the cursor | Ctrl-L |
Delete the argument to the right of the cursor | Ctrl-R and Ctrl-Backspace |
When looking for arguments, the plugin considers double quotes and the brackets around function arguments (functions have their own argument lists with separate quoting.) If you remove one delimiter without removing its mate, for example by pressing Ctrl-L or Ctrl-R while the cursor is in the middle of a quoted argument, then the way the plugin parses the modified command line may seem strange….
ByArgs command:
This new command allows you to display or change settings for the ByArgs plugin. The syntax is:
BYARGS
/ML:
key /MR:
key /DL:
key /DR:
key /L /R /S
/ML: key | Set the hotkey(s) to move the cursor left one argument. |
/MR: key | Set the hotkey(s) to move the cursor right one argument. |
/DL: key | Set the hotkey(s) to delete the argument to the left of the cursor. |
/DR: key | Set the hotkey(s) to delete the argument to the right of the cursor. |
/L | Dumps a list of all supported hotkeys to standard output. |
/R | Restores the previously saved settings from the registry. |
/S | Saves the current settings to the registry as the new default. |
Some examples of valid hotkeys are Alt-L, Ctrl-Alt-Left, and Alt-[. To
disable any function, specify NONE
as the hotkey. You can specify
two hotkeys for a function; separate them with a comma, for example
/DR:CTRL-ALT-R,CTRL-ALT-BKSP
.
If no hotkeys are specified, the current settings will be displayed.
• Note: Many of the hotkeys which you can set are already used by Take Command, TCC, or Windows itself. If you select a new hotkey and pressing it causes strange things to happen, try reverting to the default value. If that works as expected, then the hotkey you tested is already used for some other function — try a different one.
/S
saves ByArgs’s current settings to the registry;
they will be used by default the next time you load the plugin. /R
attempts to restore any saved settings from the registry; if nothing has been
saved, /R
will have no effect. All settings are saved under the
key HKCU\Software\JPPlugins\ByArgs.
Limits and Limitations:
The maximum depth of nested functions is 511. Exceeding this limit may cause Bad Things to happen.
Startup Message:
This plugin displays an informational line when it initializes. The
message will be suppressed in transient or pipe shells. You can disable it
for all shells by defining an environment variable named NOLOADMSG
,
for example:
set /e /u noloadmsg=1
Acknowledgments:
Avi Shmidman provided the original idea for this plugin.
Status and Licensing:
Consider this beta software. It may well have issues. Try it at your own risk. If you find a problem, you can report it in the JP Software support forum.
ByArgs is currently licensed only for testing purposes. I may make binaries and source code available under some free license once I consider it ready for use.
Download:
You can download the current version of this plugin from http://charlesdye.net/dl/byargs.zip.