On July 31, 2018 9:09:05 AM GMT+02:00, Solene Rapenne <solene@perso.pw> wrote:
>Ken M <ken@mack-z.com> wrote:
>> OK, so confession 1, I am a long time bash user
>> confession 2 all of my ksh experience is on solaris
>>
>> However in a when in Rome moment I am realizing how much I like ksh
>in openbsd,
>> but one minor thing. I don't like how much clear ends up in my
>history file. So
>> I am wondering what I can do to suppress a command going to history.
>>
>>
>> Lets put my .profile here for reference
>>
>> # $OpenBSD: dot.profile,v 1.5 2018/02/02 02:29:54 yasuoka Exp $
>> #
>> # sh/ksh initialization
>>
>> . /etc/ksh.kshrc
>>
>>
>PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games:$HOME/.local/bin
>> PS1="[\u@\h: \W]$ "
>> HISTFILE=$HOME/.ksh_history
>> HISTSIZE=1000
>> export PATH HOME TERM PS1 HISTFILE HISTSIZE
>>
>> # For now clearing out clear from history when starting
>> sed -i '/^clear$/d' $HISTFILE
>>
>> bind -m '^L'=clear'^J'
>> # I wish this worked
>> # bind -m '^L'=clear'^J';sed -i '$d' $HISTFILE
>>
>> alias ll='ls -l'
>> alias la='ls -la'
>> alias watch='gnuwatch'
>>
>>
>> As you can see I tried adding the ; sed after my bind, I also tried
>it with &&
>> sed and that did not work. Both of course remove the sed from history
>and not
>> the clear. I guess I could remove the 2nd to last line. But before I
>go that sed
>> route is there a cleaner way to prevent a command from going to the
>HISTFILE?
>>
>> Ken
>
>you can use HISTCONTROL=ignoredups so you would have only one entry for
>"clear"
>in your history
That, or
HISTCONTROL=ignorespace
and prefix your clear with a space.
Another obvious candidate is
bind ^L=clear-screen
which however I believe is still only available in -current.
/Alexander
No comments:
Post a Comment