> claer
zsh: correct 'claer' to 'clear' [nyae]? n
zsh: command not found: claer
I am guilty of not reading the docs, but I learnt by experience that n/y/a/e stands for no (run without correction)/yes (correct)/abort (don't run)/edit (manually/interactively)I had to turn off some of the Zsh-specific brackets and quoting features to make it more bash-like because of the tools I use which make it kinda wonky to use with Zsh but otherwise it’s been absolutely fantastic. Remoting into our systems that only have bash feels absolutely prehistoric.
[0] https://github.com/clvv/fasd [1] https://github.com/sorin-ionescu/prezto
* frequent (automatic) backups (saves time and mood when things go wrong)
* i3
* fd (alternative to find)
* ripgrep
* keynav (don't use your mouse)
* !bangs on duckduckgo
* calcurse (terminal calendar)
* readline: C-h C-b C-a C-k M-b M-f C-u etc.
* howdoi (get SO answers in the terminal), especially useful for things you somewhat know but just forgot the syntax of.
* youtube-dl as already mentioned somewhere: you get out of youtube ASAP to prevent their algorithms from tricking into staying there. I also use it to watch videos later when I don't have internet, using a syncthing folder on my mobile which only syncs up to 10% remaining space (so that it doesn't fill with 100s of videos, just a few, enough for some trip). Videos are also rather inefficient in terms of communicating ideas, so better to keep them for when I really don't have better to do.
* in the same vein, adapt the speed of (technical) videos you watch, to skip the fluff and focus (even rewind) the difficult parts. Skip all ads, everywhere.
* uBlock Origin, for the same kind of reason: just block any annoying, time-consuming parts of website. If I need to go on some website regularly, and they happen to have a news section I don't care about (like their twitter feed), I just block it to get it out of my way.
* even use a text-only browser (I currently use w3m, which could show images in theory) for things like HN. HN itself works well, and its good links as well. You just trim a lot of the fluff, ads, etc.
* an easy way to sync files between your mobile and your computer (I use a combination of "Notes to Self" in Signal with an auto-destruct of 1 week for temporary stuff so that I don't have to delete it manually, and syncthing for longer-term things)
* script your way out of any repetitive task: if you need to register periodically to something, either use their API if they have one, or use selenium to automate it. I was really surprised how little time it took me to write my own script and learn how to use selenium.
* in general, rely less on proprietary software: it has the potential to break ("introduce new and shiny features and somehow make some old ones disappear" or just change the pricing-model) more regularly, and you'll have to switch which can be a burden. If some free (libre) software breaks hard for a lot of people, chances are that a fork will happen and the transition will be easier. This also applies to SaaS.
* try to avoid desktop apps: they don't compose well, you cannot easily script them compared to a CLI. It's also better than having a full remote desktop when you resort to SSH (especially on bad connections).
* try to learn the default keyboard shortcuts of software you use, unless they're really crazy: less config (which you'd have to sync and maintain), easier to use a computer which is not yours if need be
* regularly check that the commands you write in your terminal are not too verbose (use aliases / functions): https://news.ycombinator.com/item?id=22853646
* check what's possible with frameworks like https://github.com/sorin-ionescu/prezto
* some dotfile repository to get you started in 5min on new computers with the same setup you're accustomed to.
* mutt (mostly to easily write emails in vim and grep emails from the terminal)
* cronjobs and reminders (I get new music albums on my phone regularly from my music library, so that I don't have to choose them manually (it's my library so I know I like them anyway). I used to actually spend time choosing music from my own library.)
* typing from your phone is inefficient, avoid it if possible. Batch your (non-time-critical) messaging. Most modern messaging apps have a desktop version these days.
[1]: https://github.com/Infinisil/system/blob/master/config/new-m...
https://github.com/sorin-ionescu/prezto https://github.com/zsh-users/antigen See also: https://github.com/unixorn/awesome-zsh-plugins
Edit: looks like it might be stock behaviour https://github.com/zsh-users/zsh/blob/master/Completion/Unix...
I personally prefer working on a command line because it's _more_ discoverable to me than most gui's. This did take some getting used to though. The approach is different.
The worry over making dangerous mistakes is understandable. That said I have made very few big ones after a bit of learning, and it has also helped me _avoid_ making dangerous mistakes by facilitating the automation of otherwise delicate or involved tasks which would be unpleasant to click and type through.
Scroll down a bit and you'll see it.
Though I personally prefer zsh with prezto, because oh-my-zsh feels too bloated and heavy:
Tab completion is extremely powerful. Even serious spelling mistakes are forgiven.
The prompt is Git-aware and this provides a lot of helpful information which saves me from having to query the git cli.
There are also plugins available for completion of other programs such as rake
If I'm motivated enough to download and install a shell, why wouldn't I just clone Prezto and change one config file to turn on syntax highlighting and git support? Especially when it doesn't bring any "weirdness in command substitution" and I get the great zsh expansions and completions?
Anyways, I'll try it out (why not?) but the benefit to me wasn't clear from the page, and even with your direct clarification here I'm seeing more downsides than zsh + Prezto and not a significant upside.
$ sudo foo
$ sudo bar
$ sudo fo
gives me `sudo foo`.I'm using zsh 5.0.7 (x86_64-apple-darwin14.0.0) on OS X 10.10 (with prezto[1]).
Something there doesn't sound right (and brings up questions about how do you even manage so many random libraries and whatnot).
Dependency and package management isn't that difficult and when I wipe my hdd/ssd it usually takes me some 30 minutes to get my generic environment bootstrapped and up to date (with a mixture of shell scripts and brew install `my-package-list.txt`). After that, each project takes few minutes to download all deps/libs with some dependency management tool.
Just the same way I would imagine that you've got your oh-my-zsh config version controlled (speaking of oh-my-zsh, I'd like to also mention prezto[0]!)
You can check out my dotfiles (https://github.com/christianbundy/dotfiles), but I'm pretty sure that the functionality came standard with one of my Zsh submodules, Prezto (https://github.com/sorin-ionescu/prezto).
For people that exploit redirection, file handle rewiring, here docs and such... consider zsh with https://github.com/sorin-ionescu/prezto
I was happy enough sticking to bash as it's the default shell everywhere, but since someone switched me to Zsh (using oh-my-zsh) I probably rely on the features too much to ever go back. I also hear https://github.com/sorin-ionescu/prezto is a nicer, cleaner fork of oh-my-zsh but I haven't so found the overwhelming desire to go through the switching pains.