Aleksey,

I honestly can't decide if you're trying to troll the mailing list or if you 
have legitimate questions. I'm going to take a risk of feeding the troll here 
in hopes that you're actually, honestly trying to understand fish-shell.

To save yourself some time, I'll put the summation at the top. Continue reading 
if you wish. 

To sum up: Fish shell is not bash. It tries to do things better. Sometimes that 
means different. It takes some getting used to.

And now a little more:

Several of the features you've suggested could be helpful, but I think it is 
important to remember that fish-shell is not, nor does it try (or even want) to 
be bash or even bash compliant. The interaction is *necessarily* different.

In my experience, bash is different, but equally frustrating when looking for 
help on builtins:

When I run `man for`, I get a man page or BUILTIN(1)...which lists all the 
builtin commands, does absolutely nothing to explain the behavior of the 'for' 
command, and (perhaps more importantly) doesn't suggest any further recourse 
for understanding what I am curious about.

Now, perhaps I'm missing some subtlety about bash -- I used it recklessly for 
about 8 years without ever learning much about it. But the principle of 
discoverability is completely missing from that experience. 

`env NAME=value command` is a perfectly acceptable system. It is *different*. 
But it is different for good reasons. It is more obvious to the user, less 
ambiguous to the interpreter, and obeys the principals of consistency, 
composition, and modularity (env is a command, which sets an environment 
variable, and then runs a given argument in the altered environment). These 
rules and others are available on the wikipedia page for the Unix Philosophy[1].

As for fetching help on every command when you make an error, that is actually 
the principal of discoverability at work. It is the default paradigm for any 
well designed shell tool, why should the shell itself be different? If you find 
yourself wanting examples, have a look at ssh, cp, and scp. 

I'll admit, when I first started using fish-shell, I was frustrated by the fact 
that help opened the browser by default. But my workflow is frequently 
switching back and forth between the shell and chrome (read: stackoverflow). 
Why not provide a richer help experience, where related commands can be easily 
found, rich on page searching is still available (and probably better)? I 
honestly do think that fish could use a better help experience, but I also 
don't think your method of requesting it is helpful at all.

Robert

[1] http://en.wikipedia.org/wiki/Unix_philosophy

> On May 5, 2015, at 10:03, Aleksey Midenkov <mide...@gmail.com> wrote:
> 
> On Tue, May 5, 2015 at 3:01 PM, Siteshwar <sitesh...@gmail.com> wrote:
>> Hello Aleksey,
>> 
>> Thanks for trying fish.
>> 
>> On Tue, May 5, 2015 at 4:31 PM, Aleksey Midenkov <midenok+f...@gmail.com>
>> wrote:
>>> 
>>>> help for
>>> 
>>> It opened browser window... I don't need browser, I need quick and
>>> easy way to access basic syntax what does inline help in bash. It's
>>> console app after all!
>>> 
>>>> man for
>>> 
>>> Not really good: the default PAGER is 'less' which doesn't fully
>>> comply with 'quick and easy'. Well, if to trim NAME section and quick
>>> description ('for - perform a set of commands multiple times.') and
>>> output with 'cat' it will be almost like 'help' in bash, but:
>>> 
>>>> PAGER=cat man for
>>> fish: Unknown command 'PAGER=cat'. Did you mean to run man with a
>>> modified environment? Try 'env PAGER=cat man…'. See
>>> the help section on the set command by typing 'help set'.
>>> 
>>> I recall, that I've read something about "fish doesn't like
>>> subshells". Well, it's good to set variables inside pipes: I like
>>> that! But, here I want quick and easy way to use temporary settings.
>>> Ok, let's try what error said:
>>> 
>>>> env PAGER=cat man for
>>> No manual entry for for
>>> 
>>> 
>>> OMG, what was that?? It set PAGER and forgot all other variables? I
>>> guess, it executed '/usr/bin/env' which is not related to any shell
>>> and behaves how it wants, thus not a good method. I just want a
>>> subshell here with a quick and concise:
>>> 
>>>> PAGER=cat man for
>>> 
>>> And it is kind of cumbersome to add 'env' here (even if it worked)...
>> 
>> 
>> It's rather simple. Just type 'for' and press enter to see help text .
> 
> Seriously? Making errors just to get inline help is not the right way
> to do it. It will not work for all commands (f.ex. 'set' and 'echo').
> Moreover, I don't need inline help every time I make real mistake,
> obviously...
> 
> I see, that command built-ins have '--help' option. This is not unified way:
> 
> 1. no '--help' for syntactic statements like 'for', 'if'.
> 2. With '--help' there is no clarity that this is sure built-in  When
> I type 'help COMMAND' I am sure that this is help about built-in. When
> I type 'COMMAND --help' I'm not sure if this is built-in or not (maybe
> there is no such built-in and this is help about executable util).
> 
>> 
>>> 
>>> Btw, if someone is interested, I decided to look at 'fish' because of
>>> course 'bash' scripting is horrible! And the fact that 'fish' supports
>>> var-change hooks was a signal to start examining it. But such basic
>>> and simple failures give wa-ay too much no-go. The interactivity of
>>> 'fish' is not really good. Well, by interactivity I don't mean all
>>> these traffic-light colors and popping stuff (which frankly don't add
>>> good impression) but simply 'what you type and what you get'...
>> 
>> 
>> Let us know if you have any suggestions to improve fish.
> 
> I already did. As was said, it would be good to have 'VAR=x COMMAND'
> syntax to define temporary variables just for one command.
> Secondly, it would be good to have 'help COMMAND' to get inline help
> on topic, not in browser, not in man page, just on STDOUT.
> And thirdly, no need (and in fact is nagging) to get inline help on
> every error. If isn't yet, there should be an option to turn it off.
> 
>> 
>>> 
>>> 
>>> 
>>> ------------------------------------------------------------------------------
>>> One dashboard for servers and applications across Physical-Virtual-Cloud
>>> Widest out-of-the-box monitoring support with 50+ applications
>>> Performance metrics, stats and reports that give you Actionable Insights
>>> Deep dive visibility with transaction tracing using APM Insight.
>>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>>> _______________________________________________
>>> Fish-users mailing list
>>> Fish-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/fish-users
>> 
>> 
>> 
>> 
>> --
>> Regards,
>> Siteshwar
> 
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud 
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Fish-users mailing list
> Fish-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fish-users


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Fish-users mailing list
Fish-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fish-users

Reply via email to