Re: [MSH] MSH Not So Great For Interactive Users



There are a couple of issues:

In Windows, console apps get command line editing for free when they read
lines in "cooked" mode. With some additional effort, it's possible to add
things like tab-completion using the alternate end-of-line character
provided by the console API. So for relatively modest effort you get an
adequate solution. Unfortunately the incremental jump in effort to move
beyond merely adequate is substantial. Now you have to read in character
mode and implement the entire command line editing subsystem yourself. This
effort got punted from V1 in favour of other features. In the mean time,
take a look at what Jeffrey Thompson has done with jaMSH where he's
integrated the GNU readline stuff into an msh host.

Once you have better basic editing, the next step is to address things like
internationalized character presentation, font handling and Windows
integration with things like selection, cut-and-paste. Here we're pretty
much stuck with what the console provides. There isn't a good way to work
around these issues. To get a proper Windows CUI experience, we need to
write a Windows Monad host. This is on the V2 list in some form or other.

BTW - for those who are fans of the csh-style ! commands, take a look at the
*-history cmdlets. They allow you to do some of the ! style editing. (Note
that this mechanism is completely independent of the console history.)

-bruce

--
Bruce Payette [MSFT]
Microsoft Command Shell Development
Microsoft Corporation
This posting is provided "AS IS" with no warranties, and confers no rights.



"Jon Forrest" <forrest@xxxxxxxxxxxxxxx> wrote in message
news:ubFP7hDIGHA.1188@xxxxxxxxxxxxxxxxxxxxxxx
> Thomas Lee wrote:
>
>>> Specifically, MSH should
>>> be at least as good as csh/tcsh at reducing the number
>>> of characters I have to type (I recognize and agree that
>>> these shells are awful for scripting).
>>
>> First, remember that the way MSH is hosted limits MS's flexability. There
>> is some tab completion, but the limitations of the MSH host for V1 leads
>> partly to what you suggest.
>
> Several people have mentioned this, but I don't understand
> what they mean. I can understand that MSH doesn't have the
> kinds of features I was talking about because the developers
> just haven't gotten around to adding them, but I don't
> see any technical obstacles to adding them just because
> MSH is a console application or because of "the way
> MSH is hosted".
>
> Could someone elaborate?
>
> Thanks,
> Jon Forrest


.



Relevant Pages

  • Re: [MSH] Bug: cut & paste with tabs
    ... implemented in Windows by a subsystem instead of in a user mode library like ... automatically gets essentially the same command line editing behaviour. ... > So this means that MSH actually invokes the cmd.exe shell? ...
    (microsoft.public.windows.server.scripting)
  • Re: [MSH] MSH Not So Great For Interactive Users
    ... The keystrokes involved date back to the earliest versions of DOS in some cases, but primarily aim for compatibility with DOSKEY, which dates from DOS 5.0 iirc. ... I wasn't talking about arrow key editing but rather command line editing and substitution done via syntactic operators. ... http://www.coldie.net/project/jamsh is a MSH host that uses the GNU readline library and is probably a lot closer to what you are looking for - MSH with vi or emacs keystrokes. ... One big step in the right direction was the commitment that everything that can be done from a GUI can now be done from the command line. ...
    (microsoft.public.windows.server.scripting)
  • Re: [MSH] Command completion character
    ... The editing features that msh and cmd.exe both use are implemented by the ... Console API where you can specify a secondary line-complete character. ... Microsoft Command Shell Development ... >>> have a beta ID please file a feature request. ...
    (microsoft.public.windows.server.scripting)
  • Re: Redirect msh.exe in/out
    ... command is completed so I can go on and either process the output or issue ... Also, there is no way to interrupt MSH other than CTRL+C, ... and a lot of other special key events also seem to be tied to the console ... *including* special key strokes such as CTRL+C... ...
    (microsoft.public.windows.server.scripting)
  • Re: function-class frustration
    ... are you willing to make changes to the console? ... most recent command. ... Access to and editing of previous input lines is already provided by ... This functionality would be provided by the Python interactive ...
    (comp.lang.python)

Loading