Я знаю, что в Bash установка пробела перед тем, как команда не позволяет сохранить его в истории, что является эквивалентом zshell?
2 ответа
Используйте опцию HIST_IGNORE_SPACE.
setopt HIST_IGNORE_SPACE
человек жопций
HIST_IGNORE_SPACE
Удалите командные строки из списка истории, если первый символ в строке является пробелом или когда один из расширенных псевдонимов содержит начальный пробел. Обратите внимание, что команда сохраняется во внутренней истории до тех пор, пока не будет введена следующая команда, прежде чем она исчезнет, что позволит вам на короткое время повторно использовать или редактировать строку. Если вы хотите, чтобы он сразу исчез без ввода другой команды, введите пробел и нажмите клавишу возврата.
Если вы хотите более детальный контроль над тем, что добавлено в историю zshaddhistory
, вы можете определить функцию zshaddhistory в .zshrc
. В следующем определении используется регулярное выражение для определения шаблона, который следует игнорировать:
function zshaddhistory() {
emulate -L zsh
if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
print -sr -- "${1%%$'\n'}"
fc -p
else
return 1
fi
}
Обратите внимание, что поведение от man zshopts
в HIST_IGNORE_SPACE
все еще присутствует:
Обратите внимание, что команда сохраняется во внутренней истории до тех пор, пока не будет введена следующая команда, прежде чем она исчезнет, что позволит вам на короткое время повторно использовать или редактировать строку.
Таким образом, чтобы проверить это, вам нужно будет нажать дополнительный [Enter]
. Это удаляет команду как из вывода history
, так и из истории стрелок.