4 ms·
Show HN: Funky – Easier, flexible, and more interactive shell functions
- scrollaway 8y ago"Python Meets ZSH" is a very weird way to describe this. What this looks like is more of a zsh alias/function manager. Which is pretty cool, btw! But if you are actually interested in "Python Meets ZSH", have a look at Xonsh instead :) https://xon.sh/ https://xon.sh/
- chrisweekly 8y agoYou beat me to it, was gonna mention xonsh too...
- your-nanny 8y agotook me forever to actually figure out what this software is supposed to do. the gif intro was too fast and hard to read on my phone. consider adding one or two sentences summarising project
- air7 8y agoCould you explain it then? Just gave up after a few moments...
- bbugyi200 8y agoFunky manages funks, which are just basically (exactly really) shell functions. What makes them cool is how easy they are to define and the way that Funky manages them. One of it's key features is that it enables you to define shell functions that are local to a specific directory, but Funky also does a bit more behind the scenes to add some value. For example it also: * Checks for aliases of the same name and disables them if any exist (this can cause annoying ZSH errors if you tried to define the function manually). * Appends special bash paraemeters (e.g. "$@") when appropriate so funks act more like aliases without the drawbacks. * Tries to predict how ZSH completion should be defined, running a `compdef` command if it succeeds. (It needs a little more work in this area I think.) And I think there's definitely some potential for greater functionality going forward.
- bbugyi200 8y agoYeah, you're completely right. Even though I've found it really useful myself, I've had a hard time explaining exactly why its useful. I plan on adding a better description section soon as well as a blog post with more extensive examples.
- xte 8y agoPhones are BAD, limited and limiting platforms :-) Not your faults but we all need to ditch from those black boxes if we want to evolve instead to go to well colored jails. Anyway IMO the best description is: "wrapper to execute scripts in a context depending on local directory instead being shell-wide, simple CLI provided to use and manage all scripts."
- xte 8y agoNice, I'll give a try :-) IMO it's another step toward a transformation from classic shells to modern REPL, xonsh is one, eshell (Emacs) is another and probably many others exists. Traditional shells have some nice things mostly due to the power of UNIX software, but also limitations for the very same reason. Personally having choose to live in Emacs I notice a significant reduction of shell usage, eshell included, but it still can't substitute a real terminal for me, I tried xonsh and find the same: sometime python power rocks, sometimes does not. Perhaps we still need many new step before achieve a new game changing interface...
- aaaaaaaaaab 8y agoWhat the hell is a “funk”? I’m getting tired of people making up ad-hoc cutesy names for no reason whatsoever. E.g. why do we call Rust packages “crates”?
- steveklabnik 8y agoTechnically, rust’s packages are called packages, and they’re made up of one or more crates. “Compilation unit” just doesn’t roll off the tounge the same way as “crate.” (And “funk” is how many pronounce “func” as in “function”, they’re using the short name to reinforce the tool’s name. That’s not “no reason.”)
- dymk 8y agoBut a lot of people already know what a "compilation unit" is, or have heard of it, or have some intuition for what it means. So why make up a new word for it? "Rolls off the tongue" is at best an "eh" reason, at worst just an opinion about how a word sounds to some people, which isn't a very strong argument for coming up with new words.
- steveklabnik 8y agoNaming things is a classically hard problem in our field. There’s always room to improve.
- zonko 8y agoHow is this any better than the usual bash C-x C-e?