Zsh – более интеллектуальная автокоррекция

Можно ли заставить Zsh перестать пытаться исправить аргументы, которые не предназначены для файлов с файлами из текущего каталога, без полной коррекции или ограничения его на setopt CORRECT (только правильная команда)?

Например, когда CORRECT_ALL установлен с setopt , это происходит:

  gris@arefiev: ~% cd srcc change srcc to src-nyae? n 

Пока что хороший (аргумент к cd должен быть файлом). Однако,

  gris@arefiev: ~% man zile change zile to .zile-nyae? 

Какие? Я ожидал бы, что он исправит zile до .zile когда man вызывается с опцией -C . Он также пытается исправить параметры хоста ssh , первые аргументы sudo т. Д., sudo становятся очень раздражающими.

Я должен прибегнуть к костылю: установить alias man='nocorrect man' т. Д. И т. Д. Для каждой затронутой команды, но, alias man='nocorrect man' , это не лучшее решение. Мне также не нравится CORRECT и предпочитаю костыль плюс CORRECT_ALL просто CORRECT .

Zsh – zsh 4.3.17 (x86_64-unknown-linux-gnu) , Debian sid.

Обновление : вот мой .zshrc http://pastebin.com/67mykgRv

2 Solutions collect form web for “Zsh – более интеллектуальная автокоррекция”

Zsh поставляется с большим набором дополнений, но с меньшим набором исправлений. Существует много команд, для которых завершение полезно, но не исправление; например, полезно дополнить аргументы mkdir (для создания каталогов внутри существующих каталогов), но не для их исправления. Параметр correct_all очень суровый, поскольку он включает коррекцию повсюду; к сожалению, нет возможности корректировать только при наличии набора правильных входов.

Вы можете настроить исправления для заданной команды, установив тег corrections и настроить, выполнять ли коррекцию, сделав _correct часть matcher-list или нет. Они устанавливаются с zstyle встроенного zstyle .

Мне кажется, что в вашем дистрибутиве чего-то не хватает. Большинство реализаций ZSH поставляются с большой коллекцией предварительно настроенных параметров завершения для ZSH, которые интеллектуально завершаются на основе позиции команды и аргумента. Например, в моей системе есть пакет zsh-completions . Когда он установлен и правильно загружен, man завершает работу только с вещами, найденными на страницах руководства, а не с файлами, ssh только с именами хостов, ssh -l будет заполнен системными именами пользователей, но после того, как ssh -l caleb вернется к завершению с именами хостов, и т.п.

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

  • Как я могу правильно обрезать строку с помощью sed - и не убивать строку, если шаблон не существует?
  • zsh скрипт успешно тестирует ssh или нет
  • Как установить zsh для использования физических путей?
  • Где zsh хранит мою историю?
  • Каков правильный способ сортировки связанного массива в bash или zsh?
  • Завершение zsh не исправимо? (вопросительный знак) в дорожках
  • zsh с аргументами
  • Без учета . и .. из результатов поиска и ls
  • Переименование файлов в лексикографическом порядке с помощью числового шаблона, который последовательно увеличивается с фиксированным заполнением
  • На `fork`, дочерних процессах и" подоболочках "
  • Почему диапазон расширения скобок использует две точки вместо трех (эллипсис)?
  • Linux и Unix - лучшая ОС в мире.