zsh-histdb-fzf
sd
zsh-histdb-fzf | sd | |
---|---|---|
2 | 8 | |
41 | 699 | |
- | - | |
0.0 | 3.5 | |
about 2 years ago | 2 months ago | |
Shell | Shell | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zsh-histdb-fzf
-
Which command did you run 1731 days ago?
The article briefly mentions atuin at the end. I've tried atuin but found it a little bit too heavyweight for me - instead I use zsh-histdb[0] (together with the fzf extension for it[1]) which allows you to easily answer this type of question - can highly recommend it.
0. https://github.com/larkery/zsh-histdb
1. https://github.com/m42e/zsh-histdb-fzf
- RESH: Rich Enhanced Shell History
sd
-
Which command did you run 1731 days ago?
Prefixing these utility scripts is a nice tip, I used to do that as well.
Some time ago I found https://github.com/ianthehenry/sd though. It's a light wrapper around your own scripts which provides namespaces, autocompletion, custom help texts + some other QoL enhancements around that. It improves discoverability and usability a lot, very happy with it.
-
CLI user experience case study
A few things that can help with memory:
- spaced repetition for stuff that you use sporadically. I use Anki, it's great. For how to use it, this article is great: https://borretti.me/article/effective-spaced-repetition. I've found a positive feedback loop where the more I know how to do things without looking anything up, the more I use the CLI, the easier I remember things, the more things I discover, etc. I read once that when learning a new language, you should aim for content where you know 80%/90% already. It seems to be true for learning the CLI, and especially for integrating that learning into my day to day job.
- sd (https://github.com/ianthehenry/sd) for lowering the cost of creating a "documented alias". Before that I made aliases with either alias, or bash functions, all starting with "," to quickly see all which are "mine" (I read that trick in an article that I can't find), now the more complex stuff is in sd with some documentation.
- SD: My script directory
-
sd: your script directory
Yeah :( https://github.com/ianthehenry/sd/issues/9
The trouble is `sd` is just so easy to type on a qwerty keyboard, and it's such a nice mnemonic for "script directory." I've thought about renaming it, but I can't think of anything I like nearly as much.
-
Start all of your commands with a comma (2009)
zsh can do this if you set the PATH_DIRS option, but if I remember right it doesn't autocomplete deeply nested directories, just one level.
I made a little tool that dispatches hierarchical commands in a slightly nicer way, with intelligent autocomplete with command descriptions: https://github.com/ianthehenry/sd
What are some alternatives?
resh - RESH ❯❯ Contextual shell history for zsh and bash
bash-ctx - Make working on multiple projects a breeze!
reedline - A feature-rich line editor - powering Nushell
comma - Comma runs software without installing it. [maintainers=@Artturin,@burke,@DavHau] [Moved to: https://github.com/nix-community/comma]
shell-hag - shell hag is a shell-history aggregator
sd - Intuitive find & replace CLI (sed alternative)
shell
sad - CLI search and replace | Space Age seD
rollback - ⏮ Checkout master, back it up, and rollback to the previous commit erasing the current commit history
repo-cmd - Small unified framework for git-ignored scripting
historian - Command-line utility for managing shell history in a SQLite database.
garden - Garden grows and cultivates collections of Git trees ~ Official mirror of https://gitlab.com/garden-rs/garden