Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zshaddhistory confusion



On Mon, 26 Sep 2011, Jay Levitt wrote:

In addition to my normal zsh history, I want to write to a .zsh_history_detail file with comments showing date, pwd, etc. I'm trying

function zshaddhistory() {
   print -sr -- ${1%%\n'}

${1%%\n'}   -> ${1%%$'\n'}


   fc -p .zsh_history_detail
   print -sr "${1%%\n'} ### ${PWD} `date '+%Y-%m-%d %R'`"

same here: missing $' before the \n'

}

but it now
 1. writes what looks like a pid into .zsh_history, and
 2. puts both the normal AND the detailed history into .zsh_history_detail.

I am probably misunderstanding the fairly terse zshaddhistory docs. Any hints?

It's mostly the missing syntax. But, you also somewhat counterintuitively also have to return 1, so that zsh doesn't append an implicit:

print -sr -- "${1%%$'\n'}"

If you return a true value, the shell thinks you've done what you want to do and that it should log the line normally. Also, I added ~/ (the example in the docs is to have a per-directory history file).

zshaddhistory () {
   print -sr -- "${1%%$'\n'}"
   fc -p ~/.zsh_history_detail
   print -sr -- "${1%%$'\n'} ### ${PWD} $(date '+%Y-%m-%d %R')"
   return 1
}


The following doesn't seem to work, though I'd have thought it would based on the documentation...

zshaddhistory () {
   fc -p ~/.zsh_history_detail
   print -sr -- "${1%%$'\n'} ### ${PWD} $(date '+%Y-%m-%d %R')"
   fc -P
}

--
Best,
Ben



Messages sorted by: Reverse Date, Date, Thread, Author