Live data from Hacker News

Fish shell

fishshell.com

21–30 of 188 posts

Re: Fish shell

#21

I can clearly see the difference between Fish and regular ol' bash, but struggling to see what value Fish adds above prezto/zsh. Could anyone help me out here?

Fish breaks compatibility with traditional shell languages. The syntax is a bit different, the variable expansion rules are a bit different, etc. It also gets rid of a bunch of features and configuration options, such history expansion ("$!!").

The positive side of this is that fish is very simple and has a very pleasant experience out of the box. And this is not just about having "good defaults" - its also about having a good design that encourages having one way to do things. That said, an interactive shell is a very personal thing. The only way to really get a good feeling is to install and check it out.

Re: Fish shell

#22
post #10

Earlier quoted context omitted.

The shell is completely independent of the terminal emulator. Fish is the former, while you're complaining about an example of the latter. (My recommendation for a terminal emulator would be urxvt with the tabbedex extension. YMMV.)

I have seen many people recommending urxvt. What is the advantage of it compared to gnome-terminal ? The last time I tried it, it's default font size was too small and I didn't like the font. Does it take some fiddling (configuration etc) with urxvt to bring it a minimal usable state ?

> Does it take some fiddling (configuration etc) with urxvt to bring it a minimal usable state

Yes. urxvt is pretty minimal and will likely be rather ugly by default. However, you can customize pretty much everything via editing your Xresources file.

In terms of advantages over gnome-terminal... it's lighter weight and considerably faster (though tbh, speed isn't that important for most people). It doesn't depend on any Gnome services/libraries, so it integrates better with e.g. a tiling WM. It's stable, in the sense of the developers won't cut out. The configuration is very flexible and it's extensible.

However, to be honest it's not for everybody. I wouldn't even say it's for "power users", it's really mostly for minimalists and the default configuration is incredibly sparse. If you're dissatisfied with gnome-terminal, I'd probably recommend roxterm or lxterminal instead. IMO, urxvt is more one of those "I already know I want it and I know why I want it" kind of things. That said, I've been using it for a few years and I really like it.

Re: Fish shell

#23

Earlier quoted context omitted.

Would you mind expanding on what fish does out-of-the-box that prezto neglects or hides behind configuration? I am in a similar boat as you and was just wondering what I had to look forward to as a prezto user.

The biggest thing that swayed me to stick with (and optimize/customize) Prezto was the fact that most of the systems I work with have zsh, or a relatively modern version of it available in repos. Can't say the same for fish.

If you don't mind adding external repositories, you can get up to date versions of fish for most distros.

http://fishshell.com/#get_fish_linux

Re: Fish shell

#24
post #17

Earlier quoted context omitted.

The shell is completely independent of the terminal emulator. Fish is the former, while you're complaining about an example of the latter. (My recommendation for a terminal emulator would be urxvt with the tabbedex extension. YMMV.)

What does guake count as, then?

Guake is just a Quake-style terminal emulator. Under the hood it's basically gnome-terminal (it uses the VTE libraries).

Re: Fish shell

#25
I used to use fish, and emacs. But when I switched to vim, I had to switch away from fish as well because of its lack of vi bindings. It is a little disappointing to go back to using bash, but as long as bash-completion is working, it's not really a big issue. Of course, I do miss the syntax highlighting. (I would use zsh, but it provides little benefit over bash out of the box and is slower (oh-my-zsh is unbearably slow to start, too).)

There are a few things that, while I understand why fish is missing them, I wish would be added:

- vi-mode, obviously

- Control+R. It is annoying to have to guess how much you must type before hitting the up arrow, instead of having it dynamically displayed. Same goes for zsh vi-mode's ? command.

- Well more of a removal, but the backslash in single-quoted strings. I'm used to typing '\', and that's not possible with fish. Additionally, to get one backslash in any sort of regex (sed, grep), you need four backslashes.

