Назад | Перейти на главную страницу

Невозможно заставить Zsh не предлагать исправление для псевдонима

У меня есть псевдоним для

alias tdA='todo -a'

Я получаю в зш следующее

tdA          
zsh: correct 'tdA' to 'tda' [nyae]? 

Как можно заставить Zsh не предлагать исправление для псевдонима?

Я использую zsh около 18 лет и должен сказать, что мне не нравится принятое решение. Вот почему:

Вам необходимо выяснить источник проблемы - определить, почему «tda» предлагается в качестве варианта исправления. Что вы сделали, так это полностью отключили исправление орфографии во всем мире. Это лишает вас некоторых очень хороших функций при попытке избавиться от тактической проблемы. Это похоже на желание убить муху в своем доме, запустив динамит только потому, что вы слишком ленивы, чтобы понять, где находится мухобойка: это может избавить вас от проблемы, но вы жертвуете многим взамен. :)

Пока вы не сможете определить текущую конфигурацию исправления орфографии вашего zsh, вам следует рассмотреть возможность установки значения специальной переменной оболочки $ CORRECT_IGNORE равной 'tda'.

Вот запись на странице руководства zsh:

   CORRECT_IGNORE
          If set, is treated as a pattern during spelling correction.  Any
          potential  correction  that matches the pattern is ignored.  For
          example, if the value is `_*' then completion functions  (which,
          by  convention,  have  names  beginning  with `_') will never be
          offered as spelling corrections.  The pattern does not apply the
          correction  of  file names, as applied by the CORRECT_ALL option
          (so with the example just given files beginning with `_' in  the
          current directory would still be completed).

Это должно помочь вам добраться до тех пор, пока вы не сможете определить источник, откуда на самом деле исходит tda.

Также обратите внимание, что вы можете использовать модификатор предварительной команды 'nocorrect', чтобы отключить исправление орфографии для каждой команды. Вы можете использовать это, чтобы сделать что-нибудь немного взломанное, но эффективное:

alias tdA="nocorrect tda"
alias tda="todo -a"

псевдонимы - это просто токены, заменяемые zsh в командной строке, и эти замены повторно проверяются на наличие дополнительных псевдонимов. Так что все вышесказанное должно работать.

Надеюсь, эти альтернативы дадут вам более избирательный подход к решению вашей проблемы, но при этом дадут вам преимущества богатых функций исправления орфографии zsh.

Удачи!

пытаться

% unsetopt правильно

У меня по умолчанию исправление орфографии отключено.

Если работает, добавьте в свой .zshrc файл.