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 доступны и правильно ли загружаются конфигурации по умолчанию. Вам не нужно настраивать кучу ручных перенаправлений для стандартных команд, таких как список в вашем вопросе.

  • Команда scp, работающая в bash, не работает в zsh
  • zshell - это вкладка, дополняющая двусмысленные варианты
  • Изменение динамического названия tmux-окна до последней строки вывода команды
  • тема oh-my-zsh, похоже, не обновляется, если я не запустил zsh
  • Как ввести несколько имен файлов с меньшим количеством штрихов
  • Как определить предпочтение завершения zstyle для псевдонима zsh?
  • Как удалить каждый файл с x в заголовке?
  • Функция Shell, чтобы проверить, есть ли приостановленный процесс, являющийся дочерним элементом этой оболочки?
  • Как псевдоним команды с '
  • Как можно настроить псевдонимы bash для обработки пробелов в именах каталогов?
  • Что эквивалентно «stty -echo» для zsh?
  • Linux и Unix - лучшая ОС в мире.