[HN Gopher] RESH: Rich Enhanced Shell History ___________________________________________________________________ RESH: Rich Enhanced Shell History Author : hxelk1 Score : 74 points Date : 2022-05-16 17:20 UTC (5 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | smartmic wrote: | The 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 wrote: | Yeah, based on the issues that might be a fair assumption: | | https://github.com/curusarn/resh/issues | | more expected issues from relying on a big JSON file: | | https://github.com/curusarn/resh/issues/171 | curusarn wrote: | Hi, 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 wrote: | Can you save a version flag and support both until you | write the migration logic? That way at least new users | benefit | cmer wrote: | Been using something similar, McFly, for a while. It works really | well. https://github.com/cantino/mcfly | phiresky wrote: | Alternatives (without judgement): | | https://github.com/cantino/mcfly | | https://github.com/jcsalterego/historian | | https://github.com/larkery/zsh-histdb + | https://github.com/m42e/zsh-histdb-fzf | | 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 . | csdvrx wrote: | > 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 | | Everything goes into SQLite, which is helpful for stats - like, | when do I make the most mistakes? | ape4 wrote: | My 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 wrote: | I think you want `fzf`? | tcoff91 wrote: | This looks interesting, I'll have to try this and see how I like | it compared to fzf's fuzzy history search. | pepemon wrote: | Is there something similar available for fish? | ghishadow wrote: | https://github.com/cantino/mcfly it uses small neural engine | and pretty fast | ilaksh wrote: | How does the default fish completion compare to this I wonder? | It's pretty great already. | trulyrandom wrote: | I 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. | foobarian wrote: | I 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 ___________________________________________________________________ (page generated 2022-05-16 23:00 UTC)