- Goes without saying, but bash-completion. Fish's completion is mostly history-based, which is great for repeatedly running the same command, but terrible for discoverability

- "$()" and any non-splitting command substitution. Currently, it is impossible to pass a multi-line string from a command substitution as a single argument. Which, it may be argued, should be done by piping, but sometimes it is useful to have stdin.

- More extensibility in general. I'd like to be able to customize my shell just as much as I can customize my WM. Probably more.

Honestly, it was easier to go back to using bash than I thought it would be -- it was almost a relief. fish just feels more polished and clean, especially with regard to escaping, but it misses some very important features.

Edit: I heard that there is a vi-mode now. Sounds interesting, but I don't really feel like installing it at the moment, and if I ever try another shell it'll probably be zsh.

Re: Fish shell

#26
post #17

Earlier quoted context omitted.

The shell is completely independent of the terminal emulator. Fish is the former, while you're complaining about an example of the latter. (My recommendation for a terminal emulator would be urxvt with the tabbedex extension. YMMV.)

What does guake count as, then?

a terminal emulator. From the guake project page[0]

  Guake is a dropdown terminal made for the GNOME desktop environment
[0] https://github.com/Guake/guake

Re: Fish shell

#27
post #10

Earlier quoted context omitted.

The shell is completely independent of the terminal emulator. Fish is the former, while you're complaining about an example of the latter. (My recommendation for a terminal emulator would be urxvt with the tabbedex extension. YMMV.)

I have seen many people recommending urxvt. What is the advantage of it compared to gnome-terminal ? The last time I tried it, it's default font size was too small and I didn't like the font. Does it take some fiddling (configuration etc) with urxvt to bring it a minimal usable state ?

I think it does. It starts off about as basic like xterm (i.e. using "fixed" as the font), so it's really low on resources. It is missing a bunch of features out of the box (Ctrl+Shift+V to paste, quick adjustment of font size at runtime, URL clicking, drag-and-drop, tabs, ...), but it has support for plugins (written in Perl), which is its other major advantage (all of the missing features I've mentioned have been implemented as plugins).

To quickly try it with a larger font size, you can do urxvt -fn 'xft:Dejavu Sans Mono:size=10' (but it's usually configured through X resources, see the urxvt man page)

Re: Fish shell

#28

Looks interesting and great timing. I got super annoyed today when I saw that the latest version of gnome terminal in Ubuntu stopped supporting changing tab titles via the GUI.

For crying out loud... another instance of the GNOME team's insistence that they know better than their users, no doubt.

Best i can tell, Gnome has lost respect for their users ever since they started doing usability testing for their interface.

This because they consider any usage that deviate from their planning a indication that the user is an idiot...

Re: Fish shell

#29
post #22
post #10

Earlier quoted context omitted.

I have seen many people recommending urxvt. What is the advantage of it compared to gnome-terminal ? The last time I tried it, it's default font size was too small and I didn't like the font. Does it take some fiddling (configuration etc) with urxvt to bring it a minimal usable state ?

> Does it take some fiddling (configuration etc) with urxvt to bring it a minimal usable state Yes. urxvt is pretty minimal and will likely be rather ugly by default. However, you can customize pretty much everything via editing your Xresources file. In terms of advantages over gnome-terminal... it's lighter weight and considerably faster (though tbh, speed isn't that important for most people). It doesn't depend on…

So far, gnome-terminal is the only one* I've seen that can rewrap text properly when the window width changes. Does urxvt do that? Is there something lighter (than gnome-terminal) that does?

* not the only one, but I'm not sure finalterm is really ready to use yet, and it's certainly not lightweight.

Re: Fish shell

#30

Earlier quoted context omitted.

For crying out loud... another instance of the GNOME team's insistence that they know better than their users, no doubt.

I was just thinking about how no one even pretends GNOME Shell is a serious contender any more. Sad that they've squandered their installed base so thoroughly.

I use gnome shell. What should I switch to that, and why?
Post reply on HN