6 ms·
RESH: Rich Enhanced Shell History
- pepemon 4y agoIs there something similar available for fish?
- trulyrandom 4y agoI believe fish already does some of these things. For example: if there is no binary available in PATH for one of the commands in your history, that command won't be suggested. Same goes for commands that have file/directory names in them that don't exist.
- ghishadow 4y agohttps://github.com/cantino/mcfly https://github.com/cantino/mcfly it uses small neural engine and pretty fast
- ilaksh 4y agoHow does the default fish completion compare to this I wonder? It's pretty great already.
- smartmic 4y agoThe example shows many fields which are stored in the JSON for each command. I wonder how the file size will blow up after some time. Also, how are duplicates handled? Looking at all the details which are kept in context of a command, removing duplicate commands seems not to be an option without loosing the rich context.
- o_____________o 4y agoYeah, based on the issues that might be a fair assumption: https://github.com/curusarn/resh/issues https://github.com/curusarn/resh/issues more expected issues from relying on a big JSON file: https://github.com/curusarn/resh/issues/171 https://github.com/curusarn/resh/issues/171
- curusarn 4y agoHi, author here. I have almost two years of history on my machine right now. It's 77k history records which takes up 126MB. The amount of saved context is currently excessive. When I started the project I didn't know exactly what I would need so I included a lot of things that were never used. I do plan to reduce the history records to about 16 fields which should more than halve the space requirements. I haven't done this yet because I need to safely convert the existing history records people already have to the new reduced version during update which is tricky.
- yjftsjthsd-h 4y agoCan you save a version flag and support both until you write the migration logic? That way at least new users benefit
- ape4 4y agoMy favorite shell keystroke saver now is tab-completion. Its wonderful that it works for things besides files. eg `systemctl iso<tab>` gives 'systemctl isolate` Its great but it could be even better. For example if there is ambiguity the possible choices are shown but not as a menu.
- fcarraldo 4y agoI think you want `fzf`?
- tcoff91 4y agoThis looks interesting, I'll have to try this and see how I like it compared to fzf's fuzzy history search.
- reddit_clone 4y agoI am a long time user of Zsh with FZF history search. Can't live without it now. (Same as Emacs+Helm everywhere). I tried McFly for a bit (Was interested in optimized search based on the current folder). But the whole UI was wonky and jumping around. So I came back to FZF.
- cmer 4y agoBeen using something similar, McFly, for a while. It works really well. https://github.com/cantino/mcfly https://github.com/cantino/mcfly
- phiresky 4y agoAlternatives (without judgement): https://github.com/cantino/mcfly https://github.com/cantino/mcfly https://github.com/jcsalterego/historian https://github.com/jcsalterego/historian https://github.com/larkery/zsh-histdb https://github.com/larkery/zsh-histdb + https://github.com/m42e/zsh-histdb-fzf https://github.com/m42e/zsh-histdb-fzf https://github.com/ellie/atuin https://github.com/ellie/atuin All of these except the OP (I think) use SQLite databases. Personally I use zsh-histdb, which is great but only for ZSH. I'm working on adding a rich SQLite history to nushell so I can finally try nu: https://github.com/nushell/reedline/pull/401 https://github.com/nushell/reedline/pull/401 .
- csdvrx 4y ago> I'm working on adding a rich SQLite history to nushell You may then be interested in my solution for bash, where Ctrl-R gives you fzy history for the given directory and Ctrl-T for all directories: https://github.com/csdvrx/bash-timestamping-sqlite https://github.com/csdvrx/bash-timestamping-sqlite Everything goes into SQLite, which is helpful for stats - like, when do I make the most mistakes?
- abathur 4y agoIf you were a fan of your favorite band before anyone else, you may also find https://github.com/abathur/shell-hag https://github.com/abathur/shell-hag somewhat interesting. I found it sad that there's so much overlapping effort (here, but in profile plug-ins broadly) so I also abstracted its foundational shell glue out into its own module, https://github.com/abathur/shellswain https://github.com/abathur/shellswain. I am slow-cooking them, for better and worse.
- landhar 4y agoOne thing I’d like these to do (I tried a couple and settled for zsh-histdb with the fzf integration) is to be able to annotate past commands, with a description, tags or, even better, both. The use case I have in mind is when I end up crafting some complicated and inscrutable incantation and being able to “earmark” it for future reference with a little bit of context that FutureMe might have forgotten by the time he thinks to reach out for the history. Put another way, I do tend to use my shell history as a scrapbook of sorts, and I wish I was able to easily write on the margins. Please, let me know if this is already a feature of any of these tools that I’ve completely missed.
- foobarian 4y agoI use a homerolled thing in .bashrc using plain text files. Regardless of implementation details, this kind of thing saved me vast amount of time over the years. Some requirements that I find the most useful: - Session ID: assign session IDs so multiple shells don't get mixed up. Make customizable so it's easy to integrate with screen or tmux etc. On reboot, if session IDs are restored, the history can be recovered. - Instant write: command typed in one shell should be available to search in a different shell right away - Search order: reverse search should return commands for the current session first, but also make other sessions available
- devnonymous 4y agoNot directly related, but for a long time now, I've been using per project specific $HISTFILE (set automatically when I start using, ie: cd into, the project dir) and that simple change, by itself, has greatly improved the quality of the cli history.