Я решил проблему, изменив конфигурацию / etc / fstab. У меня на сервере несколько смонтированных разделов. Один был для / usr, другой - для / var / www, где у меня есть свои веб-проекты. Мне пришлось дать flash data = exec, а затем перезагрузить систему, переустановить node_modules в каталоге проекта.
UUID="b0d7a164-2536-4c2a-98f7-cdc6c3107c45" /var/www ext4 rw,relatime,data=ordered,exec 0 2
Следует использовать параметр HIST_IGNORE_SPACE
.
setopt HIST_IGNORE_SPACE
или установите его в своем профиле, а затем добавьте пробел к командам, которые вы не хотите сохранять.
По умолчанию zsh
всегда сохраняет последнюю команду в истории сеанса, даже если установлено HISTSIZE = 0
. Вы можете написать свой собственный виджет для обойти механизм истории.
sneaky-run () {
echo
eval $BUFFER
BUFFER=''
zle reset-prompt
}
zle -N sneaky-run
bindkey '^X^M' sneaky-run
Этот виджет скрытый запуск
выполнит набранную в данный момент команду, затем очистит буфер команд и сбросит подсказку.
Команды, которые выполняются в виджете: не добавляется в историю.
echo
в начале необходимо, чтобы вывод начинался с новой строки.Если у вас есть многострочное приглашение, вам может потребоваться добавить дополнительные echo
s для каждой дополнительной строки непосредственно перед zle reset-prompt
, в противном случае приглашение может перезаписать несколько строк команды выход.
В этом примере скрытый запуск
привязан к комбинации клавиш Ctrl + X , Введите .
Если вы не хотите использовать для этого дополнительную комбинацию клавиш, вы также можете обернуть виджет accept-line
, который обычно привязан к Enter
accept-line-with-sneaky () {
if [[ "$BUFFER" == "${BUFFER#" } ]] ; then
zle accept-line
else
echo
eval $BUFFER
BUFFER=''
zle reset-prompt
fi
}
zle -N accept-line-with-sneaky
bindkey '^M' accept-line-with-sneaky
Это имитирует поведение настройка HIST_IGNORE_SPACE
: Если команда начинается с пробела, она не будет добавлена в историю. Но кроме HIST_IGNORE_SPACE
, он также будет недоступен при нажатии Вверх .
Примечание: это переопределит одну из самых фундаментальных привязок клавиш zsh
. Поэтому, пожалуйста, тщательно протестируйте, прежде чем помещать это в свой ~ / .zshrc
.