zsh-users
 help / color / mirror / code / Atom feed
* Excluding command from history list
@ 2015-01-23 17:32 Ramkumar Ramachandra
  2015-01-24  4:47 ` Bart Schaefer
  0 siblings, 1 reply; 3+ messages in thread
From: Ramkumar Ramachandra @ 2015-01-23 17:32 UTC (permalink / raw)
  To: zsh-users

Hi,

I have this problem where I'm always at the risk of hitting RET at the
wrong command during a ^R survey. Especially if you have commit access
to an important codebase,

  $ git svn dcommit

or

  $ git push -f

might be a disastrous at the wrong time. Hence, I want to exclude
*dcommit* from the history list; excluding it from the history file is
pretty simple:

  zshaddhistory () {
      [[ $1 != *dcommit* ]]
  }

... but I haven't figured out how to do it for the history list, which
is what really matters (because you're always looking for recent
history).

Thanks.

Ram


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Excluding command from history list
  2015-01-23 17:32 Excluding command from history list Ramkumar Ramachandra
@ 2015-01-24  4:47 ` Bart Schaefer
  2015-01-24 15:21   ` Daniel Shahaf
  0 siblings, 1 reply; 3+ messages in thread
From: Bart Schaefer @ 2015-01-24  4:47 UTC (permalink / raw)
  To: zsh-users

On Jan 23, 12:32pm, Ramkumar Ramachandra wrote:
}
} I want to exclude
} *dcommit* from the history list; excluding it from the history file is
} pretty simple:
} 
}   zshaddhistory () {
}       [[ $1 != *dcommit* ]]
}   }
} 
} ... but I haven't figured out how to do it for the history list

That *does* exclude it from the history list.

What it doesn't do (and what nothing does) is exclude it from being
kept in what might be termed the "previous command buffer".  You
can ALWAYS go back exactly one command, even when HISTSIZE=0, but
with the zshaddhistory hook above, that command will be discarded
as soon as there is another new one to replace it.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Excluding command from history list
  2015-01-24  4:47 ` Bart Schaefer
@ 2015-01-24 15:21   ` Daniel Shahaf
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Shahaf @ 2015-01-24 15:21 UTC (permalink / raw)
  To: Bart Schaefer; +Cc: zsh-users

Bart Schaefer wrote on Fri, Jan 23, 2015 at 20:47:55 -0800:
> On Jan 23, 12:32pm, Ramkumar Ramachandra wrote:
> }
> } I want to exclude
> } *dcommit* from the history list; excluding it from the history file is
> } pretty simple:
> } 
> }   zshaddhistory () {
> }       [[ $1 != *dcommit* ]]
> }   }
> } 
> } ... but I haven't figured out how to do it for the history list
> 
> That *does* exclude it from the history list.
> 
> What it doesn't do (and what nothing does) is exclude it from being
> kept in what might be termed the "previous command buffer".  You
> can ALWAYS go back exactly one command, even when HISTSIZE=0, but
> with the zshaddhistory hook above, that command will be discarded
> as soon as there is another new one to replace it.

You could partially workaround that feature by wrapping the
history-recalling commands with "don't recall dcommit" variants.  For
example:

% bindkey -L | grep up
bindkey "^[[A" up-line-or-history
% f() { 
  local b="$BUFFER"
  zle .up-line-or-history
  [[ $BUFFER == *dcommit* ]] && BUFFER=": : :"
}
% zle -N f f 
% bindkey '^[[A' f 

That doesn't stop you from using '!' in an input line, e.g., '!?dcommit'
would still recall the 'git svn dcommit' command.

Daniel


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-01-24 15:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-23 17:32 Excluding command from history list Ramkumar Ramachandra
2015-01-24  4:47 ` Bart Schaefer
2015-01-24 15:21   ` Daniel Shahaf

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).