4 ms·
I'm a big fan of saving history - trying to remember all the shell based commands we use is a nightmare! If you're using zsh, a tip I picked up from [0] was to
by yomly 10y ago
I'm a big fan of saving history - trying to remember all the shell based commands we use is a nightmare!
If you're using zsh, a tip I picked up from [0] was to alias all your common commands like
'cd', 'ls' 'fg'...
to:
' cd' ' ls' ' fg' ...
Then add the following line to your zshrc to ignore lines prepended with a space:
setopt HIST_IGNORE_SPACE
This keeps your history cleaner from any ls, cd, fg inputs you use.
[0] http://chneukirchen.org/blog/archive/2012/02/10-new-zsh-tricks-you-may-not-know.html http://chneukirchen.org/blog/archive/2012/02/10-new-zsh-tric...
EDIT: formatting
- Terretta 10y agoDropping the ls, ok. But cd conveys relevant context. It would be really clever if a series of cd/ls rolled into a final absolute path cd so history shows context for the subsequent batch of commands.
- superuser2 10y agoCan you not set the template line for log entries? Seems like $(pwd) could go alongside time stamp.
- kerkeslager 10y agoIf you find yourself doing a series of `cd` and `ls` commands frequently, I feel like you might be using `cd` and tab completion ineffectively. Instead of doing: ls cd foo/ ls cd bar/ ls cd baz/ You can do: ls cd foo/<tab><tab>bar/<tab><tab>baz/ This isn't what it will look like, it's just the key sequence (if this doesn't make sense let me know and I'll try to explain better). <tab><tab> will list all the possible completions, which is equivalent to an ls, without having to type in an ls and then another cd. You can frequently avoid even more `cd`/`ls` shenanigans by judiciously using `pushd`.
- NhanH 10y agoTab autocomplete will show everything, and showing a screen full of name is not particularly useful. Most of the time I use ls it's something like "ls (asterisk)foo(asterisk)". How do I escape asterisk on HN? :O
- rsamvit 10y agoI just do: function cd () { builtin cd "$@" && ls; }
- agumonkey 10y agoThere's a direct parameter to do that in one go. HISTIGNORE="history:ls:[bf]g:exit:htop:ncdu:pwd:reset:clear:mount:umount:&:^[ \t]*" Mine might be flawed though.
- guelo 10y agoA lot of times I want to go back and look in which directory I was executing some command.
- SEJeff 10y agoSo you're saying you just showed me the one feature bash has over zsh!? Bash has an env var named HISTIGNORE that will allow you to not put commonly used boring commands in your history. Mine looks like: export HISTIGNORE="ls:exit:history:[bf]g:jobs"