Fish: Finally, a command line shell for the 90s
141–150 of 155 posts
Re: Fish: Finally, a command line shell for the 90s
#142Earlier quoted context omitted.
I do not understand your last paragraph. Don't your wrapper scripts have "#!/bin/sh" at the top?
The point isn't executables that happen to be written in {ba,}sh, it's wrappers that attempt to add functionality to your commandline. For example, Python's virtualenv and Ruby's rvm presumably don't work.
. your_env/bin/activate.fish
https://github.com/pypa/virtualenv/blob/develop/virtualenv_e...Re: Fish: Finally, a command line shell for the 90s
#143Earlier quoted context omitted.
1. No need to mess with configs. Works out of the box. 2. Breaking Bourne Shell compatibility. Personally I find Bourne syntax hard to learn and hard to read. Fish syntax is much better. [1, 2] [1]: http://en.wikipedia.org/wiki/Friendly_interactive_shell [2]: http://ridiculousfish.com/shell/user_doc/html/index.html
Sounds like there's no reason for me to switch. I've already messed with configs and everything is stable now, so that's a sunk cost. I already know bourne-style syntax, so learning fish (even if it's easier) is an added cost, not to mention the fact that I have to work on various boxes that I can't install fish on so it's easier to have my fingers know how to operate a single shell (zsh) that's generally backwards-c…
So we get stuck back at the minimal set of SH syntax that I learned to master some 25 years ago.
Re: Fish: Finally, a command line shell for the 90s
#144I've been using the original fish[1] for years. I'm very biased, I love fish for many reasons and despite the claims that zsh can do the same things I've never had cause to switch from it. Now it was quite disappointing to see the original fish project seemingly halted. So this isn't simply great news, in the sense that development has been picked back up in the fishfish fork, some great improvements have been made a…
LANG=C fooRe: Fish: Finally, a command line shell for the 90s
#145Earlier quoted context omitted.
Bash too can do that. It does by default in Debian for instance, it also does cool things like autocompleting filenames based on which command is already typed (so it won't autocomplete to some pdf filename if the command is mplayer), autocompletion depending on config files (alias from ~/.ssh/config and /etc/hosts, remotes from the git config, package names when the command is apt-*…). About fish, for the history ba…
Bash's auto completion is a child's toy compared to Zsh's.
Re: Fish: Finally, a command line shell for the 90s
#146Earlier quoted context omitted.
1: a. Superb readline colouring. Nonexistent commands are shown in red, commands that exist and are on PATH in green. Unclosed string literals become obvious. b. A history search that is orders of magnitude better that Ctrl-r in Bash. (Though oh-my-zsh has the history-substring-search plugin which provides this functionality.) c. Features work out of the box, fish helps you avoid managing a .zshrc equivalent file. d.…
Please elaborate on point 1b. I certainly see ways ctrl-r can be improved, but orders of magnitude (while obviously subjective in something like this) would surprise me. That said, I hope to be surprised!
1. The search term is highlighted.
2. The search is far more discoverable, its key binding means you can stumble across it.
3. The up cursor key is a better key binding choice. Pressing up without a search term may be considered as searching for commands that match "", namely everything. This conforms with fish's aim for orthogonality.
4. (Most importantly) The up cursor key has a natural undo button, down. Quick quiz: if you type "Ctrl-r foobarbaz", how do you get back to a terminal you can type in, preserving your search term? You can't. Pressing "Esc" dumps you in the middle of your history with something matching the first few characters of your search term. (Assuming you have nothing in your history matching 'foobarbaz')
Similarly, if you press "Ctrl-r foo Ctrl-r", you will get the second item in your history that matches foo. There's no way to get back to your first search result without repeating the search.
5. You can use previous commands as search terms. For example, I ran "mvn clean install", then hit "Ctrl-C" when I wanted to skip tests. I pressed " " and I was searching through all my history that contains "mvn install ". Using "Ctrl-C" I'd have had to retype "mvn clean install ".
Re: Fish: Finally, a command line shell for the 90s
#147Earlier quoted context omitted.
1: a. Superb readline colouring. Nonexistent commands are shown in red, commands that exist and are on PATH in green. Unclosed string literals become obvious. b. A history search that is orders of magnitude better that Ctrl-r in Bash. (Though oh-my-zsh has the history-substring-search plugin which provides this functionality.) c. Features work out of the box, fish helps you avoid managing a .zshrc equivalent file. d.…
Please elaborate on point 1b. I certainly see ways ctrl-r can be improved, but orders of magnitude (while obviously subjective in something like this) would surprise me. That said, I hope to be surprised!
Re: Fish: Finally, a command line shell for the 90s
#148Earlier quoted context omitted.
I stopped using fish a while ago, when it would crash whenever I opened a console session (so I couldn't do anything when X didn't start). I switched to zsh with fish emulation, but lately I realized I have a shell that takes much longer to start up and basically does everything fish does, and nothing more. If fishfish is more stable, I'll switch in a heartbeat.
> I stopped using fish a while ago, when it would crash whenever I opened a console session (so I couldn't do anything when X didn't start) This is why I launch my interactive shell from a failsafe /bin/sh instead of using chsh. If zsh ever messes up horribly, I end up back in a good old bog standard shell prompt.
Re: Fish: Finally, a command line shell for the 90s
#149Re: Fish: Finally, a command line shell for the 90s
#150Earlier quoted context omitted.
I do not understand your last paragraph. Don't your wrapper scripts have "#!/bin/sh" at the top?
The point isn't executables that happen to be written in {ba,}sh, it's wrappers that attempt to add functionality to your commandline. For example, Python's virtualenv and Ruby's rvm presumably don't work.