5 ms·
Am just graduating from a novice to medium level user on vim. Consider myself a medium/novice user of the Bash shell (i.e: without awk/sed knowledge. but with
by aangjie 14y ago
Am just graduating from a novice to medium level user on vim. Consider myself a medium/novice user of the Bash shell (i.e: without awk/sed knowledge. but with find and grep).
Is it worth switching to zsh at this point for me or can i just wait till i pick up awk/sed for text munging and progess on the shell usage??. I have come across zsh mentioned a few times, and given it a go too, but haven't been convinced/not understood what makes it better.
- ibotty 14y agoyes. it will be worth it. once you get past medium shell usage, you will appreciate many of zsh's features. you might have a harder time writing a posix compatible shell script though.
- aangjie 14y agoHmm.. posix compatibility is not high on my list. and hopefully, i won't need much in my future career. -- planning to learn some data analysis and mining.
- plorkyeran 14y agoPersonally I found zsh worth switching to even without spending any meaningful amount of time learning to use it. The better tab completion alone is enough to make up for the setup time and the occasional bashisms I try that don't work.
- elithrar 14y ago> Personally I found zsh worth switching to even without spending any meaningful amount of time learning to use it. Definitely. Smarter tab completion and smarter word deletion (Ctrl+W) are probably the two "most used" features for me. FWIW, after ~6 years using Bash, moving to zsh last week was a revelation. I swapped to tmux (after dabbling in screen) the week prior. Has been a good fortnight. [1] https://github.com/robbyrussell/oh-my-zsh/ https://github.com/robbyrussell/oh-my-zsh/ is a great source of zsh plug-ins and configs. I use the "simple" theme and the git, brew and gem plugins (amongst others): https://github.com/elithrar/dotfiles/blob/master/zshrc https://github.com/elithrar/dotfiles/blob/master/zshrc
- devgutt 14y agoCtrl-W works in bash too.
- djeikyb 14y agoFor this string with cursor at end: "cd /usr/share/gammu" Bash[1] deletes to the space. Zsh[2] deletes to the slash. I installed Zsh just now to find this out, and I love that Zsh appears to use ctl-w to delete words like vim does. [1]: GNU bash, version 4.2.37(2)-release (i686-pc-linux-gnu) [2]: zsh 5.0.0 (i686-pc-linux-gnu)
- devgutt 14y agoYou can use META-<Backspace> (Emacs mode)
- mej10 14y agoSort of as others said, the nice thing about switching to zsh is that you get a lot of benefit _just_ by switching, and it is very similar in basic functioning to bash. It isn't like vim or emacs where you can't do basic tasks until you learn a bunch of specific keys.
- dima55 14y agoAs others mentioned, zsh is compatible enough with bash to make switching relatively painless. There are many areas of zsh that are dramatically better, but the one that can make you fly is the fancy globbing that zsh has. More or less, you never need the 'find' tool when using zsh. For example, if I want to find all the Makefiles in this or child directories that have the string 'abc' and have been modified less than 1 hour ago, I can do $ grep -l abc **/Makefile(mh-1) If I want to look at the most-recently-modified file, I can $ less *(om[1]) If I have a symlink 'dir' that points to a directory and I want to cd to the pointed-to directory, I can $ cd dir(:A) Clearly, there are lots of codes, but you don't need to remember them, since the tab-completion gives you online help. I can type the '(' then press 'tab', and it'll give me a list of the various codes that can follow and what they mean. There are tons of others. If I want all * EXCEPT *.h I can use '*~*.h' Or for instance, say I have a directory of photos. I want to pick DSC00095.jpg through DSC00107.jpg. In bash, you cry; in zsh I say DSC<95-107>.jpg. After I've typed in the glob, I can press 'tab', and it'll expand the glob in-place, letting me know if the code worked without executing. I can then undo to get the code back and have it live in my history. There are plenty of other non-globbing-related features of zsh that make it worth looking at, but this is one that doesn't get as much press as it deserves.