Подтвердить что ты не робот

Создание автоматической работы zsh с пользовательскими псевдонимами git

У меня есть пользовательский псевдоним для git, который я использую с git df (в основном это ярлык для git diff).

Однако, с git s zsh autocorrect, каждый раз, когда я использую git df в каталоге, который содержит каталог db, я получаю следующее:

% ls
app/ config/ db/ lib/ log/ spec/

% git alias | grep "df"
df = diff

% git df
zsh: correct 'df' to 'db' [nyae]?

Есть ли способ заставить zsh знать мои псевдонимы git, чтобы они учитывали их при попытке автокоррекции моих команд? Я хочу, чтобы он обнаружил, что git df существует, а не предлагает мне git db.

Я не хочу создавать псевдоним zsh (например. alias gdf="git diff") или использовать alias git="nocorrect git".

Спасибо за вашу помощь!

4b9b3361

Ответ 1

Вы можете заставить zsh перестроить кеш автокоррекции, выполнив команду hash -rf или rehash. Это фиксировало мою проблему, когда zsh автоматически исправлял неправильную вещь.

Ответ 2

Git имеет функцию автокоррекции:

git config --global help.autocorrect 

Ожидает 2 секунды перед автокоррекцией:

git config --global help.autocorrect 2 

Я думаю, что если вы хотите реализовать эту функцию в zsh, вам придется напрямую изменить функцию завершения git.

Ответ 3

Иногда я нахожу, что автоматическое исправление немного раздражает. Так что я делаю в своем ~/.zshrc,

DISABLE_CORRECTION="true"

Это отключает функцию автокоррекции. В противном случае вы могли бы сделать

alias git="nocorrect git" 

но вы, похоже, не против этого