18 comments

[ 2.7 ms ] story [ 56.9 ms ] thread
an interesting game, seeing how far you can mess up a command and still have fuck give you back the correct command?

I'm serious that might be a fun developer game to watch, not play I'm too lazy.

I used to use this quite heavily, but with successive updates the performance dropped off a cliff, unfortunately.

Although now that I’ve taken a look at it, it seems there’s an “experimental instant mode” that might fix that.[1] But not for fish users, which rules it out for me at least.

[1] https://github.com/nvbn/thefuck#experimental-instant-mode

Yeah, the performance really makes the tool live up to its name. Where is the rewrite-in-rust strike force when you need them?
Fish really isn't a everyday POSIX shell. I don't see how one can bring up shortcoming as such.
It might be worth it for the git one alone ... I really need to figure out how to make something as short as "git push" which maps to "freaking push this shit and make a pr c'mon"

  git shove
(which doesn't exist, but is short and would be easy to remember)
Yeah, just need to know how to refer to "current branch name" in an alias ...
I bet everyone who's used git for a while has their own `git shove` alias different from everyone else's.

Mine basically does `git pull && git merge && git push`

zsh syntax highlighter largely removes the need for this. It'll tell me everything this would solve is good before I hit enter.
This is worth having if only for pushing with --set-upstream origin. For those averse to four-letter words, it's trivially simple to alias as well. I have mine set to "ugh".

eval "$(thefuck --alias ugh)"

This feels akin to excessively auto-completing shells to me. It is pretty awesomely quick when you are starting, but it feels like it has to impact learning/muscle memory which gives you the accuracy and speed in the long-term. Maybe just the bias from learning without these things but I can't shake the feeling.
What if you misspell “fuck”?
Maybe I'm weird, but I find naming like this really off-putting. It's startlingly unprofessional, unnecessarily aggressive, somewhat immature, and just doesn't feel nice.

Why do something great and then put a less than best foot forward when naming it?

If thou dost not understand, lurk (or fork) moar!

I jest, but I see it as follows:

There're two sides to the programmer. One is as the frustrated artist, tormented by failure and imperfection, that rages at a machine that they just want to do what they mean, and not what they say.

Then there is the stoic, caring gardener, worried about cultivating this or that, or what the environment as a whole looks like. Maybe even venturing to give a shit about what others think.

One builds. The other maintains. The two sides do not without effort integrate, and once integrated, (enlightenment) happens, you tend to become more aware of such concerns, and it can buffer against the primordial drive to create this thing now without reflection.

I see it as the builder's yin to the maintainer's yang. I love it. It is a sign the hacker spirit is still alive and well.