I just tried it out, nice! It's a useful tool, but the installation process didn't work for me following the steps as written. As it stands:
* The shellock directory must be in ~/Downloads, otherwise the shellock_bindings.fish fails to source it.
* The installation script in the repo didn't work because it tried to symlink shellock_bindings.fish without specifying an absolute path (`~/.config/fish/conf.d/shellock_bindings.fish -> ./shellock_bindings.fish`) -> caused a recursive symlink which broke.
Now I got it working by making sure to place shellock in Downloads (not ideal long term, I often clear my Downloads folder), and manually symlinking the bindings explicitly. It seems to work pretty well!
Playing around with a bit more, I think the tool might not be suitable for my use cases. If I try it with the command `gcc -Wall` it thinks that each of W, a, l, (and l), are separate single-character arguments, and therefore fails badly:
```
> gcc -Wall
-W Unknown flag
-a Unknown flag
-l Search the library named library when linking. (The second alternative with the library as a separate argument is only for POSIX compliance and is not recom...
```
Additionally, it is really slow, I suppose because gcc has a huge man page? It is really useful for lots of small commands like ls and find, and things where I often forget parameters. Maybe it could be changed so that I can whitelist only certain commands to trigger the hints?
Some commands with unusual man page formats may not parse correctly
Commands that open interactive help (like git commit --help opening a pager) require man page fallback
Combined short flags like -rf are split into individual flags
I just tried it out, nice! It's a useful tool, but the installation process didn't work for me following the steps as written. As it stands:
* The shellock directory must be in ~/Downloads, otherwise the shellock_bindings.fish fails to source it.
* The installation script in the repo didn't work because it tried to symlink shellock_bindings.fish without specifying an absolute path (`~/.config/fish/conf.d/shellock_bindings.fish -> ./shellock_bindings.fish`) -> caused a recursive symlink which broke.
Now I got it working by making sure to place shellock in Downloads (not ideal long term, I often clear my Downloads folder), and manually symlinking the bindings explicitly. It seems to work pretty well!
Playing around with a bit more, I think the tool might not be suitable for my use cases. If I try it with the command `gcc -Wall` it thinks that each of W, a, l, (and l), are separate single-character arguments, and therefore fails badly:
``` > gcc -Wall -W Unknown flag -a Unknown flag -l Search the library named library when linking. (The second alternative with the library as a separate argument is only for POSIX compliance and is not recom... ```
Additionally, it is really slow, I suppose because gcc has a huge man page? It is really useful for lots of small commands like ls and find, and things where I often forget parameters. Maybe it could be changed so that I can whitelist only certain commands to trigger the hints?
Or it could cache the parsed manpages or reuse the information that fish already extracts from there for autocompletion?
From the website:
Known Limitations
Looks like a cool idea - what does it do with more complicated commands, e.g. two commands with a pipe? Does it pick the last part of the pipe?
Nice, I tried looking for something like this but never found anything. Glad to see someone working on it.
There is https://explainshell.com/ not in terminal but should do the trick.
I read the title too quickly and thought that 12 years later shellshock was making a come back!
There's nothing wrong with your reading. It's a misleading, clickbaity name at best.
Cool! Recommendations for something similar on zsh?