Jawaban:
Gunakan opsi HIST_IGNORE_SPACE.
setopt HIST_IGNORE_SPACE
man zshoptions
HIST_IGNORE_SPACE
Hapus baris perintah dari daftar riwayat saat karakter pertama pada baris adalah spasi, atau ketika salah satu alias yang diperluas berisi spasi terdepan. Perhatikan bahwa perintah tetap ada dalam riwayat internal hingga perintah berikutnya dimasukkan sebelum menghilang, memungkinkan Anda untuk menggunakan kembali secara singkat atau mengedit baris. Jika Anda ingin segera menghapusnya tanpa memasukkan perintah lain, ketikkan spasi dan tekan kembali.
kill -9 $$
memang fantastis untuk menghindari semua perintah yang dikeluarkan dalam sesi terminal saat ini untuk disimpan dalam sejarah.
unset HISTFILE
sebelum blok perintah Anda. Anda perlu mengatur ulang HISTFILE
sesudahnya atau membuka shell baru untuk menyimpan perintah dalam riwayat yang Anda inginkan.
Jika Anda menginginkan kontrol yang lebih terperinci atas apa yang ditambahkan ke riwayat ZSH, Anda dapat menentukan zshaddhistory
fungsinya .zshrc
. Definisi berikut menggunakan regex untuk menentukan pola yang diabaikan:
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
Perhatikan bahwa perilaku dari man zshopts
bawah HIST_IGNORE_SPACE
masih ada:
Perhatikan bahwa perintah tetap ada dalam riwayat internal hingga perintah berikutnya dimasukkan sebelum menghilang, memungkinkan Anda untuk menggunakan kembali secara singkat atau mengedit baris.
Jadi untuk mengujinya, Anda harus menekan ekstra [Enter]
. Ini menghapus perintah baik dari output history
, dan juga sejarah panah ↑.