> just run the command in the context of some
> arbitrary window.

Wily does this.  The 2-1 chord uses the context of the object applied
to the command, rather than the command.

This makes commands like New useful from the top of a column.  When
you type in a new file name in its directory, highlight the name,
apply it with 2-1 to New atop the column, then a new file is created
in the directory where you selected the new filename, not the
directory from which you started acme.

This also makes centralized guide files more useful: you can write a
command once for very many directories.  When you select a file in a
directory window, and apply it to the single, centralized guide file
in a different directory, the command runs in the selected file's
window rather than the guide's.

After switching to acme, I've say that if you can write a guide file
into the directory you're working with, you end up with smaller guide
files, which usually works faster.  However, with directories you
can't write to, you have to store the guide somewhere else, which
means you have to copy the command into the context you work with to
apply it to a selection in that directory's window.  With commands
that apply across a directory tree (eg version control), this can
result in some duplication, which means if you change an idiom you
might end up updating all its guides (or inadvertently use the old
idiom).

Edit can apply a sam command (which selects its range) to the entire
file.  Run can apply a shell command to a directory, or directory
context of a file.  But in each case, you can't select a range of text
or a file name within the window to use as the target of the
operation, since you're using the select-appy operation to figure out
which command to do.

For example, I often run "|fmt -w 72" to justify a paragraph in a text
file.  With wily, I can highlight text in any window, and justify the
text from one copy of the command stored in any guide file.  With
acme, I can't apply this command to highlighted text until I copy the
command to the particular window (tag or body) that needs it.  I can't
even use it from a guide file in the current directory: if I sweep
some text in a window, then apply that text to a pipe command in a
guide file in the current directory, the pipe command runs against its
own line in the guide file.

So from the standpoint of having used Wily for years, acme requires
more cutting and pasting, and some commands don't seem directly useful
in place.  For example, to use New without copying it somewhere else
or retyping it, you must know and type (or get on the screen in some
way) the path between the directory where you started acme and the
directory where you want the file.

Jason Catena

Reply via email to