Hacker News new | past | comments | ask | show | jobs | submit login

Good tool, but my history is so noisy I had to find another way. Lately I started to add a new habit in my shell actions.

When a command has some cognitive requirements I create a script with some ${1:-default} values and I store them all in $PATH enabled local/bin

All my scripts start with __ and then some capital letters indicating the topic.

I can copy them to new machines, which is something I would not do with my history.




> my history is so noisy I had to find another way

The fzf search syntax [1] can help, if you become familiar with it. It is also supported in atuin [2].

[1]: https://github.com/junegunn/fzf#search-syntax

[2]: https://docs.atuin.sh/configuration/config/#fuzzy-search-syn...


I use a similar trick but even dirtier

Whenever I'm satisfied with a pretty long command, I add a comment at the end that explain what it does (#blablabla). Makes searching sort of easier.


Prefixing these utility scripts is a nice tip, I used to do that as well.

Some time ago I found sd [1] 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.

[1]: https://github.com/ianthehenry/sd


Prefixing your scripts is an awesome tips. A colleague told me he prefixed all his commands with ',' and I've started to do the same. '_' might clash with 'hidden'(?) shell expansions etc.

Sadly git doesn't allow for aliases with an comma-prefix, so all git aliases starts with a dot.


You can make symlinks or shell aliases that just reference git-add et al directly.


Nushell has a SQLite history mode which captures more metadata than is typical. I haven't looked into extending it, but it seems like a good setup for adding enough so that some of these cognitive requirements could be recovered from history rather than thought of up front.

Like if I tend to go down the wrong path, fix it, and then go down the right path, maybe that's a pattern that can be identified and then when I search history it finds two or three commands which together set me on the right path in the first place.

I mean, thinking ahead is always gonna be better, but I don't always.


I’ve done this enough times I chain the desired command and the cd together:

    cd ~/x/y/z && my-command
So that when I CTRL-R for my-command it automatically reminds me.


If you’re doing this for history value put it in a subshell so it doesn’t change your working directory in a confusing way:

    (cd ~/x/y/z && my-command)


Neat idea, definitely going to use this! Thanks for sharing


cwd is one of the default fields. Here's my first nushell command:

    $ history | get 0
    ╭─────────────────┬─────────────────────────────╮
    │ start_timestamp │ 2023-12-15 15:39:12.872 UTC │
    │ command         │ ls                          │
    │ cwd             │ /home/matt/src/configs      │
    │ duration        │ 31 ms                       │
    │ exit_status     │ 0                           │
    ╰─────────────────┴─────────────────────────────╯
It would take some smarts to figure out when to bind the cwd and when not to, but that would be the interesting part.


> When a command has some cognitive requirements I create a script with some ${1:-default} values and I store them all in $PATH enabled local/bin

I would consider using just for this:

https://github.com/casey/just


I do a lot of literate coding for shell work, using org-mode. I have param substitution, command chaining, textual explanation and saved output from the last time commands were run. I can save the .org files for reference, or add them directly to my blog.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: