Это команда zshcompsys, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
zshcompsys - система завершения zsh
ОПИСАНИЕ
Здесь описывается код оболочки для "новой" системы завершения, называемой компис, Это
написан в функциях оболочки на основе функций, описанных в zshcompwid(1).
Функции контекстны, чувствительны к моменту начала завершения. Многие
доработки уже предусмотрены. По этой причине пользователь может выполнять очень много задач.
не зная каких-либо подробностей, кроме того, как инициализировать систему, что описано ниже
в ИНИЦИАЛИЗАЦИИ.
Контекст, который решает, какое завершение должно быть выполнено, может быть
· Позиция аргумента или опции: они описывают позицию в командной строке в
запрошенное завершение. Например, `первый аргумент для rmdir, слово
заполняется именует каталог ';
· Специальный контекст, обозначающий элемент синтаксиса оболочки. Например, слово
в позиции команды 'или' индекс массива '.
Полная спецификация контекста содержит другие элементы, которые мы опишем.
Помимо имен команд и контекстов, в системе используются еще две концепции: стили и
имеют теги. Они предоставляют пользователю способы настроить поведение системы.
Теги играют двоякую роль. Они служат системой классификации матчей, обычно
с указанием класса объекта, который может потребоваться различать пользователю. Например, когда
завершающие аргументы ls команда, которую пользователь может предпочесть попробовать файлов до
каталоги, так что оба они теги. Они также появляются как крайний правый элемент в
спецификация контекста.
Стили изменяют различные операции системы завершения, такие как форматирование вывода, но
также, какие типы завершителей используются (и в каком порядке) или какие теги проверяются.
Стили могут принимать аргументы, и ими можно управлять с помощью zstyle команда, описанная в см.
zshмодули(1).
Таким образом, теги описывают почему объекты завершения и стиль это они должны быть
завершенный. На разных этапах выполнения система завершения проверяет, какие стили
и / или теги определены для текущего контекста и используют это для изменения своего поведения.
Полное описание обработки контекста, которая определяет, как теги и другие элементы
контекст, влияющий на поведение стилей, описан ниже в СИСТЕМЕ ЗАВЕРШЕНИЯ
КОНФИГУРАЦИЯ.
Когда запрашивается завершение, вызывается функция диспетчера; см. описание
_main_complete в списке функций управления ниже. Этот диспетчер решает, какой
должна быть вызвана функция завершения и вызывает ее. Результат пройден
одному или нескольким завершатели, функции, реализующие индивидуальные стратегии завершения:
простое завершение, исправление ошибок, завершение с исправлением ошибок, выбор меню,
и так далее
В более общем смысле, функции оболочки, содержащиеся в системе завершения, бывают двух типов:
· Те, которые начинаютсякомп'должны вызываться напрямую; их всего несколько;
· Те, которые начинаются_'вызываются кодом завершения. Функции оболочки этого
set, которые реализуют поведение завершения и могут быть привязаны к нажатию клавиш, являются
называемые "виджетами". Они увеличиваются по мере того, как требуются новые заканчивания.
ИНИЦИАЛИЗАЦИЯ
Если система была установлена полностью, должно быть достаточно вызова функции оболочки
составить из вашего файла инициализации; см. следующий раздел. Однако функция
компоновка может запускаться пользователем для настройки различных аспектов системы заканчивания.
Как правило, компоновка вставит код в .zshrc, хотя, если это не доступно для записи, это
сохранит его в другом файле и сообщит вам местоположение этого файла. Обратите внимание, что это зависит от вас
чтобы убедиться, что строки добавлены к .zshrc действительно запущены; вам может, например, понадобиться
чтобы переместить их на более раннее место в файле, если .zshrc обычно возвращается рано. Пока
вы держите их все вместе (включая строки комментариев в начале и в конце), вы можете
повторный показ компоновка и он правильно найдет и изменит эти строки. Обратите внимание, однако,
что любой код, который вы добавляете в этот раздел вручную, скорее всего, будет утерян, если вы повторно запустите
компоновка, хотя строки, использующие команду `zstyle'следует изящно обращаться.
Новый код вступит в силу в следующий раз, когда вы запустите оболочку или запустите .zshrc рукой; там
также можно сделать так, чтобы они вступили в силу немедленно. Однако если компоновка и
удаленных определений, вам нужно будет перезапустить оболочку, чтобы увидеть изменения.
Бежать компоновка вам нужно будет убедиться, что он находится в каталоге, указанном в вашем путь
параметр, который уже должен иметь место, если zsh был правильно настроен, пока ваш
файлы запуска не удаляют соответствующие каталоги из путь. Тогда это должно быть
автозагрузка (`автозагрузка -U компоновка' Рекомендовано). Вы можете прервать установку в любой
время, когда вас просят предоставить информацию, и ваш .zshrc вообще не будет изменен;
изменения происходят только в самом конце, когда вас специально просят
подтверждение.
Используйте of составить
В этом разделе описывается использование составить для инициализации завершения для текущего
сеанс при прямом вызове; если ты бежал компоновка он будет вызываться автоматически
от твоего .zshrc.
Для инициализации системы функция составить должен находиться в каталоге, указанном в
путь параметр и должен быть загружен автоматически (`автозагрузка -U составить'рекомендуется), и
затем запустите просто как `составить'. Это определит несколько вспомогательных функций для всех
необходимые функции оболочки для автозагрузки, а затем переопределят все виджеты, которые
сделать доработку, чтобы использовать новую систему. Если вы используете меню-выбор виджет, который является частью
zsh / Complist модуль, вы должны убедиться, что этот модуль загружен перед вызовом
в составить так что этот виджет также переопределен. Если стили завершения (см. Ниже)
настроен для выполнения расширения, а также завершения по умолчанию, а клавиша TAB привязана к
развернуть или завершить, составить перепишет это на полное слово; это необходимо для использования
правильная форма расширения.
Если вам нужно использовать исходные команды завершения, вы все равно можете привязать ключи к
старые виджеты, поставив `.'перед именем виджета, например,.развернуть или завершить'.
Чтобы ускорить работу составить, это может быть сделано для создания дамповой конфигурации, которая
будут прочитаны при будущих призывах; это значение по умолчанию, но может быть отключено
требуют составить с возможностью -D. Дамповый файл .zcompdump в том же каталоге
в качестве файлов запуска (т.е. $ ZDOTDIR or $ HOME); в качестве альтернативы, явное имя файла может быть
данный `составить -d файл дампа'. Следующий вызов составить прочтет сброшенные
файл вместо выполнения полной инициализации.
Если количество файлов завершения изменится, составить распознает это и создаст новый
файл дампа. Однако, если имя функции или аргументы в первой строке
#компдеф изменение функции (как описано ниже), проще всего удалить файл дампа с помощью
рука так, чтобы составить воссоздаст его при следующем запуске. Проверка проведена на
посмотреть, есть ли новые функции, можно опустить, указав опцию -C, В этом случае
файл дампа будет создан только в том случае, если его еще нет.
Сброс фактически выполняется другой функцией, компдамп, но вам нужно будет только запустить
это самостоятельно, если вы измените конфигурацию (например, используя компдеф) а потом хотите сбросить
новый. Для этого запомнится имя старого выгруженного файла.
Если параметр _compdir установлен, составить использует его как каталог, в котором завершение
функции можно найти; это необходимо только в том случае, если они еще не включены в функцию
путь поиска.
По соображениям безопасности составить также проверяет, будет ли система завершения использовать файлы, не
принадлежащие root или текущему пользователю, или файлы в каталогах, которые являются мировыми или
доступны для записи или не принадлежат пользователю root или текущему пользователю. Если такие файлы или
каталоги найдены, составить спросит, действительно ли нужно использовать систему завершения.
Чтобы избежать этих тестов и использовать все найденные файлы без запроса, используйте опцию -u,
и сделать составить молча игнорировать все небезопасные файлы и каталоги используйте опцию -i.
Эта проверка безопасности полностью пропускается, когда -C предоставляется вариант.
Проверку безопасности можно повторить в любой момент, запустив функцию компаудит. Это
тот же чек, используемый составить, но когда он выполняется напрямую, любые изменения в путь
сделаны локальными для функции, поэтому они не сохраняются. Проверяемые каталоги могут быть
передается как аргумент; если ничего не указано, компаудит использования путь и _compdir найти
каталоги системы завершения, добавление недостающих в путь как надо. Чтобы заставить
проверка именно каталогов, названных в настоящее время в путь, задавать _compdir в пустую строку
перед звонком компаудит or составить.
Функция Башкомпинит обеспечивает совместимость с программируемым завершением bash
система. При запуске он определит функции, компген и полный которые соответствуют
встроенные команды bash с такими же именами. После этого можно будет использовать завершение
спецификации и функции, написанные для bash.
Автозагрузка файлов
Соглашение об использовании автозагружаемых функций в завершении состоит в том, что они начинаются с
подчеркивать; как уже упоминалось, fpath / FPATH параметр должен содержать каталог в
которые они хранятся. Если ЗШ был правильно установлен в вашей системе, то fpath / FPATH
автоматически содержит необходимые каталоги для стандартных функций.
Для неполных установок, если составить не находит достаточно файлов, начинающихся с
подчеркивание (менее двадцати) в пути поиска, он попытается найти больше, добавив
каталог _compdir на путь поиска. Если в этом каталоге есть подкаталог с именем Система исчисления,
все подкаталоги будут добавлены в путь. Кроме того, если подкаталог Система исчисления имеет
подкаталог с именем Основные, составить добавит все подкаталоги подкаталогов в
путь: это позволяет функциям быть в том же формате, что и в ЗШ источник
распределение.
После появления составить запущен, он ищет все такие файлы, доступные через fpath / FPATH и читает
первая строка каждого из них. Эта строка должна содержать один из тегов, описанных ниже.
Файлы, первая строка которых не начинается с одного из этих тегов, не считаются частью
системы завершения и не будут рассматриваться специально.
Теги:
#компдеф имя ... [ -{p|P} описания ... [ -N имя ...]]
Файл станет автоматически загружаемым, и функция, определенная в нем, будет вызываться.
при завершении имяs, каждое из которых является либо именем команды,
аргументы должны быть заполнены или один из нескольких специальных контекстов в форме
-контекст- описано ниже.
Каждый имя также может иметь формуCMD=СЕРВИС'. При выполнении команды CMD,
функция обычно ведет себя так, как если бы команда (или специальный контекст) СЕРВИС законопроект
вместо этого завершается. Это дает возможность изменить поведение
функции, которые могут выполнять множество различных завершений. Реализуется
настройка параметра $ сервис при вызове функции; функция может выбрать
интерпретировать это так, как он хочет, а более простые функции, вероятно, проигнорируют это.
Если же линия индикатора #компдеф строка содержит один из вариантов -p or -P, следующие слова
принято быть узорами. Функция будет вызываться при попытке завершения для
команда или контекст, соответствующий одному из шаблонов. Варианты -p и -P
используется для указания шаблонов, которые нужно попробовать до или после других завершений
соответственно. Следовательно -P может использоваться для указания действий по умолчанию.
Опция -N используется после списка, следующего за -p or -P; он указывает, что оставшиеся
слова больше не определяют закономерности. Можно переключаться между тремя
вариантов столько раз, сколько необходимо.
#компдеф -k стиль последовательность клавиш ...
Эта опция создает виджет, который ведет себя как встроенный виджет. стиль и связывает его с
данный последовательность клавишs, если есть. В стиль должен быть одним из встроенных виджетов,
выполнить доработку, а именно полное слово, удалить-символ-или-список, развернуть или завершить,
префикс расширения или завершения, список-выбор, полное меню, меню-раскрыть-или-завершить или
обратное-меню-полное, Если zsh / Complist модуль загружен (см. zshмодули(1))
виджет меню-выбор также доступны.
Когда один из последовательность клавишs, функция в файле будет вызываться для
генерировать совпадения. Обратите внимание, что ключ не будет повторно привязан, если он уже был (что
есть, был привязан к чему-то другому, кроме неопределенный ключ). Созданный виджет имеет
то же имя, что и файл, и может быть привязан к любым другим ключам, используя привязка как обычно.
#компдеф -K имя-виджета стиль последовательность клавиш [ имя стиль далее ...]
Это похоже на -k за исключением того, что только один последовательность клавиш аргумент может быть дан в пользу
каждый имя-виджета стиль пара. Однако весь набор из трех аргументов может быть
повторяется с другим набором аргументов. Отметим, в частности, что
имя-виджета должны быть разными в каждом наборе. Если он не начинается с `_' это будет
быть добавленным. В имя-виджета не должно совпадать с именем любого существующего виджета:
имена, основанные на имени функции, наиболее полезны. Например,
#компдеф -K _foo_complete полное слово «^ X ^ C» \
_foo_list список-выбор "^ X ^ D"
(все в одной строке) определяет виджет _foo_complete для завершения, привязанный к `^ X ^ C',
и виджет _foo_list для включения в список, привязанный к `^ X ^ D'.
# автозагрузка [ кредита ]
Функции с # автозагрузка помечены для автозагрузки, но не иначе
лечился специально. Обычно они вызываются из одного из
функции завершения. Любой кредита поставленные будут переданы автозагрузка встроенный;
типичное использование +X для немедленной загрузки функции. Обратите внимание, что
-U и -z флаги всегда добавляются неявно.
Команда # является частью имени тега, после него не допускается использование пробелов. В #компдеф имеют теги
использовать компдеф функция, описанная ниже; главное отличие в том, что название
функция предоставляется неявно.
Специальные контексты, для которых могут быть определены функции завершения:
-массив-значение-
Правая часть присваивания массива (`имя=(...)')
-браслет-параметр-
Имя раскрываемого параметра в фигурных скобках (`${...}')
-assign-параметр-
Имя параметра в присвоении, то есть в левой части символа `='
-команда-
Слово в командной позиции
-состояние-
Слово внутри условия (`[[...]]')
По умолчанию-
Любое слово, для которого не определено другое завершение.
-равный-
Слово, начинающееся со знака равенства
-первый-
Это делается перед любой другой функцией завершения. Вызываемая функция может устанавливать
_compskip параметр на одно из различных значений: ВСЕ: дальнейшее завершение не выполняется
попытка; строка, содержащая подстроку паттеранами: без завершения шаблона
будут вызваны функции; строка, содержащая по умолчанию: функция для
`По умолчанию-'контекст не будет вызываться, но функции, определенные для команд, будут.
-математика- Внутри математических контекстов, таких как `((...))'
-параметр-
Имя расширения параметра (`$...')
-перенаправить-
Слово после оператора перенаправления.
-подстрочный-
Содержание нижнего индекса параметра.
-тилда-
После начальной тильды (`~'), но перед первой косой чертой в слове.
-ценность-
Справа от задания.
Реализации по умолчанию предоставляются для каждого из этих контекстов. В большинстве случаев
контекст -контекст- реализуется соответствующей функцией _контекстнапример
контекст `-тилда-'и функция `_тильда«).
Контексты -перенаправить- и -ценность- разрешить дополнительную информацию, зависящую от контекста.
(Внутри это обрабатывается функциями для каждого контекста, вызывающего функцию
_отправлять.) Дополнительная информация добавляется через запятую.
Для того, чтобы получить -перенаправить- контекст, дополнительная информация находится в форме `-перенаправить-,op,команду',
в котором op является оператором перенаправления и команду это имя команды в строке.
Если в строке еще нет команды, команду поле будет пустым.
Для того, чтобы получить -ценность- контекст, форма --ценность-,имя,команду', где имя это имя
параметр в левой части присвоения. В случае элементов
ассоциативный массив, например `assoc = (ключ ', имя расширяется до `имя-ключ». В
определенные специальные контексты, такие как завершение после `сделать CFLAGS =', команду часть дает
имя команды, здесь сделать; в противном случае он пуст.
Нет необходимости определять полностью конкретные варианты завершения, поскольку предоставленные функции будут
попытаться создать завершение, постепенно заменяя элементы на `По умолчанию-'. За
Например, при завершении после `foo =', _ценность попробую имена `-value-, foo,' (Примечание
пустой команду часть), `-значение-, foo, -default-'и`-значение -, - по умолчанию -, - по умолчанию-', в этом
порядок, пока он не найдет функцию для обработки контекста.
В качестве примера:
компдеф '_files -g "*.бревно"' '-redirect-, 2>, - по умолчанию-'
завершает соответствие файлов `* .log'после'2> 'для любой команды без каких-либо конкретных
обработчик определен.
А также:
компдеф _foo -значение -, - по умолчанию -, - по умолчанию-
указывает, что _foo предоставляет дополнения для значений параметров, для которых нет специальных
функция была определена. Обычно этим занимается функция _ценность себя.
Те же правила поиска используются при поиске стилей (как описано ниже); Например
zstyle ': завершение: *: *: - перенаправление-, 2>, *: *' файлы-шаблоны '*.бревно'
- еще один способ завершить после `2> 'полное соответствие файлов'* .log'.
функции
Следующая функция определяется как составить и может быть вызван напрямую.
компдеф [ -ан ] функция имя ... [ -{p|P} описания ... [ -N имя ...]]
компдеф -d имя ...
компдеф -k [ -an ] функция стиль последовательность клавиш [ последовательность клавиш ...]
компдеф -K [ -an ] функция имя стиль последовательность клавиш [ имя стиль далее ...]
Первая форма определяет функция призывать к завершению в данных контекстах как
описано для #компдеф тег выше.
В качестве альтернативы все аргументы могут иметь вид `CMD=СЕРВИС'. Здесь СЕРВИС
уже должен был быть определен как `cmd1=СЕРВИС'строк в #компдеф файлы, как
описано выше. Аргумент в пользу CMD будет завершено так же, как
СЕРВИС.
Команда функция В качестве альтернативы аргумент может быть строкой, содержащей практически любую оболочку
код. Если строка содержит знак равенства, вышеуказанное будет иметь приоритет. В
вариант -e может использоваться, чтобы указать, что первый аргумент должен оцениваться как оболочка
код, даже если он содержит знак равенства. Строка будет выполнена с использованием Eval
встроенная команда для генерации завершений. Это дает возможность избежать
определить новую функцию завершения. Например, чтобы завершить файлы, заканчивающиеся на `.h' так как
аргументы команды Foo:
компдеф '_files -g "*.час"' Foo
Опция -n предотвращает любые завершения, уже определенные для команды или контекста
от перезаписи.
Опция -d удаляет любое завершение, определенное для команды или перечисленных контекстов.
Команда имяs может также содержать -p, -P и -N варианты, как описано для #компдеф тег.
Эффект на список аргументов идентичен, переключение между определениями
шаблоны, опробованные вначале, шаблоны, испробованные наконец, и обычные команды и контексты.
Параметр $ _compskip может быть установлен любой функцией, определенной для контекста шаблона.
Если установлено значение, содержащее подстроку `паттеранами' ни один из
будут вызваны паттерны-функции; если установлено значение, содержащее подстроку
`ВСЕ', никакая другая функция не вызывается.
Форма с -k определяет виджет с тем же именем, что и функция это будет
призвал к каждому из последовательность клавишs; это похоже на #компдеф -k тег. В
функция должна генерировать необходимые завершения и в противном случае будет вести себя как
встроенный виджет, имя которого указано как стиль аргумент. Виджеты, которые можно использовать для
это: полное слово, удалить-символ-или-список, развернуть или завершить,
префикс расширения или завершения, список-выбор, полное меню, меню-раскрыть-или-завершить,
и обратное-меню-полное, так же как меню-выбор если zsh / Complist модуль
загружен. Опция -n предотвращает привязку ключа, если он уже привязан к
что-то кроме неопределенный ключ.
Форма с -K аналогичен и определяет несколько виджетов на основе одного и того же
функция, каждый из которых требует набора из трех аргументов имя, стиль и
последовательность клавишuence, где последние два как для -k и первый должен быть уникальным
имя виджета начинается с подчеркивания.
Где применимо, -a вариант делает функция автозагрузка, эквивалент
автозагрузка -U функция.
Функция компдеф может использоваться для связывания существующих функций завершения с новыми
команды. Например,
компдеф _pids Foo
использует функцию _pids для завершения идентификаторов процессов для команды Foo.
Обратите внимание также на _gnu_generic описанная ниже функция, которую можно использовать для завершения опций
для команд, которые понимают `--Помогитевариант.
ЗАВЕРШЕНИЕ СИСТЕМА КОНФИГУРАЦИЯ
В этом разделе дается краткий обзор того, как работает система завершения, а также многое другое.
подробно о том, как пользователи могут настраивать, как и когда генерируются совпадения.
Обзор
Когда где-то в командной строке предпринимается попытка завершения, запускается система завершения.
создание контекста. Контекст представляет все, что оболочка знает о
значение командной строки и значение позиции курсора. Это требует
учет ряда вещей, включая командное слово (например, `GREP'или `ЗШ') и
параметры, для которых текущее слово может быть аргументом (например, `-o'возможность ЗШ , которые
принимает в качестве аргумента параметр оболочки).
Контекст начинается с очень общего («мы начинаем завершение») и становится более
конкретнее по мере того, как выучено больше ("текущее слово находится в позиции, которая обычно является командой
имя "или" текущее слово может быть именем переменной "и т. д.). Поэтому контекст
будет меняться во время одного и того же вызова системы завершения.
Эта контекстная информация сжимается в строку, состоящую из нескольких полей.
разделенные двоеточиями, называемые просто "контекстом" в остальной части
документация. Обратите внимание, что пользователю системы завершения редко нужно составлять
строка контекста, если, например, новая функция не записывается для выполнения завершения
для новой команды. Что может потребоваться пользователю, так это составить стиль узор, который
сопоставляется с контекстом, когда необходимо искать контекстно-зависимые параметры, которые настраивают
система завершения.
Следующие несколько абзацев объясняют, как составляется контекст в функции завершения.
люкс. Далее следует обсуждение того, как стили определены. Стили определяют такие
вещи, как то, как генерируются совпадения, аналогично параметрам оболочки, но с гораздо большим
контроль. Они определяются с помощью zstyle встроенная команда (см. zshмодули(1 г.)).
Строка контекста всегда состоит из фиксированного набора полей, разделенных двоеточиями и
ведущая двоеточие перед первым. Поля, которые еще не известны, остаются пустыми, но
окружающие двоеточия все равно появляются. Поля всегда в порядке
: завершение:функция:полный:команду:аргумент:день. Они имеют следующее значение:
· Буквальная строка завершение, говоря, что этот стиль используется завершением
система. Это отличает контекст от контекста, используемого, например, zle
виджеты и функции ZFTP.
· The функция, если завершение вызывается из именованного виджета, а не через
нормальная система заканчивания. Обычно это поле пусто, но устанавливается специальным
виджеты, такие как предсказание и различные функции в Виджет справочник
распределение к имени этой функции, часто в сокращенной форме.
· The полный в настоящее время активна, имя функции без ведущего
подчеркивание и с другими символами подчеркивания, преобразованными в дефис. "Завершитель" находится в
общий контроль над выполнением заканчивания; `полный'самый простой,
но существуют другие комплектующие для выполнения связанных задач, таких как исправление или
изменить поведение более позднего исполнителя. См. Раздел «Функции управления».
ниже для получения дополнительной информации.
· The команду или специальный -контекст-, как раз при этом появляется после #компдеф день
или компдеф функция. Функции завершения для команд, у которых есть подкоманды
обычно модифицируйте это поле, чтобы оно содержало имя команды, за которым следует минус
знак и подкоманда. Например, функция завершения для CVS команду
устанавливает в этом поле значение cvs-добавить при заполнении аргументов добавить подкоманда.
· The аргумент; это указывает, какой аргумент командной строки или параметра мы
завершение. Для аргументов команды это обычно принимает форму аргументn, Где
n - это номер аргумента, а для аргументов к опциям форма вариант-выбирать-n
в котором n это номер аргумента опции выбирать. Однако это только
case, если командная строка анализируется со стандартными параметрами и аргументами в стиле UNIX,
так много доработок не устанавливают это.
· The день. Как описано ранее, теги используются для различения типов
совпадений, которые функция завершения может сгенерировать в определенном контексте. Любая доработка
функция может использовать любое имя тега, которое ей нравится, но дается список наиболее распространенных.
внизу.
Контекст постепенно складывается по мере выполнения функций, начиная с
основная точка входа, которая добавляет : завершение: и функция элемент при необходимости. В
Завершитель затем добавляет полный элемент. Контекстное завершение добавляет команду и
аргумент опции. Наконец, день добавляется, когда известны типы завершения. За
например, имя контекста
: Завершение :: завершено: dvips: option-o-1: files
говорит, что была предпринята попытка нормального завершения в качестве первого аргумента опции -o
команду Dvips:
Dvips -o ...
и функция завершения сгенерирует имена файлов.
Обычно завершение будет выполняться для всех возможных тегов в порядке, заданном завершением.
функция. Однако это можно изменить, используя порядок тегов стиль. Завершение тогда
ограничен списком заданных тегов в указанном порядке.
Команда _complete_help команда bindable показывает все контексты и теги, доступные для
завершение в определенной точке. Это обеспечивает простой способ поиска информации для
порядок тегов и другие стили. Это описано в разделе «Привязываемые команды» ниже.
При поиске стилей система завершения использует полные имена контекста, включая тег.
Таким образом, поиск ценности стиля состоит из двух вещей: контекста, который
соответствует наиболее конкретному (наиболее подходящему) образцу стиля, а название стиля
сам, который должен точно совпадать. Следующие примеры демонстрируют этот стиль.
шаблоны могут быть свободно определены для стилей, которые применяются широко, или могут быть определены как
желательно для стилей, которые применяются в более узких условиях.
Например, многие функции завершения могут генерировать совпадения в простой и подробной форме.
и использовать подробный стиль, чтобы решить, какую форму следует использовать. Чтобы все такие функции
используйте подробную форму, положите
zstyle ': завершение: *' подробный Да
в файле запуска (возможно, .zshrc). Это дает подробный стиль значения Да в каждом
контекст внутри системы завершения, если этот контекст не имеет более конкретного определения.
Лучше избегать использования контекста как `*'в случае, если стиль имеет какое-то значение вне
система завершения.
Многие такие стили общего назначения можно настроить, просто используя компоновка
функции.
Более конкретный пример использования подробный стиль завершением для убивать
встроенный. Если стиль задан, встроенная программа выводит полные тексты заданий и командные строки процесса;
в противном случае он показывает голые номера заданий и идентификаторы PID. Чтобы отключить стиль для этого использования
только:
zstyle ': завершение: *: *: kill: *: *' подробный нет
Для еще большего контроля в стиле можно использовать один из тегов `работе'или `Процессы'. Превратить
отключение подробного отображения только для вакансий:
zstyle ': завершение: *: *: kill: *: jobs' подробный нет
Команда -e вариант zstyle даже позволяет код функции завершения появляться в качестве аргумента для
стиль; это требует некоторого понимания внутреннего устройства функций завершения (см.
посмотреть zshcompwid(1))). Например,
zstyle -e ': завершение: *' хостов 'ответ = ($ myhosts)'
Это заставляет ценность хостов стиль для чтения из переменной мои хозяева каждый раз
необходимо имя хоста; это полезно, если значение мои хозяева может изменяться динамически. За
еще один полезный пример, см. пример в описании список файлов стиль ниже.
Эта форма может быть медленной, и ее следует избегать для часто исследуемых стилей, таких как МЕНЮ и
список-строки-первые.
Обратите внимание, что порядок, в котором стили определенный не имеет значения; механизм стиля использует
наиболее точное возможное соответствие определенному стилю для определения набора значений.
Точнее, строки предпочтительнее шаблонов (например,
`: завершение :: завершено ::: foo'более конкретен, чем `: завершение :: завершено ::: * '), а также расширение
более длинные модели предпочтительнее более коротких.
Хорошее практическое правило состоит в том, что любой шаблон стиля завершения, который должен включать больше, чем
один подстановочный знак (*) и который не заканчивается именем тега, должен включать все шесть двоеточий (:),
возможно окружение дополнительных подстановочных знаков.
Имена стилей, такие как имена тегов, произвольны и зависят от функции завершения.
Однако в следующих двух разделах перечислены некоторые из наиболее распространенных тегов и стилей.
Стандарт Теги
Некоторые из следующих используются только при поиске определенных стилей и не относятся к
тип совпадения.
счета
раньше смотрел пользователи-хосты стиль
все расширения
используется _расширять завершение при добавлении единственной строки, содержащей все возможные
расширения
все файлы
имена всех файлов (в отличие от определенного подмножества см.
глобальные файлы тег).
Аргументы
для аргументов команды
массивы для имен параметров массива
ассоциативные ключи
для ключей ассоциативных массивов; используется при завершении внутри нижнего индекса до
параметр этого типа
закладки
при заполнении закладок (например, для URL-адресов и zftp набор функций)
встроенные команды
для имен встроенных команд
символы
для одиночных символов в аргументах команд, таких как стти. Также используется, когда
завершение классов символов после открывающей скобки
карты цветов
для идентификаторов цветовой карты X
цвета для названий цветов
команды
для имен внешних команд. Также используется сложными командами, такими как CVS когда
завершение имен подкоманд.
контексты
для контекстов в аргументах zstyle встроенная команда
корректировки
используется _приблизительно и _правильный комплектующие для возможных исправлений
курсоры
для имен курсоров, используемых программами X
по умолчанию
используется в некоторых контекстах, чтобы предоставить способ предоставления значения по умолчанию, когда более конкретный
теги также действительны. Обратите внимание, что этот тег используется только тогда, когда функция поле
имя контекста установлено
описывающие
используется при поиске значения формат стиль для создания описаний для
типы матчей
устройств
для имен специальных файлов устройства
каталоги
для названий справочников - локальные каталоги вместо этого используется при завершении
аргументы cd и связанные встроенные команды, когда CDPATH установлен массив
каталог-стек
для записей в стеке каталогов
дисплеев
для X отображаемых имен
доменов
для сетевых доменов
расширения
используется _расширять завершитель для отдельных слов (в отличие от полного набора
расширений) в результате раскрытия слова в командной строке
расширения
для расширений X-сервера
файловые дескрипторы
для количества открытых файловых дескрипторов
файлов общий тег сопоставления файлов, используемый функциями, завершающими имена файлов
шрифты для названий шрифтов X
типы файлов
для типов файловых систем (например, для монтировать команда)
Функции
имена функций - обычно функции оболочки, хотя некоторые команды могут
понимать другие виды функций
глобальные файлы
для имен файлов, когда имя было сгенерировано путем сопоставления с образцом
группы для имен групп пользователей
история слов
за слова из истории
хостов для имен хостов
Индексы
для индексов массива
работе для вакансий (как указано вработе'встроенный)
интерфейсы
для сетевых интерфейсов
раскладки клавиатуры
для имен раскладок zsh
ключевые слова
для имен X ключей
библиотеки
для имен системных библиотек
рамки для системных ограничений
локальные каталоги
для имен каталогов, которые являются подкаталогами текущего рабочего каталога
при заполнении аргументов cd и соответствующие встроенные команды (сравните
пути-каталоги) -- когда CDPATH массив не задан, каталоги вместо этого используется
Инструкции
для имен страниц руководства
почтовые ящики
для почтовых папок
карты для названий карт (например, карты NIS)
Сообщения
раньше смотрел формат стиль для сообщений
модификаторы
для имен модификаторов X
модули
для модулей (например, ЗШ модули)
мои счета
раньше смотрел пользователи-хосты стиль
именованные каталоги
для названных каталогов (вы бы не догадались, не так ли?)
имена для всех видов имен
Группы новостей
для групп USENET
ники
для ников карт NIS
кредита
для параметров команды
оригинал
используется _приблизительно, _правильный и _расширять завершает предложение
исходная строка как совпадение
другие счета
раньше смотрел пользователи-хосты стиль
другие файлы
для имен любых файлов, не относящихся к каталогам. Это используется вместо все файлы когда
список-дирс-первый стиль действует.
пакеты
для пакетов (например, rpm или установлен Debian пакеты)
параметры
для названий параметров
пути-каталоги
для имен каталогов, найденных с помощью поиска CDPATH массив при завершении
аргументы cd и соответствующие встроенные команды (сравните локальные каталоги)
пути используется для поиска значений расширять, двусмысленный и специальные директоры стили
Стручки для модулей Perl (файлы документации)
порты для портов связи
префиксы
для префиксов (например, для URL)
принтеры
для имен очереди печати
Процессы
для идентификаторов процессов
имена процессов
раньше смотрел команду стиль при генерации имен процессов для
убить всех
последовательности
для последовательностей (например, mh последовательности)
сессиях
для сессий в zftp набор функций
сигналы
для названий сигналов
струны
для строк (например, заменяющие строки для cd встроенная команда)
стили для стилей, используемых встроенной командой zstyle
суффиксы
для расширений файлов
имеют теги для тегов (например, rpm теги)
направлена против
для целей make-файлов
часовые пояса
для часовых поясов (например, при установке TZ параметр)
Типы для любых типов (например, типы адресов для Xhost команда)
URL-адреса раньше смотрел URL-адреса и локальным стили при заполнении URL
пользователей для имен пользователей
ценности для одного из набора значений в определенных списках
вариант
используется _pick_variant найти команду для запуска при определении того, какая программа
устанавливается для определенного имени команды.
визуальные
для X визуалов
предупреждение
раньше смотрел формат стиль для предупреждений
виджеты
для имен виджетов zsh
окна
для идентификаторов X windows
zsh-параметры
для вариантов оболочки
Стандарт Стили
Обратите внимание, что значения некоторых из этих стилей представляют собой логические значения. Любой из
строки `правда', `on', `Да', и `1'может использоваться для значения "истина" и любого из
строки `ложный', `от', `нет', и `0'для значения' false '. Поведение для любого другого
значение не определено, за исключением случаев, когда это явно указано. Значение по умолчанию может быть либо
true или false, если стиль не установлен.
Некоторые из этих стилей сначала проверяются для всех возможных тегов, соответствующих типу
совпадение, и если стиль не был найден, для по умолчанию тег. Наиболее известные стили этого
тип МЕНЮ, список цветов и стили, управляющие списком завершения, например заполненный списком
и последняя подсказка. При тестировании на по умолчанию тег, только функция поле контекста
будет настроен так, чтобы стиль, использующий тег по умолчанию, обычно определялся вдоль строк
о:
zstyle ': завершение: *: по умолчанию' МЕНЮ ...
принять-точный
Это проверяется для тега по умолчанию в дополнение к тегам, действительным для текущего
контекст. Если для него установлено значение «истина» и любое из пробных совпадений совпадает с
строка в командной строке, это совпадение будет немедленно принято (даже если оно
иначе считалось бы неоднозначным).
При заполнении имен путей (где используется тег `пути') этот стиль принимает любые
количество шаблонов в качестве значения в дополнение к логическим значениям. Пути
соответствие одному из этих шаблонов будет принято немедленно, даже если команда
строка содержит еще несколько частично типизированных компонентов пути, и они не соответствуют ни одному файлу
под каталог принято.
Этот стиль также используется _расширять завершитель, чтобы решить, начинаются ли слова с
расширение тильды или параметра должно быть развернуто. Например, если есть
параметры Foo и Foobar, строка `$ Foo'будет разворачиваться только в том случае, если принять-точный
установлено значение "истина"; в противном случае системе завершения будет разрешено завершить $ Foo
в $ foobar. Если для стиля установлено значение `продолжать', _расширять добавит расширение как
совпадение и система завершения также будет разрешена.
принять точные директории
Используется при завершении имени файла. в отличие принять-точный это логическое значение. От
по умолчанию завершение имени файла проверяет все компоненты пути на предмет наличия
завершения этого компонента, даже если компонент соответствует существующему каталогу.
Например, когда завершение после / usr / bin /, функция исследует возможные
завершение до / USR.
Когда этот стиль равен `true ', любой префикс пути, который соответствует существующему каталогу
принимается без каких-либо попыток его заполнения. Следовательно, в данной
например, путь / usr / bin / принимается немедленно, и завершение попытки в этом
каталог.
Если вы хотите полностью запретить это поведение, установите завершение пути стиль (см.
ниже) на `false '.
дополнительное пространство
Этот стиль используется _расширять завершитель. Если это «истина» (по умолчанию),
пробел будет вставлен после всех слов, полученных в результате расширения, или косая черта в
случай имен каталогов. Если значение равно `файл', завершитель добавит только
пробел для имен существующих файлов. Либо логическое значение true, либо значениефайл' мая
быть объединенным с `SUBST', и в этом случае завершитель не будет добавлять пробел к словам
генерируется разложением подстановки вида `$(...)'или `${...}'.
Команда _префикс Completer использует этот стиль как простое логическое значение, чтобы решить,
перед суффиксом следует поставить пробел.
двусмысленный
Это применяется при заполнении незавершенных компонентов путей к именам файлов, другими словами
с косой чертой в конце. Если он установлен, курсор остается после первого
неоднозначный компонент, даже если используется автозавершение меню. Стиль всегда проверяется
с пути тег.
список назначений
При завершении после знака равенства, который рассматривается как присвоение,
Система завершения обычно завершает только одно имя файла. В некоторых случаях значение
может быть список имен файлов, разделенных двоеточиями, как в PATH и тому подобное
параметры. Этот стиль может быть установлен на список шаблонов, совпадающих с именами таких
параметры.
По умолчанию списки заполняются, когда слово в строке уже содержит
двоеточие.
автоописание
Если установлено, значение этого стиля будет использоваться как описание для опций, которые не
описываются функциями завершения, но имеют ровно один аргумент. В
последовательность `%d'в значении будет заменено описанием этого аргумента.
В зависимости от личных предпочтений может быть полезно установить этот стиль на что-нибудь
как `уточнить: %d'. Обратите внимание, что это может не работать для некоторых команд.
уклончивый
Это используется _все_матчи Completer, чтобы решить, если строка, состоящая из
все совпадения должны быть добавлены в список, который создается в данный момент. Его ценность
список имен комплектующих. Если любое из них - это имя завершителя, который
сгенерировал совпадения в этом завершении, строка не будет добавлена.
Значение по умолчанию для этого стиля - `_расширять _old_list _правильный _приблизительно', т.е.
он содержит завершители, для которых строка со всеми совпадениями почти никогда не будет
хотел.
путь к кешу
Этот стиль определяет путь к любым файлам кеша, содержащим сброшенные данные о завершении.
хранятся. По умолчанию это `$ ZDOTDIR / .zcompcache', или `$ HOME / .zcompcache' если
$ ZDOTDIR не определено. Кэш завершения не будет использоваться, если
использование кеша стиль установлен.
кеш-политика
Этот стиль определяет функцию, которая будет использоваться для определения того,
нуждается в восстановлении. См. Раздел о _cache_invalid функция ниже.
вызов-команда
Этот стиль используется в функции для таких команд, как сделать и муравей куда звонить
команда, непосредственно генерирующая совпадения, страдает такими проблемами, как медленная работа или, как
в случае сделать потенциально может вызвать выполнение действий в make-файле.
Если установлено значение «истина», вызывается команда для генерации совпадений. Значение по умолчанию
этого стиля - "ложный".
команду
Во многих местах функции завершения должны вызывать внешние команды для генерации
список доработок. Этот стиль можно использовать для переопределения команды, которая называется
в некоторых таких случаях. Элементы значения соединяются пробелами, образуя
командная строка для выполнения. Значение также может начинаться с дефиса, в этом случае
обычная команда будет добавлена в конец; это наиболее полезно для размещения `встроенная'
или `команду'впереди, чтобы убедиться, что вызывается соответствующая версия команды,
например, чтобы избежать вызова функции оболочки с тем же именем, что и внешний
команда.
Например, функция завершения для идентификаторов процессов использует этот стиль с
Процессы тег для генерации идентификаторов для завершения и списка процессов для отображения
(если подробный стиль "истинный"). Список, созданный командой, должен выглядеть
как результат ps команда. Первая строка не отображается, но отображается
искал строку `PID'(или `ПИД-регулятор'), чтобы найти положение идентификаторов процессов в
следующие строки. Если строка не содержит `PID', первые числа в каждом
остальных строк берутся в качестве идентификаторов процессов, которые нужно завершить.
Обратите внимание, что функция завершения обычно должна вызывать указанную команду для
каждая попытка создать список завершения. Следовательно, следует позаботиться о том, чтобы
указывать только команды, выполнение которых требует короткого времени, и, в частности, во избежание каких-либо
это может никогда не закончиться.
командный путь
Это список каталогов для поиска команд для выполнения. По умолчанию для
этот стиль является значением специального параметра путь.
команды
Это используется функцией завершения подкоманд для инициализации системы.
скрипты (проживающие в /etc/инит.д или где-то не так далеко от этого). Его
значения дают команды по умолчанию для выполнения для тех команд, для которых
функция завершения не может найти их автоматически. По умолчанию для
этот стиль - две строки `Начало'и `остановить'.
полный
Это используется _expand_alias функция при вызове как связываемая команда. Если
установлено значение true и слово в командной строке не является именем псевдонима,
совпадение псевдонимов будет завершено.
полные варианты
Это используется компоновщиком для cd, ChDir и Pushd. Для этих команд - is
используется для введения записи в стек каталогов, и их завершение гораздо больше
общие, чем варианты комплектации. Следовательно, если значение этого стиля не равно "true"
варианты не будут завершены, даже после первоначального -. Если это "правда", варианты
будет завершено после первоначального - если нет предшествующего -- по команде
линии.
полный
Строки, заданные как значение этого стиля, содержат имена завершителя.
функции для использования. Доступные функции компоновщика описаны в разделе
"Функции управления" ниже.
Каждая строка может быть либо именем функции завершения, либо строкой формы
`функция:имя'. В первом случае полный поле контекста будет содержать
имя завершающего без ведущего подчеркивания и со всеми остальными
подчеркивания заменены дефисами. Во втором случае функция это имя
вызываемый завершитель, но контекст будет содержать определяемый пользователем имя в
полный поле контекста. Если имя начинается с дефиса, строка для
контекст будет построен из имени функции завершения, как в первом
случай с имя прилагается к нему. Например:
zstyle ': завершение: *' полный _полный _complete: -foo
Здесь завершение вызовет _полный дважды завершить, один раз используя `полный' а также
один раз используя `полный фу' в полный поле контекста. Обычно, используя
один и тот же завершатель более одного раза имеет смысл только при использовании с
`Функции:имя'форма, потому что иначе имя контекста будет одинаковым во всех
звонки комплектовщику; Возможными исключениями из этого правила являются _игнорируется и
_префикс комплектующие.
Значение по умолчанию для этого стиля - `_полный _игнорируется': будет только завершение
готово, сначала используя игнорируемые шаблоны стиль и $ fignore массив, а затем
без игнорирования совпадений.
состояние
Этот стиль используется _список функция завершения, чтобы решить, следует ли вставлять
матчи должны быть безоговорочно отложены. По умолчанию - "true".
разделители
Этот стиль используется при добавлении разделителя для использования с модификаторами истории или глобусом.
квалификаторы с разделенными аргументами. Это массив предпочтительных разделителей
добавить. Предпочтительны неспециальные символы, так как система завершения может
иначе запутаешься. Список по умолчанию :, +, /, -, %. Список может быть
пусто, чтобы ввести ограничитель.
инвалид
Если установлено значение «истина», _expand_alias Завершающая и связываемая команда попытается
также для расширения отключенных псевдонимов. По умолчанию - "ложь".
доменов
Список имён сетевых доменов для заполнения. Если это не установлено, домен
имена будут взяты из файла / Etc / resolv.conf.
среда
Стиль окружения используется при завершении для `Sudo'. Он установлен в массив
`VAR=ценностное 'назначения для экспорта в локальную среду до
вызывается завершение для целевой команды.
zstyle ': завершение: *: sudo ::' среда \
ПУТЬ = "/ SBIN:/ usr / sbin: $ PATH " ГЛАВНАЯ = "/ Корень"
расширять Этот стиль используется при завершении строк, состоящих из нескольких частей, например
имена путей.
Если одним из его значений является строка `префикс', частично набранное слово из строки
будут расширены насколько это возможно, даже если конечные части не могут быть выполнены.
Если одним из его значений является строка `суффикс', совпадающие имена компонентов после
также будет добавлен первый неоднозначный. Это означает, что полученная строка
является самой длинной возможной однозначной строкой. Однако можно использовать завершение меню
чтобы просмотреть все матчи.
не настоящие Этот стиль может быть установлен для любого контекста завершения. Он определяет дополнительные строки
это всегда будет завершено в этом контексте. Форма каждой строки
`ценностное :описание'; двоеточие и описание можно опустить, но любой буквальный
двоеточия в ценностное должны быть заключены в кавычки с обратной косой чертой. Любой описание при условии показано
рядом со значением в списках завершения.
При указании поддельного контекста важно использовать достаточно ограничительный контекст.
струны. Обратите внимание, что стили поддельные файлы и фальшивые параметры предоставить дополнительные
особенности при заполнении файлов или параметров.
подделка-всегда
Это работает идентично не настоящие стиль, за исключением того, что игнорируемые шаблоны стиль
к ней не относится. Это позволяет полностью переопределить набор совпадений.
установив игнорируемые шаблоны в `*'.
Ниже показан способ дополнения любого тега произвольными данными, но имеющего
он ведет себя для отображения как отдельный тег. В этом примере мы используем
особенности порядок тегов стиль разделить именованные каталоги теги в два, когда
выполнение доработки стандартным комплектующим полный для аргументов cd.
Тег именованные каталоги нормальный ведет себя как обычно, но тег
названные-каталоги-мои содержит фиксированный набор каталогов. Это имеет эффект
добавление группы совпадений `дополнительно каталоги'с данными доработками.
zstyle ': завершение :: завершено: cd: *' порядок тегов \
'именованные-каталоги: -mine: extra \ каталоги
именованные каталоги: -нормально: именованные \ каталоги *'
zstyle ': завершение :: завершено: cd: *: именованные-каталоги-шахта' \
подделка-всегда mydir1 mydir2
zstyle ': завершение :: завершено: cd: *: именованные-каталоги-шахта' \
игнорируемые шаблоны '*'
поддельные файлы
Этот стиль используется при заполнении файлов и поиске без тега. Его ценности
имеют виддиректория:имена ...'. Это добавит имена (строки, разделенные
пробелы) как возможные совпадения при заполнении в каталоге директориядаже если нет такого
файлы действительно существуют. Директор может быть шаблоном; символы шаблона или двоеточия в директория
следует заключать в кавычки с обратной косой чертой, чтобы трактовать их буквально.
Это может быть полезно в системах, поддерживающих специальные файловые системы, чей верхний уровень
имена путей не могут быть перечислены или сгенерированы с помощью глобальных шаблонов. Его также можно использовать
для каталогов, для которых нет разрешения на чтение.
Форма шаблона может использоваться для добавления определенной "волшебной" записи во все каталоги на
конкретная файловая система.
фальшивые параметры
Это используется функцией завершения для имен параметров. Его значения - это имена
параметров, которые, возможно, еще не установлены, но, тем не менее, должны быть заполнены. Каждый
за именем также может следовать двоеточие и строка, определяющая тип
параметр (например,скаляр', `массив'или `целое'). Если тип указан, имя
будет завершено только в том случае, если параметры этого типа требуются в конкретном
контекст. Имена, для которых не указан тип, всегда будут заполнены.
список файлов
Этот стиль определяет, завершаются ли файлы с использованием стандартного встроенного механизма.
должны быть включены в длинный список, похожий на ls -l. Обратите внимание, что эта функция использует
модуль оболочки zsh / stat для файловой информации; это загружает встроенный состояние , которые
заменит любые внешние состояние исполняемый файл. Чтобы избежать этого, следующий код может быть
включены в файл инициализации:
zmodload -i zsh / stat
запрещать состояние
Для стиля может быть установлено значение «истина» (или значение «ВСЕ') или одно из значений
`вставить'или `список', указывая, что файлы должны быть перечислены в длинном формате во всех
обстоятельства, или при попытке вставить имя файла, или при перечислении имен файлов
не пытаясь вставить один.
В более общем смысле, значение может быть массивом любого из вышеуказанных значений, необязательно
последующей =Num. Если Num присутствует, дает максимальное количество совпадений для
какой стиль длинного списка будет использоваться. Например,
zstyle ': завершение: *' список файлов list = 20 вставить = 10
указывает, что длинный формат будет использоваться при перечислении до 20 файлов или вставке
файл, содержащий до 10 совпадений (при условии, что список вообще должен отображаться, например
при неоднозначном завершении), иначе будет использован короткий формат.
zstyle -e ': завершение: *' список файлов \
'(( $ {+ NUMERIC} )) && ответ = (правда) '
указывает, что длинный формат будет использоваться каждый раз, когда передается числовой аргумент,
остальное короткий формат.
файлы-шаблоны
Это используется стандартной функцией для завершения имен файлов, _files, Если
style не задан, предлагается до трех тегов, `глобальные файлы', `каталоги' а также
`все файлы', в зависимости от типов файлов, ожидаемых вызывающим _files.
Первые два (`глобальные файлы'и `каталоги') обычно предлагаются вместе
упростить заполнение файлов в подкаталогах.
Команда файлы-шаблоны style предоставляет альтернативы тегам по умолчанию, которые не
использовал. Его значение состоит из элементов вида `описания:день'; каждая строка может
содержать любое количество таких спецификаций, разделенных пробелами.
Команда описания это шаблон, который будет использоваться для генерации имен файлов. Любое происшествие
последовательности `%p'заменяется любым шаблоном (ами), переданным при вызове функции
_files. Двоеточиям в шаблоне должна предшествовать обратная косая черта, чтобы они
отличим от толстой кишки до день. Если требуется более одного шаблона,
шаблоны могут быть заключены в фигурные скобки, разделенные запятыми.
Команда деньs всех строк в значении будет предложено _files и используется, когда
поиск других стилей. Любой деньs в том же слове будут предлагаться в одном и том же
время и до более поздних слов. Если нет:день'дается `файловбудет использоваться тег.
Команда день может также сопровождаться необязательным вторым двоеточием и описанием, которое
будет использоваться для%d'в стоимости формат стиль (если он установлен) вместо
описания по умолчанию, предоставленного функцией завершения. Если описание
данный здесь содержит%d', который заменяется прилагаемым описанием
функцией завершения.
Например, чтобы сделать rm сначала заполните только имена объектных файлов и
затем имена всех файлов, если нет подходящего объектного файла:
zstyle ': завершение: *: *: rm: *: *' файлы-шаблоны \
'* .o: объектные файлы' '% p: все файлы'
Чтобы изменить поведение завершения файла по умолчанию - предложите файлы, соответствующие шаблону
и каталоги с первой попытки, затем все файлы - чтобы предлагалось только соответствие
файлы с первой попытки, затем каталоги и, наконец, все файлы:
zstyle ': завершение: *' файлы-шаблоны \
'% p: файлы с глобусом' '* (- /): каталоги' '*:все файлы'
Это работает даже там, где нет специального шаблона: _files соответствует всем файлам, используя
узор `*'на первом шаге и останавливается, когда видит этот узор. Обратите внимание также
он никогда не будет пробовать шаблон более одного раза для одной попытки завершения.
Во время выполнения функций завершения EXTENDED_GLOB вариант в
эффект, поэтому символы `#', `~'и `^'имеют особое значение в узорах.
файловая сортировка
Стандартная функция завершения имени файла использует этот стиль без тега для
определить, в каком порядке должны быть перечислены имена; завершение меню будет циклически
через них в том же порядке. Возможные значения:размер'сортировать по
размер файла; `связи'сортировать по количеству ссылок на файл;
`модификация'(или `время'или `даты') отсортировать по времени последней модификации;
`доступ'отсортировать по времени последнего доступа; и `инода'(или `изменение') для сортировки по
время последней смены инода. Если для стиля установлено любое другое значение или не задано, файлы
будут отсортированы в алфавитном порядке по имени. Если значение содержит строку `обратный',
сортировка производится в обратном порядке. Если значение содержит строку `следовать ',
отметки времени связаны с целями символических ссылок; по умолчанию используется
метки времени самих ссылок.
фильтр Это используется плагином LDAP для завершения адреса электронной почты, чтобы указать
атрибуты для сопоставления при фильтрации записей. Так, например, если стиль
установлен на `sn', сопоставление выполняется по фамилиям. Используется стандартная фильтрация LDAP.
так что нормальное сопоставление завершения игнорируется. Если этот стиль не установлен, LDAP
плагин пропущен. Вам также может потребоваться установить команду стиль, чтобы указать, как
подключитесь к вашему серверу LDAP.
форс-лист
Это заставляет список завершений отображаться в любой точке, где выполняется листинг,
даже в тех случаях, когда список обычно скрывается. Например, обычно
список отображается только при наличии как минимум двух разных совпадений. Установив
этот стиль для `всегда', список будет отображаться всегда, даже если есть только
один матч, который будет немедленно принят. Стиль также может быть установлен на
номер. В этом случае список будет показан, если их хотя бы столько
совпадает, даже если все они вставят одну и ту же строку.
Этот стиль протестирован для тега по умолчанию, а также для каждого тега, допустимого для
текущее завершение. Следовательно, включение в список может быть принудительным только для определенных типов
совпадать.
формат Если это установлено для описывающие тег, его значение используется как строка для отображения
выше совпадений в списках завершения. Последовательность `%d'в этой строке будет
заменено кратким описанием этих совпадений. Эта строка также может
содержат следующие последовательности для определения выходных атрибутов, как описано в
раздел РАСШИРЕНИЕ БЫСТРЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ в зшмиск(1): `%B', `%S', `%U', `%F', `%K'
и их аналоги в нижнем регистре, а также `%{...%}'. `%F', `%K'и `%{...%}'
принимать аргументы в той же форме, что и при раскрытии подсказок. Обратите внимание, что последовательность `%G'
не доступен; аргумент для `%{Вместо этого следует использовать '.
Стиль проверяется с каждым тегом, действительным для текущего завершения, прежде чем он будет
проверено на описывающие тег. Следовательно, для
разные типы матчей.
Отметим также, что некоторые функции завершения определяют дополнительные `%'-последовательности. Эти
описаны для дополнительных функций, которые их используют.
Некоторые функции завершения отображают сообщения, которые можно настроить, установив этот
стиль для Сообщения тег. Здесь символ `%d'заменяется сообщением
функция завершения.
Наконец, строка формата ищется с помощью предупреждение тег, для использования, когда нет
совпадения могут быть сгенерированы вообще. В этом случае `%d'заменяется на
описания ожидаемых совпадений, разделенные пробелами. Последовательность
`%D'заменяется такими же описаниями, разделенными новой строкой.
Можно использовать спецификаторы ширины поля в стиле printf с помощью `%d'и подобные
escape-последовательности. Этим занимается zформат встроенная команда из
zsh / zutil модуль, см. zshмодули(1).
земной шар Это используется _расширять завершитель. Если установлено значение true (по умолчанию),
будет предпринята попытка подстановки слов, полученных в результате предыдущей замены (см.
замена style) или исходная строка из строки.
Глобальный Если установлено значение true (по умолчанию), _expand_alias завершающий и связываемый
команда попытается расширить глобальные псевдонимы.
имя группы
Система завершения может группировать разные типы матчей, которые появляются в
отдельные списки. Этот стиль можно использовать для присвоения имен групп конкретным
теги. Например, в командной позиции система завершения генерирует имена
встроенные и внешние команды, имена псевдонимов, функции и параметры оболочки и
зарезервированные слова как возможные дополнения. Чтобы иметь внешние команды и оболочку
отдельно перечисленные функции:
zstyle ': завершение: *: *: - команда -: *: команды' \
имя группы команды
zstyle ': завершение: *: *: - команда -: *: функции' \
имя группы Функции
Как следствие, любое совпадение с одним и тем же тегом будет отображаться в одной группе.
Если указанное имя является пустой строкой, имя тега для совпадений будет
используется как название группы. Итак, чтобы иметь все разные типы матчей
отображается отдельно, можно просто установить:
zstyle ': завершение: *' имя группы ''
Все совпадения, для которых не указано имя группы, будут помещены в группу с именем
По умолчанию-.
групповой заказ
Этот стиль является дополнительным к имя группы стиль, чтобы указать порядок отображения
групп, определенных этим стилем (сравните порядок тегов, который определяет, какой
доработки появляются у всех). Названные группы показаны в указанном порядке; любой
другие группы показаны в порядке, определенном функцией завершения.
Например, чтобы иметь имена встроенных команд, функций оболочки и внешних
команды появляются в этом порядке при завершении в позиции команды:
zstyle ': завершение: *: *: - команда -: *: *' групповой заказ \
встроенные команды Функции команды
группы Список имен UNIX-групп. Если это не установлено, названия групп берутся из
База данных YP или файл `/ etc / group'.
в других материалах-носителях Если установлено значение «true», совпадения для данного контекста не будут перечислены,
хотя любое описание совпадений с формат будет показан стиль.
Если он установлен на `ВСЕ', даже описание не будет отображаться.
Обратите внимание, что матчи все равно будут завершены; они просто не отображаются в списке.
Во избежание того, чтобы совпадения вообще рассматривались как возможные завершения, порядок тегов
стиль можно изменить, как описано ниже.
хостов Список имен хостов, которые необходимо заполнить. Если это не установлено, имена хостов
взяты из файла `/ Etc / хостов'.
хосты-порты
Этот стиль используется командами, которым требуются или принимаются имена хостов и сетевые порты.
Строки в значении должны иметь форму `кашель:порт'. Допустимые порты
определяется наличием имен хостов; несколько портов для одного и того же хоста могут
появляются.
игнорировать строку
Это проверяется для каждого тега, действительного для текущего завершения. Если он установлен на
`true ', ни одно из слов, которые уже стоят в строке, не будет считаться
возможные доработки. Если он установлен на `текущий', слово, на котором установлен курсор, будет
не считается возможным завершением. Значение `текущий' похож
но применяется только в том случае, если список выполненных работ в настоящее время отображается на экране.
Наконец, если для стиля установлено значение `другими', все слова в строке, кроме
текущий будет исключен из возможных доработок.
Значения `текущий'и `текущий'немного похожи на противоположность
принять-точный style: будут заполнены только строки с пропущенными символами.
Обратите внимание, что вы почти наверняка не захотите устанавливать для него значение true илидругими' для
общий контекст, такой как `: завершение: *'. Это потому, что он запретил бы
завершение, например, параметров несколько раз, даже если рассматриваемая команда
принимает опцион более одного раза.
игнорировать родителей
Стиль тестируется без тега функцией завершения имен путей, чтобы
определить, следует ли игнорировать имена каталогов, уже упомянутых в
текущее слово или имя текущего рабочего каталога. Значение должно включать
одна или обе из следующих строк:
родителя Имя любого каталога, путь к которому уже содержится в слове на
строка игнорируется. Например, при завершении после foo /../, каталог
Foo не будет считаться действительным завершением.
PWD Имя текущего рабочего каталога не будет завершено; следовательно, для
пример, завершение после ../ не будет использовать имя текущего
каталог.
Кроме того, значение может включать одно или оба из следующих значений:
.. Игнорировать указанные каталоги только тогда, когда слово в строке содержит
подстрока `../'.
каталог
Игнорировать указанные каталоги, только если имена каталогов
завершено, а не при заполнении имен файлов.
Исключенные ценности действуют аналогично ценностям игнорируемые шаблоны стиль,
так что они могут быть возвращены к рассмотрению _игнорируется завершитель.
многословный
Если установлено, список завершения будет более подробным за счет вероятного уменьшения.
в скорости завершения. Если для этого стиля задано значение
"правда".
игнорируемые шаблоны
Список шаблонов; любое завершение испытания, соответствующее одному из шаблонов, будет
исключен из рассмотрения. В _игнорируется завершитель может появиться в списке
завершает, чтобы восстановить проигнорированные совпадения. Это более настраиваемая версия
параметр оболочки $ fignore.
Обратите внимание, что EXTENDED_GLOB опция устанавливается во время выполнения доработки
функции, поэтому символы `#', `~'и `^'имеют особое значение в
узоры.
вставить Этот стиль используется _все_матчи Завершитель, чтобы решить, вставлять ли
список всех совпадений безоговорочно вместо добавления списка в качестве другого совпадения.
ID вставки
При заполнении идентификаторов процессов, например, в качестве аргументов для убивать и ждать встроенные команды
имя команды может быть преобразовано в соответствующий идентификатор процесса. Проблема
возникает, когда набранное имя процесса не является уникальным. По умолчанию (или если этот стиль
явно установить на `МЕНЮ') имя будет немедленно преобразовано в набор
возможных идентификаторов, и будет запущено завершение меню для их просмотра.
Если значение стиля - `одинарной', оболочка будет ждать, пока пользователь не наберет
достаточно, чтобы сделать команду уникальной перед преобразованием имени в идентификатор; попытки
до этого момента завершение будет неудачным. Если значение любое другое
строка, завершение меню начнется, когда строка, введенная пользователем, будет длиннее
чем общий префикс для соответствующих идентификаторов.
Вставка-Tab
Если установлено значение true, система завершения вставит символ TAB
(предполагая, что это было использовано для начала завершения) вместо выполнения завершения, когда
слева от курсора нет непустого символа. Если он установлен на
`false ', завершение будет выполнено даже там.
Значение также может содержать подстроки `в ожидании'или `в ожидании =волна'. В этом
случае, набранный символ будет вставлен вместо начала завершения, когда
ожидается необработанный ввод. Если волна дан, доработка не будет
если есть хотя бы такое количество символов необработанного ввода. Это часто
полезно при вставке символов в терминал. Однако обратите внимание, что он полагается на
$ В ОЖИДАНИИ специальный параметр из zsh / zle модуль настроен правильно, что
не гарантируется на всех платформах.
Значение этого стиля по умолчанию - "истина", за исключением завершения в пределах вэред
встроенная команда, где это `false '.
вставка-недвусмысленный
Это используется _совпадение и _приблизительно комплектующие. Эти комплектующие часто
используется с завершением меню, поскольку набранное слово может иметь мало общего с
окончательное завершение. Однако, если этот стиль - "истина", завершитель запустит меню
завершение только в том случае, если он не может найти однозначную начальную строку по крайней мере до тех пор, пока
исходная строка, введенная пользователем.
В случае с _приблизительно Completer, поле завершения в контексте будет
уже были установлены на один из верный-Num or приблизительныйNum, Где Num это
количество принятых ошибок.
В случае с _совпадение Completer, стиль также может быть установлен на строку
`описания'. Затем узор на линии оставляем без изменений, если он не совпадает
однозначно.
держать-префикс
Этот стиль используется _расширять завершитель. Если это "истина", завершитель будет
постарайтесь сохранить префикс, содержащий тильду или раскрытие параметра. Следовательно, для
Например, строка `~ / f*'будет расширен до `~ / foo' вместо того
`/ главная / пользователь / foo'. Если для стиля установлено значение `менялась'(по умолчанию) префикс будет
может быть оставлен без изменений только в том случае, если были другие изменения между расширенными словами и
исходное слово из командной строки. Любое другое значение заставляет префикс быть
расширен безоговорочно.
Поведение _расширять когда этот стиль является "истинным", значит вызвать _расширять сдаться
когда одиночное расширение с восстановленным префиксом совпадает с оригиналом; следовательно
могут быть вызваны любые оставшиеся комплектующие.
последняя подсказка
Это более гибкая форма ALWAYS_LAST_PROMPT вариант. Если это "правда",
система завершения попытается вернуть курсор в предыдущую командную строку
после отображения списка завершения. Он протестирован для всех тегов, действующих для
текущее завершение, затем по умолчанию тег. Курсор вернется к
предыдущая строка, если этот стиль является "истинным" для всех типов соответствия. Обратите внимание, что в отличие от
ALWAYS_LAST_PROMPT опция не зависит от числового аргумента.
известные-хосты-файлы
Этот стиль должен содержать список файлов для поиска имен хостов и (если
использовать-IP установлен стиль) IP-адреса в формате, совместимом с ssh известные_хосты
файлы. Если он не установлен, файлы / etc / ssh / ssh_known_hosts и ~ / .ssh / known_hosts
используются.
список Этот стиль используется _history_complete_word связываемая команда. Если он установлен на
"правда" не имеет никакого эффекта. Если установлено значение «false», совпадения не будут отображаться. Этот
отменяет настройку параметров, управляющих поведением листинга, в частности
АВТО_СПИСОК. Контекст всегда начинается с `: Завершение: история-слова'.
список цветов
Если же линия индикатора zsh / Complist модуль загружен, этот стиль можно использовать для установки цвета
технические характеристики. Этот механизм заменяет использование ZLS_COLORS и ZLS_COLOURS
параметры, описанные в разделе `Модуль zsh / Complist 'в zshмодули(1), но
синтаксис такой же.
Если этот стиль установлен для по умолчанию тег, строки в значении принимаются как
спецификации, которые должны использоваться повсюду. Если он установлен для других тегов,
спецификации используются только для совпадений типа, описанного тегом. За
это работает лучше всего, имя группы style должен быть установлен на пустую строку.
Помимо настройки стилей для определенных тегов, также можно использовать группу
имена, явно указанные имя группы тег вместе с `(группа)'синтаксис
разрешено ZLS_COLORS и ZLS_COLOURS параметры и просто используя по умолчанию
тег.
Можно использовать любые спецификации цвета, уже установленные для версии GNU.
ls команда:
zstyle ': завершение: *: по умолчанию' список цветов \
$ {(s.:.)LS_COLORS}
Цвета по умолчанию такие же, как для GNU. ls команда и может быть получена
установка стиля на пустую строку (т.е. '').
список-дирс-первый
Это используется для завершения файла. Если установлено, перечисляются каталоги, которые необходимо заполнить.
отдельно от и до завершения для других файлов, независимо от порядка тегов.
Кроме того, тег другие файлы используется вместо все файлы для остальных
files, чтобы указать, что с этим тегом нет каталогов.
сгруппированный по списку
Если этот стиль - "истина" (по умолчанию), система завершения попытается сделать
некоторые списки завершения более компактны за счет группировки совпадений. Например, варианты
для команд с одинаковым описанием (отображается, когда подробный стиль установлен на
`true ') будет отображаться как одна запись. Однако выбор меню можно использовать для
просмотреть все матчи.
заполненный списком
Это проверяется для каждого тега, действительного в текущем контексте, а также для по умолчанию
тег. Если установлено значение «true», соответствующие совпадения отображаются в списках, как если бы
СПИСОК_PACKED были поставлены опции. Если установлено значение false, они отображаются в списке.
как обычно.
список-подсказка
Если этот стиль установлен для по умолчанию теги, списки завершения, которые не помещаются в
экран можно прокручивать (см. описание zsh / Complist модуль в
zshмодули(1)). Значение, если не пустая строка, будет отображаться после каждого
экран, и оболочка предложит нажать клавишу; если стиль установлен на
пустая строка, будет использоваться приглашение по умолчанию.
Значение может содержать escape-последовательности:%l'или `%L', который будет заменен на
номер последней отображаемой строки и общее количество строк; `%m'или `%M',
номер последнего показанного совпадения и общее количество совпадений; и `%p' а также
`%P', `Рейтинг'когда в начале списка,Дно'когда в конце и
в противном случае позиция отображается в процентах от общей длины. В каждом случае
форма с прописной буквой будет заменена строкой фиксированной ширины, дополненной
справа с пробелами, а строчная форма будет заменена переменной
ширина строки. Как и в других строках приглашения, escape-последовательности `%S', `%s', `%B',
`%b', `%U', `%u'для входа и выхода из режимов отображения выделенный, жирный и
подчеркивание и `%F', `%f', `%K', `%k'для изменения фона переднего плана
цвет, также доступны, как и форма `%{...%}'для включения escape-последовательностей
которые отображаются с нулевой (или, с числовым аргументом, с какой-либо другой) шириной.
После удаления этого запроса переменная ЛИСТПРОМПТ должен быть отключен для удаления
вступить в силу.
список-строки-первые
Этот стиль тестируется так же, как и заполненный списком стиль и определяет
должны ли совпадения перечисляться в виде строк, как если бы LIST_ROWS_FIRST
были поставлены опции.
список суффиксов
Этот стиль используется функцией завершения имен файлов. Если это "правда", и
выполняется попытка завершения для строки, содержащей несколько частично типизированных путей
компоненты, будут показаны все неоднозначные компоненты. В противном случае завершение остановится на
первая неоднозначная составляющая.
список-разделитель
Значение этого стиля используется в листинге завершения для разделения строки на
по возможности завершите из описания (например, при заполнении опций). Это
по умолчанию `--'(два дефиса).
локальным Это для использования с функциями, которые заполняют URL-адреса, для которых соответствующие файлы
доступны прямо из файловой системы. Его значение должно состоять из трех
строки: имя хоста, путь к веб-страницам по умолчанию для сервера и
имя каталога, используемое пользователем, размещающим веб-страницы в своей домашней области.
Например:
zstyle ': завершение: *' локальным тост \
/ var / http / общедоступный / тост public_html
Завершение после `http://toast/stuff/'будет искать файлы в каталоге
/ var / http / общедоступный / тост / материал, а завершение после `http://toast/~yousir/' будут
искать файлы в каталоге ~ yousir / public_html.
почтовый каталог
Если установлено, zsh будет предполагать, что файлы почтовых ящиков можно найти в указанном каталоге.
По умолчанию это `~ / Почта'.
оригинальный матч
Это используется _совпадение завершитель. Если он установлен на Важно, _совпадение постараюсь
генерировать совпадения без вставки символа `*'в позиции курсора. Если установлено любое
другое непустое значение, сначала он попытается сгенерировать совпадения без вставки
`*'и если это не даст совпадений, он попытается снова с помощью `*'вставлен. Если это
не задано или установлено в пустую строку, сопоставление будет выполняться только с символом `*'
вставлено.
согласовани
Этот стиль тестируется отдельно для каждого тега, действительного в текущем контексте. Его
значение проверяется перед любыми характеристиками совпадения, указанными список совпадений стиль. Это
должен быть в форме, описанной в разделе «Контроль соответствия завершения» в
zshcompwid(1). Примеры этого см. В описании порядок тегов стилю.
список совпадений
Этот стиль может быть установлен для списка подходящих спецификаций, которые должны быть применены.
повсюду. Характеристики матча описаны в разделе «Завершение сопоставления».
Контроль в zshcompwid(1). Система завершения будет пробовать их один за другим.
для каждого выбранного комплекта. Например, чтобы попробовать первое простое завершение и, если
который не генерирует совпадений, завершение без учета регистра:
zstyle ': завершение: *' список совпадений '' 'm: {a-zA-Z} = {A-Za-z}'
По умолчанию каждая спецификация заменяет предыдущую; однако, если
спецификация имеет префикс +, он добавляется в существующий список. Следовательно, это
возможно создание все более общих спецификаций без повторения:
zstyle ': завершение: *' список совпадений \
'' '+ m: {az} = {AZ}' '+ m: {AZ} = {az}'
Можно создать спецификации соответствия, действительные для определенных комплектующих, с помощью
используя третье поле контекста. Это относится только к комплектующим, которые
переопределить глобальный список сопоставлений, который на момент написания данной статьи включает только _префикс
и _игнорируется. Например, использовать комплектующие _полный и _префикс но позвольте
завершение без учета регистра только с _полный:
zstyle ': завершение: *' полный _полный _префикс
zstyle ': завершение: *: завершено: *: *: *' список совпадений \
'' 'm: {a-zA-Z} = {A-Za-z}'
Пользовательские имена, как объяснено для полный стиль, доступны. Этот
дает возможность попробовать один и тот же комплект несколько раз с разными совпадениями
спецификации каждый раз. Например, чтобы попробовать обычное завершение без совпадения
спецификация, затем нормальное завершение с сопоставлением без учета регистра, затем
исправление и, наконец, завершение неполного слова:
zstyle ': завершение: *' полный \
_полный _правильный _complete: foo
zstyle ': завершение: *: завершено: *: *: *' список совпадений \
'' 'm: {a-zA-Z} = {A-Za-z}'
zstyle ': завершение: *: foo: *: *: *' список совпадений \
'm: {a-zA-Z} = {A-Za-z} r: | [-_./ght=* г: | = * '
Если стиль не задан в каком-либо контексте, спецификация соответствия не применяется. Обратите внимание также
что некоторые комплектующие, такие как _правильный и _приблизительно не используйте спичку
спецификации вообще, хотя эти комплектующие будут называться только один раз, даже
если список совпадений содержит более одного элемента.
Если полезно несколько спецификаций, обратите внимание, что весь завершение сделано
для каждого элемента список совпадений, что может быстро снизить производительность оболочки.
Как правило, приемлемое качество звучания дает от одной до трех струн.
С другой стороны, размещение нескольких значений, разделенных пробелами, в одной строке
не оказывает заметного влияния на производительность.
Если текущего сопоставителя нет или он пуст, и опция NO_CASE_GLOB В
В результате сопоставление файлов в любом случае выполняется без учета регистра.
Однако любой сопоставитель должен явно указывать нечувствительное к регистру сопоставление, если оно
требуется.
макс-ошибки
Это используется _приблизительно и _правильный функции завершения для определения
максимальное количество допустимых ошибок. Завершитель попытается сгенерировать завершение.
сначала допустив одну ошибку, затем две ошибки и так далее, пока не будет найдено совпадение или
найдены совпадения или максимальное количество ошибок, заданных этим стилем
достиг.
Если значение этого стиля содержит строку `числовой', завершающая функция
будет принимать любой числовой аргумент в качестве максимально допустимого количества ошибок. За
например, с
zstyle ': завершение: *: приблизительное :::' макс-ошибки 2 числовой
Допускаются две ошибки, если не указан числовой аргумент, но есть числовой аргумент
из шести (как в `ЭСК-6 TAB') допускается до шести ошибок. Следовательно, со значением
`0 числовой', исправляющее завершение не будет выполняться, если только числовой аргумент
дано.
Если значение содержит строку `нечисловой', завершитель будет попытайтесь
генерировать исправленные завершения при задании числового аргумента, поэтому в этом случае
указанное число должно быть больше нуля. Например, `2 нечисловой'указывает
что исправление завершения с двумя ошибками обычно выполняется, но если
числовой аргумент, исправление завершения не будет.
Значение по умолчанию для этого стиля - `2 числовой'.
максимальная ширина совпадений
Этот стиль используется для определения компромисса между шириной используемого дисплея.
для совпадений и ширину, используемую для их описания, когда подробный стиль в
эффект. Значение дает количество отображаемых столбцов, зарезервированных для совпадений.
По умолчанию это половина ширины экрана.
Это имеет наибольшее влияние, когда несколько совпадений имеют одинаковое описание и поэтому будут
быть сгруппированы вместе. Увеличение стиля позволит сгруппировать больше совпадений
вместе; его уменьшение позволит видеть больше описания.
МЕНЮ Если это «истина» в контексте любого из тегов, определенных для текущего
Завершение меню завершения будет использоваться. Значение для конкретного тега примет
приоритет над тем, что для `по умолчанию' ярлык.
Если ни одно из найденных таким образом значений не является "истинным", но хотя бы одно из них установлено на
`автоматический', оболочка ведет себя так, как если бы АВТО_МЕНЮ опция установлена.
Если одно из значений явно установлено как `false ', завершение меню будет
явно отключен, переопределив МЕНЮ_COMPLETE вариант и другие настройки.
В виде `да =Num', где `Да'может быть любым из "истинных" значений (Да', `правда',
`on'и `1'), завершение меню будет включено, если есть хотя бы Num Матчи.
В виде `да = долго', завершение меню будет включено, если список не помещается
на экране. Это не активирует завершение меню, если виджет обычно только
перечисляет завершения, но завершение меню может быть активировано в этом случае с помощью значения
`да = длинный список'(Обычно значение `select = длинный список'описанное позже больше
полезно, так как обеспечивает контроль над прокруткой.)
Точно так же с любым из значений `false '(как в`нет = 10'), завершение меню будет
использоваться, если есть Num или больше совпадений.
Значение этого виджета также управляет выбором меню, как это реализовано
zsh / Complist модуль. Следующие значения могут отображаться рядом или вместо
значений выше.
Если значение содержит строку `выберите', начнется выбор меню
безусловно.
В виде `выберите =Num', выбор меню будет запущен только при наличии хотя бы
Num Спички. Если значения для более чем одного тега содержат число, наименьшее
номер взят.
Выбор меню можно отключить явно, указав значение, содержащее
строка`без выбора'.
Также возможно начать выбор меню только в том случае, если в списке совпадений нет
поместиться на экране, используя значение `select = long'. Чтобы начать выбор меню даже
если текущий виджет выполняет только листинг, используйте значение `select = длинный список'.
Чтобы включить завершение меню или выбор меню, когда есть определенное количество
спички or список совпадений не умещается на экране, оба из `да =' а также
`выберите ='может быть дано дважды, один раз с номером и один раз с помощьюдлинной' или
`длинный перечень'.
Наконец, можно активировать два специальных режима выбора меню. Слово
`интерактивный'в значении вызывает немедленный переход в интерактивный режим, когда
запускается выбор меню; см. описание zsh / Complist модуль в
zshмодули(1) для описания интерактивного режима. Включая строку `по области применения'
делает то же самое для режима инкрементного поиска. Чтобы выбрать обратный инкрементный поиск,
включить строку `поиск назад'.
муттрк Если установлено, выдает расположение файла конфигурации mutt. По умолчанию
`~ / .muttrc'.
номера
Это используется с работе тег. Если это `true ', оболочка завершит работу
числа вместо кратчайшего однозначного префикса текста команды задания. Если
значение - это число, номера вакансий будут использоваться только в том случае, если это много слов из задания
описания необходимы для устранения двусмысленностей. Например, если значение равно
`1', строки будут использоваться только в том случае, если все задания отличаются первым словом в их
командные строки.
старый список
Это используется _старый список завершитель. Если он установлен на `всегда', затем стандартный
виджеты, выполняющие листинг, сохранят текущий список совпадений, однако они
были созданы; это можно отключить явно с помощью значения `никогда', давая
поведение без _старый список завершитель. Если стиль не установлен, или любой другой
значение, то отображается существующий список завершений, если он еще не был;
в противном случае создается стандартный список завершения; это поведение по умолчанию
of _старый список. Однако, если есть старый список и этот стиль содержит имя
функция завершения, которая сгенерировала список, тогда старый список будет использоваться даже
если он был сгенерирован виджетом, который не выполняет листинг.
Например, предположим, что вы набираете ^ Xc использовать _правильное слово виджет, который генерирует
список исправлений для слова под курсором. Обычно набирая ^D бы
сгенерируйте стандартный список завершений для слова в командной строке и покажите
тот. С участием _старый список, вместо этого будет показан список уже исправленных
генерируется.
В качестве другого примера рассмотрим _совпадение завершитель: с вставка-недвусмысленный стиль
Если установлено значение «true», вставляется только общая строка префикса, если таковая имеется. Тем не мение,
это может удалить части исходного рисунка, так что дальнейшее завершение может
произвести больше совпадений, чем с первой попытки. Используя _старый список полный
и установив для этого стиля значение _совпадение, список совпадений, сгенерированный на первом
попытка будет использована снова.
старые спички
Это используется _все_матчи завершение, чтобы решить, если старый список совпадений
следует использовать, если он существует. Это выбирается одним из "истинных" значений или
строка `Важно'. Если значение равно `Важно', _все_матчи будет использовать только старый список
и не повлияет на список совпадений, который создается в настоящее время.
Если установлен этот стиль, обычно неразумно называть _все_матчи полный
безусловно. Одно из возможных применений - это либо этот стиль, либо полный стиль
быть определенным с -e вариант zstyle сделать стиль условным.
старое меню
Это используется _старый список завершитель. Он контролирует, как ведет себя завершение меню
когда завершение уже вставлено и пользователь вводит стандартный
ключ завершения, такой как TAB. Поведение по умолчанию _старый список это меню
завершение всегда продолжается существующим списком завершений. Если этот стиль
установлено значение false, однако новое завершение запускается, если старый список был
генерируется другой командой завершения; это поведение без
_старый список завершитель.
Например, предположим, что вы набираете ^ Xc для создания списка исправлений и меню
завершение запускается одним из обычных способов. Обычно или с этим стилем, установленным на
`false ', набираем TAB в этот момент начал бы пытаться завершить линию, как сейчас
появляется. С участием _старый список, вместо этого он продолжает цикл по списку
исправления.
оригинал
Это используется _приблизительно и _правильный комплектующие, чтобы решить, является ли оригинал
строка должна быть добавлена как возможное завершение. Обычно это делается только в том случае, если
есть как минимум два возможных исправления, но если для этого стиля установлено значение `true ', он
всегда добавляется. Обратите внимание, что стиль будет исследован с полем завершения в
имя контекста установлено на верный-Num or приблизительныйNum, Где Num это число
ошибки, которые были приняты.
набор пакетов
Этот стиль используется при заполнении аргументов Debian `Dpkg'программа. Это
содержит переопределение для набора пакетов по умолчанию для данного контекста. Например,
zstyle ': Завершение: *: завершено: dpkg: option - status-1: *' \
набор пакетов выгода
заставляет доступные пакеты, а не только установленные пакеты, быть завершенными для
`Dpkg --положение дел'.
путь Функция, завершающая названия цветов, использует этот стиль с цвета тег. В
значение должно быть путем к файлу, содержащему названия цветов в формате
X11 rgb.txt файл. Если стиль не задан, но этот файл находится в одном из различных
в стандартных местах он будет использоваться по умолчанию.
завершение пути
Используется при завершении имени файла. По умолчанию завершение имени файла проверяет все
компоненты пути, чтобы увидеть, есть ли завершения этого компонента. За
пример, / u / b / z может быть завершено до / usr / bin / zsh. Явно устанавливая для этого стиля значение
`false 'запрещает это поведение для компонентов пути до / перед курсором;
это отменяет настройку принять точные директории.
Даже со стилем, установленным на `false ', все еще можно завершить несколько путей
установив опцию COMPLETE_IN_WORD и переместив курсор обратно к первому
компонент в пути, который необходимо завершить. Например, / u / b / z может быть завершено до
/ usr / bin / zsh если курсор стоит после /u.
сосновый справочник
Если установлено, указывает каталог, содержащий файлы почтового ящика PINE. Здесь нет
по умолчанию, поскольку рекурсивный поиск в этом каталоге неудобен для всех, кто
не использует СОСНУ.
порты Список имен Интернет-служб (сетевых портов) для заполнения. Если это не установлено,
имена сервисов взяты из файла `/ etc / services'.
со скрытым префиксом
Это используется для определенных завершений, которые имеют общий префикс, например
параметры команды, начинающиеся с тире. Если это `true ', префикс не будет
отображается в списке совпадений.
Значение по умолчанию для этого стиля - "false".
префикс необходим
Этот стиль актуален и для совпадений с общим префиксом. Если он установлен на
«true» - этот общий префикс должен вводиться пользователем для генерации совпадений.
Стиль применим к кредита, сигналы, работе, Функции и параметры
Теги завершения.
Для параметров команды это означает, что начальный `-', `+', или `--'необходимо ввести
явно до того, как имена параметров будут завершены.
Для сигналов начальный символ `-'требуется до завершения имен сигналов.
Для вакансий начальная буква `%'требуется до того, как имена заданий будут завершены.
Для имен функций и параметров начальное значение `_'или `.'требуется перед функцией
или имена параметров, начинающиеся с этих символов, будут завершены.
Значение по умолчанию для этого стиля - `false 'для функция и параметр доработки,
и true в противном случае.
сохранить-префикс
Этот стиль используется при заполнении имен путей. Его значение должно быть узором
соответствие начальному префиксу слова для завершения, которое следует оставить без изменений
при любых обстоятельствах. Например, в некоторых Unix начальный `//' (двойной
слэш) имеет особое значение; установив этот стиль в строку `//'сохранит
Это. В качестве другого примера, установив для этого стиля значение `?: /'под Cygwin позволит
завершение после `а: / ...' и так далее.
ассортимент Это используется _история завершитель и _history_complete_word связываемый
команда, чтобы решить, какие слова следует завершить.
Если это одно число, только последнее N слова из истории будут дополнены.
Если это диапазон формы `Макс:кусочек', последний кусочек слова будут дополнены;
тогда, если это не дает совпадений, кусочек слова, прежде чем они будут испытаны, и так
на. Этот процесс останавливается либо при обнаружении хотя бы одного совпадения, либо Макс слова
были опробованы.
По умолчанию все слова из истории заполняются сразу.
рекурсивные файлы
Если этот стиль установлен, его значение представляет собой массив шаблонов для проверки на соответствие
`$ PWD /': обратите внимание на косую черту в конце, которая позволяет каталогам в шаблоне быть
однозначно разделены косой чертой с обеих сторон. Если обычный файл
завершение не удается, и слово в командной строке еще не имеет каталога
часть его имени, стиль извлекается с использованием того же тега, что и для завершения
только что попытался, то элементы протестированы против $ PWD / по очереди. Если совпадает,
затем оболочка повторяет попытку завершения, добавляя слово в командной строке
с каждым каталогом в расширении ** / * (/) по очереди. Обычно элементы
будет установлен стиль, ограничивающий количество каталогов ниже текущего
к управляемому числу, например,* /. git / *'.
Например,
zstyle ': завершение: *' рекурсивные файлы '* / zsh / *'
Если текущий каталог / главная / pws / zsh / Src, то zle_trTAB может быть завершено до
Zle / zle_tricky.c.
регулярный
Этот стиль используется _expand_alias завершающая и связываемая команда. Если установлено на
true (по умолчанию), обычные псевдонимы будут раскрыты, но только в команде
должность. Если установлено значение «false», обычные псевдонимы никогда не будут расширены. Если это
установлен на `всегда', обычные псевдонимы будут расширены, даже если они не находятся в команде
позиции.
перепев Если это установлено при выполнении внешних команд, внутренний список (хэш)
команды будут обновляться для каждого поиска путем выдачи перепев команда. Eсть
штраф за скорость, который, вероятно, будет заметен, только если каталоги в
путь имеет медленный доступ к файлу.
удаленный доступ
Если установлено значение «false», определенные команды не смогут запускать Интернет.
подключения для получения удаленной информации. Это включает завершение для
CVS команда.
Не всегда можно узнать, действительно ли подключение к удаленному сайту, поэтому
некоторые могут быть предотвращены без необходимости.
удалить все дубли
Команда _history_complete_word связываемая команда и _история Завершите использовать это, чтобы
решить, следует ли удалять все повторяющиеся совпадения, а не только последовательные
дубликаты.
выберите подсказку
Если это установлено для по умолчанию тег, его значение будет отображаться в меню
выбор (см. МЕНЮ стиль выше), когда список завершения не помещается на
экран в целом. Те же побеги, что и для список-подсказка стиль понятен,
за исключением того, что числа относятся к совпадению или линии, на которой стоит отметка. По умолчанию
приглашение используется, когда значением является пустая строка.
выбор-прокрутка
Этот стиль проверен на по умолчанию тег и определяет, как будет выглядеть список завершения.
прокручивается во время выбора меню (см. МЕНЮ стиль выше), когда завершение
список не умещается на экране целиком. Если значение равно `0'(ноль), список
прокручивается до половины экрана; если это положительное целое число, список прокручивается
по заданному количеству строк; если это отрицательное число, список прокручивается
screenful минус абсолютное значение заданного количества строк. По умолчанию
прокрутка по отдельным строкам.
отдельные разделы
Этот стиль используется с Инструкции при заполнении имен справочных страниц. Если
это `true ', записи для разных разделов добавляются отдельно с использованием имен тегов
формы `руководство.X', где X это номер раздела. Когда имя группы стиль
также действует, страницы из разных разделов будут отображаться отдельно. Этот
стиль также используется аналогично с слова стиль при заполнении слов для
команда dict. Позволяет добавлять слова из разных словарных баз данных.
по отдельности. По умолчанию для этого стиля установлено значение "false".
показная двусмысленность
Если же линия индикатора zsh / Complist модуль загружен, этот стиль можно использовать для выделения первого
неоднозначный символ в списках завершения. Значение представляет собой цветовую индикацию.
такие как те, которые поддерживаются список цветов style или, со значением true, a
по умолчанию выбрано подчеркивание. Подсветка применяется только в том случае, если
Строки отображения завершения соответствуют фактическим совпадениям.
шоу-завершитель
Проверяется всякий раз, когда пробуется новый комплектующий. Если это "истина", система завершения
выводит сообщение о ходе выполнения в области списка, показывающее, что завершает работу
пытался. Сообщение будет перезаписано любым выводом, когда будут найдены завершения.
и удаляется после завершения.
однократно игнорируемый
Это используется _игнорируется завершение, когда есть только одно совпадение. Если его значение
это `произошел', единственное совпадение будет отображаться, но не вставляться. Если значение равно
`МЕНЮ', то единственное совпадение и исходная строка добавляются как совпадения и
запускается завершение меню, что позволяет легко выбрать любой из них.
sort Многие виджеты завершения вызывают _описание в какой-то момент, который решает, будет ли
совпадения добавляются отсортированными или несортированными (часто косвенно через _хотел or _запрошено).
Этот стиль может быть явно установлен на одно из обычных значений «истина» или «ложь» в качестве
переопределить. Если он не установлен для контекста, стандартное поведение вызывающего
виджет используется.
Стиль сначала проверяется на весь контекст, включая тег, и если это
не может создать значение для контекста без тега.
Если вызывающий виджет явно запрашивает несортированные совпадения, обычно это
заслуженный. Однако стандартное (несортированное) поведение завершения для команды
история может быть отменена установкой стиля в значение «true».
В _расширять Completer, если для него установлено значение `true ', сгенерированные расширения будут
всегда быть отсортированным. Если он установлен на `МЕНЮ', то расширения сортируются только тогда, когда
они предлагаются как отдельные строки, но не в строке, содержащей все возможные
разложения.
специальные директоры
Обычно код завершения не создает имена каталогов `.'и `..' так как
возможные доработки. Если для этого стиля установлено значение `true ', он добавит как`.' а также
`..'как возможные доработки; если он установлен на `..', только `..' будет добавлено.
В следующих примерах устанавливаются специальные директоры к `..'когда текущий префикс пуст,
это сингл `.', или состоит только из пути, начинающегося с `../'. В противном случае
значение - `ложь '.
zstyle -e ': завершение: *' специальные директоры \
'[[ $ ПРЕФИКС = (../) # (|. | ..) ]] && ответ = (..) '
сжимающие удары
Если установлено значение `true ', последовательности косых черт в путях файлов (например, в
`foo // бар') будет рассматриваться как одинарная косая черта. Это обычное поведение UNIX.
пути. Однако по умолчанию функция завершения файла ведет себя так, как если бы была
`*'между косыми чертами.
остановить Если установлено значение true, _history_complete_word bindable команда остановится один раз, когда
достижение начала или конца истории. Вызов _history_complete_word предусматривает
затем вернитесь к противоположному концу истории. Если этот стиль установлен на
false (по умолчанию), _history_complete_word будет зацикливаться сразу, как в меню
завершение.
полосы-комментарии
Если установлено значение «true», этот стиль приводит к удалению несущественного текста комментария из
завершение матчей. В настоящее время используется только при заполнении адресов электронной почты.
где он удаляет любое отображаемое имя из адресов, сокращая их до простого
пользователь @ хост форме.
только подстановочные шары
Это используется _расширять завершитель. Если установлено значение true, расширение будет
использоваться только в том случае, если это произошло в результате подстановки; следовательно, если расширения возникли в результате
использование замена стиль, описанный ниже, но они не были изменены
globbing, расширения будут отклонены.
По умолчанию для этого стиля установлено значение "false".
замена
Этот логический стиль определяет, будет ли _расширять Завершитель сначала попытается развернуть
все замены в строке (например, `$(...)'и `${...}«).
По умолчанию - "true".
суффикс Это используется _расширять завершается, если слово начинается с тильды или содержит
расширение параметра. Если установлено значение «истина», слово будет раскрыто только в том случае, если оно
не имеет суффикса, т.е. если это что-то вроде `~ фу'или `$ Foo' скорее, чем
`~ foo /'или `$ foo / bar', если только этот суффикс не содержит символы, подходящие для
расширение. По умолчанию для этого стиля установлено значение "true".
порядок тегов
Это обеспечивает механизм для сортировки того, как теги доступны в конкретном
будет использоваться контекст.
Значения для стиля представляют собой наборы разделенных пробелами списков тегов. Теги в
каждое значение будет проверяться одновременно; если совпадений не найдено, следующее значение будет
использовал. (См. файлы-шаблоны стиль для исключения из этого поведения.)
Например:
zstyle ': завершение: *: завершено: -команда -: *: *' порядок тегов \
'команды функции '
указывает, что завершение в позиции команды сначала предлагает внешние команды и
функции оболочки. Остальные теги будут проверены, если не будут найдены дополнения.
Помимо имен тегов, каждая строка в значении может принимать одно из следующих значений:
формы:
- Если какое-либо значение состоит только из дефиса, то Важно теги, указанные в
другие значения генерируются. Обычно все теги, не выбранные явным образом,
пробовал последним, если указанные теги не смогли сгенерировать какие-либо совпадения. Это означает
что одно значение, состоящее только из одного дефиса, отключает завершение.
! имеют теги...
Строка, начинающаяся с восклицательного знака, определяет имена тегов, которые
быть использованным. Эффект такой же, как если бы все другие возможные теги для
контекст был указан.
день:этикетка ...
Здесь, день один из стандартных тегов и этикетка это произвольное имя.
Совпадения генерируются как обычно, но имя этикетка используется в контексте
вместо день. Это бесполезно для слов, начинающихся с !.
Если же линия индикатора этикетка начинается с дефиса, день добавляется к этикетка для формирования
имя, используемое для поиска. Это можно использовать для создания системы завершения
попробуйте использовать определенный тег несколько раз, задав разные настройки стиля для
каждая попытка; см. ниже пример.
день:этикетка:описание
Как и раньше, но описание заменит `%d'в стоимости формат
стиль вместо описания по умолчанию, предоставленного завершением
функция. Пробелы в описании следует заключать в кавычки с обратной косой чертой. А
`%d'появляясь в описание заменяется описанием, данным
функция завершения.
В любой из форм выше тег может быть шаблоном или несколькими шаблонами в форме
`{pat1,пат2 ...}'. В этом случае будут использоваться все совпадающие теги, кроме любого заданного
явно в той же строке.
Одно из применений этих функций - попробовать один тег более одного раза, задав другие стили.
по-разному при каждой попытке, но все же использовать все остальные теги без необходимости
повтори их все. Например, чтобы завершить имена функций в команде
позиция игнорировать все функции завершения, начиная с подчеркивания первого
время попытки завершения:
zstyle ': завершение: *: *: - команда -: *: *' порядок тегов \
'функции: -non-comp *' Функции
zstyle ': завершение: *: функции-без компоновки' \
игнорируемые шаблоны '_ *'
С первой попытки будут предложены все теги, кроме Функции тег будет
заменяется функции-не-комп., игнорируемые шаблоны для этого тега задан стиль
исключить функции, начинающиеся с подчеркивания. Если совпадений нет, второй
значение порядок тегов используется стиль, который выполняет функции с использованием значения по умолчанию
тег, на этот раз предположительно включая все имена функций.
Совпадения по одному тегу можно разделить на разные группы. Например:
zstyle ': завершение: *' порядок тегов \
'параметры: -длинный: длинный \ кредита
параметры: -short: short \ кредита
параметры: -однобуквенный: одиночный \ письмо\ параметры'
zstyle ': завершение: *: длина-параметры' \
игнорируемые шаблоны '[- +] (| - | [^ -] *)'
zstyle ': завершение: *: параметры-короткие' \
игнорируемые шаблоны '- *' '[- +]?'
zstyle ': завершение: *: параметры-однобуквенный' \
игнорируемые шаблоны '??? *'
Достаточно воспользоваться ИИ-ассистентом презентера имена групп набор стилей, параметры, начинающиеся с `--', параметры, начинающиеся с
сингл `-'или `+'но содержит несколько символов и однобуквенные варианты
будут отображаться отдельными группами с разными описаниями.
Еще одно использование шаблонов - это одна за другой пробовать несколько спецификаций соответствия.
Команда список совпадений style предлагает нечто похожее, но уже очень рано опробовано
система завершения и, следовательно, не может быть установлена ни для отдельных команд, ни для более конкретных
контексты. Вот как можно попробовать нормальное завершение без какой-либо спецификации соответствия
и, если совпадений нет, попробуйте еще раз с сопоставлением без учета регистра,
ограничение эффекта аргументами команды Foo:
zstyle ': завершение: *: *: foo: *: *' порядок тегов '*' '*:-кейс'
zstyle ': завершение: * - регистр' согласовани 'm: {az} = {AZ}'
Во-первых, все теги, предлагаемые при заполнении после Foo пробуют использовать нормальный
название тэга. Если совпадений нет, второе значение порядок тегов используется,
который снова пробует все теги, за исключением того, что на этот раз у каждого -кейс прилагается к его
имя для поиска стилей. Следовательно, на этот раз значение для согласовани стиль от
второй звонок zstyle в примере используется для завершения
без учета регистра.
Можно использовать -e вариант zstyle встроенная команда для указания
условия использования тех или иных тегов. Например:
zstyle -e '*: - команда -: *' порядок тегов '
if [[ -n $ ПРЕФИКС $ СУФФИКС ]]; тогда
ответ = ( )
еще
ответ = ( - )
fi '
Попытка завершения в позиции команды будет предпринята, только если введенная до сих пор строка
не пусто. Это проверено с помощью ПРЕФИКС специальный параметр; см. zshcompwid для
описание параметров, которые являются специальными внутри виджетов завершения. Параметр
Ответить к пустому массиву обеспечивает поведение по умолчанию - пробовать все теги одновременно;
установка его в массив, содержащий только дефис, отключает использование всех тегов и
отсюда всех доработок.
Если нет порядок тегов стиль был определен для контекста, строки `(| * -) аргумент- *
(| * -) вариант- * ценности'и `кредита'плюс все теги, предлагаемые завершением
функция будет использоваться для обеспечения разумного поведения по умолчанию, которое вызывает аргументы
(будь то обычные аргументы команды или аргументы опций), которые должны быть завершены перед
имена опций для большинства команд.
URL-адреса Используется вместе с URL-адреса теги функциями, дополняющими URL-адреса.
Если значение состоит из более чем одной строки или если единственная строка не имеет имени
файл или каталог, строки используются как URL-адреса для завершения.
Если значение содержит только одну строку, которая является именем обычного файла, URL-адреса
берутся из этого файла (где URL-адреса могут быть разделены пробелом или
новые строки).
Наконец, если единственная строка в значении называет каталог, иерархия каталогов
укорененный в этом каталоге дает доработки. Каталог верхнего уровня должен быть
метод доступа к файлу, например,HTTP', `FTP', `закладка' и так далее. Во многих случаях
следующий уровень каталогов будет именем файла. Иерархия каталогов может
спуститесь настолько глубоко, насколько это необходимо.
Например,
zstyle ': завершение: *' URL-адреса ~ / .urls
MkDir -p ~ / .urls / ftp / ftp.zsh.org / pub
позволяет заполнить все компоненты URL ftp://ftp.zsh.org/pub после
подходящие команды, такие как `Netscape'или `рысь'. Обратите внимание, однако, что методы доступа
и файлы заполняются отдельно, поэтому, если хостов стиль установлен хосты могут быть
завершено без ссылки на URL-адреса стилю.
См. Описание в функции _urls сам для получения дополнительной информации (например, `больше
$ ^ fpath / _urls (N)«).
использование кеша
Если это установлено, уровень кэширования завершения активируется для любых завершений, которые
использовать его (через _store_cache, _retrive_cache и _cache_invalid функции). В
каталог, содержащий файлы кеша, можно изменить с помощью путь к кешу стилю.
использование-compctl
Если этот стиль установлен на строку равно ложный, 0, нет и от, завершение
система может использовать любые спецификации завершения, определенные в компктл встроенная
команда. Если стиль не задан, это делается только в том случае, если zsh / compctl модуль
загружен. Строка также может содержать подстроку `первый'использовать завершение
определяется с помощьюкомпктл -T', а подстрока `по умолчанию'использовать завершение
определяется с помощьюкомпктл -D'.
Обратите внимание, что это предназначено только для сглаживания перехода от компктл к новому
система завершения и может исчезнуть в будущем.
Также обратите внимание, что определения из компктл будет использоваться только если нет
специальная функция завершения для рассматриваемой команды. Например, если есть
функция _foo для завершения аргументов команды Foo, компктл никогда не будет
призван для Foo. Тем не менее, компктл версия будет проверена, если Foo только использует
завершение по умолчанию.
использовать-IP По умолчанию функция _hosts который завершает имена хостов, удаляет IP-адреса из
записи читаются из баз данных хоста, таких как файлы NIS и ssh. Если этот стиль
`true ', соответствующие IP-адреса также могут быть заполнены. Этот стиль не
использовать в любом контексте, где хостов стиль задан; обратите внимание, что он должен быть установлен перед
создается кеш имен хостов (обычно первая попытка завершения).
пользователей Это может быть список имен пользователей, которые необходимо заполнить. Если не установлен все
имена пользователей будут заполнены. Обратите внимание, что если он установлен, только этот список пользователей будет
будет завершена; это потому, что в некоторых системах запросы всех пользователей могут
непомерно много времени.
пользователи-хосты
Значения этого стиля должны иметь вид `пользователь@кашель'или `пользователь:кашель'. это
используется для команд, которым нужны пары имен пользователей и хостов. Эти команды будут
полные имена пользователей из этого стиля (только) и будут ограничивать последующее имя хоста
завершение для хостов, связанных с этим пользователем, в одном из значений стиля.
Можно сгруппировать значения для наборов команд, которые позволяют удаленный вход,
как Rlogin и SSHс помощью мои счета тег. Аналогично значения для множеств
команд, которые обычно относятся к учетным записям других людей, например говорить и
палец, можно сгруппировать с помощью другие счета тег. Более амбивалентные команды
может использовать счета тег.
пользователи-хосты-порты
Подобно пользователи-хосты но используется для таких команд, как Telnet и содержащий строки
форма `пользователь@кашель:порт'.
подробный
Если установлено по умолчанию, список завершения будет более подробным. Особенно
многие команды показывают описания опций, если этот стиль - «истина».
слово Это используется _список Completer, который предотвращает вставку завершений
до второй попытки завершения, когда строка не изменится. Нормальный способ
выяснить, изменилась ли строка, - это сравнить все ее содержимое между
два раза. Если этот стиль равен `true ', сравнение выполняется только
на текущем слове. Следовательно, если завершение выполняется для другого слова с
то же содержание, завершение не будет отложено.
КОНТРОЛЬ ФУНКЦИИ
Скрипт инициализации составить переопределяет все виджеты, выполняющие завершение, на
вызвать предоставленную функцию виджета _main_complete. Эта функция действует как вызов оболочки
так называемые "завершающие" функции, генерирующие совпадения. Если _main_complete называется
с аргументами они принимаются как имена функций завершения, которые будут вызываться в
заказ отдан. Если аргументы не указаны, набор функций, которые нужно попробовать, берется из
полный стиль. Например, чтобы использовать обычное завершение и исправление, если это не так.
генерировать любые совпадения:
zstyle ': завершение: *' полный _полный _правильный
после звонка составить. Значение по умолчанию для этого стиля - `_полный _игнорируется', т.е.
обычно выполняется только обычное завершение, сначала с эффектом игнорируемые шаблоны
стиль и то без него. В _main_complete функция использует статус возврата
функции завершения, чтобы решить, следует ли вызывать другие программы завершения. Если статус возврата
равен нулю, никакие другие завершатели не пробуются и _main_complete функция возвращается.
Если первый аргумент _main_complete одинарный дефис, аргументы не будут
взяты за имена комплектующих. Вместо этого второй аргумент дает имя для использования в
полный поле контекста, а другие аргументы дают имя команды и аргументы
вызвать для генерации совпадений.
В дистрибутив включены следующие дополнительные функции, хотя пользователи могут
писать свои собственные. Обратите внимание, что в контекстах начальное подчеркивание удаляется, например
базовая доработка выполняется в контексте `: Завершение :: завершено:...'.
_все_матчи
Этот завершитель можно использовать для добавления строки, состоящей из всех других совпадений. Как это
влияет на последующих завершителей, он должен стоять первым в списке. В
список всех совпадений зависит от уклончивый и старые спички стили
описано выше.
Может быть полезно использовать _универсальный описанная ниже функция для привязки _все_матчи
на собственное нажатие клавиши, например:
видеть -C все матчи полное слово _универсальный
привязка '^ Xa' все матчи
zstyle ': завершение: все совпадения: *' старые спички Важно
zstyle ': завершение: все совпадения ::::' полный _все_матчи
Обратите внимание, что это не создает завершений само по себе: сначала используйте любой из
стандартные способы создания списка завершений, затем используйте ^ Ха показать все
Спички. Вместо этого можно добавить в список стандартный комплектовщик и
запросить, чтобы список всех совпадений был вставлен напрямую:
zstyle ': завершение: все совпадения ::::' полный \
_все_матчи _полный
zstyle ': завершение: все совпадения: *' вставить правда
В этом случае старые спички стиль не должен устанавливаться.
_приблизительно
Это похоже на базовый _полный завершение, но позволяет
пройти исправления. Максимальное количество ошибок может быть указано
макс-ошибки стиль; см. описание примерного соответствия в zshexpn(1) как
подсчитываются ошибки. Обычно этот завершатель будет пробовать только после нормального
_полный завершитель:
zstyle ': завершение: *' полный _полный _приблизительно
Это даст исправляющее завершение тогда и только тогда, когда нормальное завершение не даст результата.
возможные доработки. Когда исправленные доработки будут найдены, компоновщик
обычно завершение меню запуска позволяет вам циклически перемещаться по этим строкам.
Этот комплектующий использует теги корректировки и оригинал при создании возможных
исправления и исходная строка. В формат стиль для первого может содержать
дополнительные последовательности `%e'и `%o'который будет заменен числом
ошибки принимаются для генерации исправлений и исходной строки соответственно.
Компонент постепенно увеличивает количество допустимых ошибок до предела.
не провела обыск макс-ошибки стиль, следовательно, если завершение найдено с одной ошибкой, нет
будут показаны завершения с двумя ошибками и т. д. Модифицирует завершитель
имя в контексте, чтобы указать количество проверенных ошибок: с первой попытки
поле завершения содержит `приблизительно-1', со второй попытки `приблизительно-2',
и т. д.
После появления _приблизительно вызывается из другой функции, количество принимаемых ошибок
может быть передан с -a вариант. Аргумент имеет тот же формат, что и
макс-ошибки стиль, все в одной строке.
Обратите внимание, что этот комплектчик (и _правильный упомянутый ниже комплектующий) может быть вполне
звонить дорого, особенно когда допускается большое количество ошибок. В одну сторону
чтобы избежать этого, нужно настроить полный стиль с использованием -e вариант zstyle так
что некоторые средства завершения используются только при повторной попытке завершения на
та же строка, например:
zstyle -e ': завершение: *' полный '
if [[ $ _last_try != "$ HISTNO $ BUFFER $ КУРСОР" ]]; тогда
_last_try = "$ HISTNO $ BUFFER $ CURSOR"
ответ = (_ завершено _совпадение _префикс)
еще
ответ = (_ игнорируется _правильный _приблизительно)
fi '
Это использует ГИСТНО параметр и БУФЕР и КУРСОР специальные параметры, которые
доступны внутри виджетов zle и завершения, чтобы узнать,
не изменился с момента последней попытки завершения. Только тогда
_игнорируется, _правильный и _приблизительно звонили комплектующие.
_полный
Этот инструмент завершения генерирует все возможные варианты завершения в контекстно-зависимой манере,
т.е. используя настройки, определенные с помощью компдеф функция, описанная выше, и
текущие настройки всех специальных параметров. Это дает нормальное завершение
поведение.
Чтобы завершить аргументы команд, _полный использует функцию полезности _нормальный,
который, в свою очередь, отвечает за поиск конкретной функции; это описано
ниже. Различные контексты формы -контекст- обрабатываются специально. Эти
все упомянутые выше в качестве возможных аргументов #компдеф тег.
Прежде чем пытаться найти функцию для определенного контекста, _полный проверяет, есть ли
параметр `составной контекст'установлен. Установка `составной контекст'позволяет обычное завершение
диспетчеризация для переопределения, что полезно в таких местах, как функция, которая использует
вэред для ввода. Если он установлен в массив, элементы считаются
возможные совпадения, которые будут завершены с использованием тега `ценности'и описание
`ценностное '. Если он установлен в ассоциативный массив, ключи используются как возможные
завершения и значения (если они не пустые) используются как описания совпадений.
Если `составной контекст'устанавливается в строку, содержащую двоеточия, она должна иметь вид
`день:DESCR:действие'. В этом случае день и DESCR дать тег и описание
использование и действие указывает, что следует заполнить, в одной из принятых форм
не провела обыск _аргументы служебная функция, описанная ниже.
Наконец, если `составной контекст'устанавливается в строку без двоеточий, значение принимается как
имя используемого контекста и функция, определенная для этого контекста, будут
называется. Для этого существует специальный контекст с именем -командная строка- которые
завершает целые командные строки (команды и их аргументы). Это не используется
сама система завершения, но, тем не менее, обрабатывается при явном вызове.
_правильный
Создавать исправления, но не дополнения для текущего слова; это похоже на
_приблизительно но не допустит никакого количества дополнительных символов в курсоре, как
этот комплектующий делает. Эффект похож на проверку орфографии. Он основан на
_приблизительно, но завершающее поле в имени контекста исправить.
Например, с:
zstyle ': завершение :::::' полный \
_полный _правильный _приблизительно
zstyle ': завершение: *: правильно :::' макс-ошибки 2 нечисловой
zstyle ': завершение: *: приблизительное :::' макс-ошибки 3 числовой
исправление допускает до двух ошибок. Если указан числовой аргумент,
исправление не будет выполнено, но завершение исправления будет и будет
принять столько ошибок, сколько задано числовым аргументом. Без числового
аргумент, сначала будет предпринято исправление, а затем исправление завершения, с
первый принимает две ошибки, а второй принимает три ошибки.
После появления _правильный вызывается как функция, может быть задано количество принимаемых ошибок
после -a вариант. Аргумент имеет ту же форму, что и значения принимать
стиль, все в одной строке.
Эта функция завершения предназначена для использования без _приблизительно полный
или, как в примере, непосредственно перед ним. Используя его после _приблизительно полный
бесполезно, так как _приблизительно по крайней мере сгенерирует исправленные строки
генерируемый _правильный Complete - и, наверное, больше.
_расширять
Эта функция завершения на самом деле не выполняет завершение, а вместо этого проверяет,
слово в командной строке подходит для раскрытия и, если да, дает
детальный контроль над тем, как это расширение сделано. Чтобы это произошло,
система завершения должна быть вызвана с полное слово, Не развернуть или завершить
(привязка по умолчанию для TAB), иначе строка будет расширена
внутренний механизм оболочки до запуска системы завершения. Обратите внимание также на это
Завершитель должен вызываться перед _полный завершающая функция.
Теги, используемые при создании расширений: все расширения для строки
содержащий все возможные расширения, расширения при добавлении возможных расширений
как одиночные спички и оригинал при добавлении исходной строки из строки. В
порядок, в котором эти строки генерируются, если вообще, можно контролировать с помощью
групповой заказ и порядок тегов стили, как обычно.
Строка формата для все расширения и для расширения может содержать последовательность
`%o'которая будет заменена исходной строкой из строки.
Тип расширения, который нужно попробовать, контролируется замена, земной шар и
только подстановочные шары стили.
Также можно позвонить _расширять как функция, и в этом случае разные
режимы можно выбрать с помощью опций: -s для замена, -g для земной шар и -o для
только подстановочные шары.
_expand_alias
Если слово, на котором стоит курсор, является псевдонимом, оно раскрывается, и никакие другие дополнения
называются. Типами расширяемых псевдонимов можно управлять с помощью
стили регулярный, Глобальный и инвалид.
Эта функция также является связываемой командой, см. Раздел `Привязываемые команды '
внизу.
_extensions
Если курсор следует за строкой `*.', расширения файлов завершены. В
расширения берутся из файлов в текущем каталоге или каталоге, указанном в
начало текущего слова. Для точных совпадений завершение по-прежнему позволяет
другие комплектующие, такие как _расширять чтобы развернуть узор. Стандарт дополнительное пространство и
со скрытым префиксом стили соблюдаются.
_история
Полные слова из истории команд оболочки. Этим комплектующим можно управлять
не провела обыск удалить все дубли и sort стили как для _history_complete_word связываемый
см. раздел «Привязываемые команды» ниже и раздел «Завершение
Конфигурация системы »выше.
_игнорируется
Команда игнорируемые шаблоны стиль может быть установлен в список шаблонов, которые сравниваются
против возможных доработок; совпадающие удаляются. С этим комплектом те
матчи могут быть восстановлены, как будто нет игнорируемые шаблоны стиль был установлен. Завершитель
фактически формирует собственный список совпадений; какие завершатели вызываются
определяется так же, как и для _префикс завершитель. В однократно игнорируемый стиль
также доступен, как описано выше.
_список Этот инструмент завершения позволяет отложить вставку совпадений до завершения.
предпринята вторая попытка без изменения слова в строке. Во-первых
попытки, будет показан только список совпадений. На это влияют стили
состояние и словосм. раздел «Конфигурация системы завершения» выше.
_совпадение Этот комплектующий предназначен для использования после _полный завершитель. Ведет себя
аналогично, но строка в командной строке может быть шаблоном для сопоставления с
пробные доработки. Это дает эффект GLOB_COMPLETE опцию.
Обычно завершение выполняется путем взятия шаблона из линии,
вставка `*'в позиции курсора и сравнивая полученный образец с
возможные доработки сгенерированы. Это можно изменить с помощью оригинальный матч стиль
описано выше.
Сгенерированные совпадения будут предлагаться в завершении меню, если
вставка-недвусмысленный для стиля установлено значение «истина»; см. описание выше для других
варианты этого стиля.
Обратите внимание, что спецификации сопоставителя определены глобально или используются завершением
функции (стили список совпадений и согласовани) не будет использоваться.
_меню Этот инструмент завершения был написан как простой пример функции, чтобы показать, как завершение меню
можно включить в коде оболочки. Однако он имеет заметный эффект отключения меню
выбор, который может быть полезен с _универсальный на основе виджетов. Его следует использовать как
первый завершающий в списке. Обратите внимание, что это не зависит от настройки
МЕНЮ_COMPLETE опция и не работает с другими виджетами завершения меню, такими как
as обратное-меню-полное или принять и завершить меню.
_старый список
Этот инструмент завершения контролирует поведение стандартных виджетов завершения, когда есть
существующий список завершений, которые могли быть сгенерированы специальным завершением
(т.е. отдельно привязанная команда завершения). Это позволяет обычное завершение
ключи для продолжения использования сгенерированного таким образом списка завершений вместо
создание нового списка обычных контекстных дополнений. Он должен появиться в
список завершителей перед любым из виджетов, которые генерируют совпадения. Он использует два
стили: старый список и старое меню, см. раздел «Конфигурация системы завершения»
выше.
_префикс
Этот инструмент завершения можно использовать для попытки завершения с суффиксом (все, что после
курсор) игнорируется. Другими словами, суффикс не будет считаться частью
слово для завершения. Эффект похож на префикс расширения или завершения
команда.
Команда полный стиль используется, чтобы решить, какие другие комплектующие должны быть вызваны
генерировать совпадения. Если этот стиль не задан, список комплектующих, установленный для
используется текущий контекст - за исключением, конечно, _префикс комплектовать сам.
Кроме того, если этот завершитель появляется более одного раза в списке завершителей
только те завершители, которые еще не были опробованы последним вызовом _префикс будет
называется.
Например, рассмотрим этот глобальный полный стиль:
zstyle ': завершение: *' полный \
_полный _префикс _правильный _prefix: foo
Здесь _префикс Completer пытается выполнить нормальное завершение, но игнорирует суффикс. Если
который не генерирует никаких совпадений, и также не вызывает _правильный
завершить после него, _префикс будет вызван во второй раз и сейчас только пытаюсь
исправление с игнорированием суффикса. При втором вызове завершенная часть
контекст отображается как `Foo'.
Использовать _префикс в крайнем случае и попробуйте только нормальное завершение, когда оно
вызвано:
zstyle ': завершение: *' полный _полный ... _префикс
zstyle ': завершение :: префикс: *' полный _полный
Команда дополнительное пространство стиль тоже уважается. Если установлено значение true, то _префикс предусматривает
вставьте пробел между сгенерированными совпадениями (если есть) и суффиксом.
Обратите внимание, что этот компоновщик полезен только в том случае, если COMPLETE_IN_WORD опция установлена;
в противном случае курсор переместится в конец текущего слова перед
вызывается код завершения, поэтому суффикса не будет.
_user_expand
Этот компоновщик ведет себя аналогично _расширять завершает, но вместо этого выполняет
расширения, определенные пользователями. Стили дополнительное пространство и sort стили, характерные для
_расширять комплектующие можно использовать с _user_expand в дополнение к другим стилям обрабатываются
в более общем плане системой завершения. Тег все расширения также доступны.
Расширение зависит от стиля массива пользовательское расширение определяется для текущего
контекст; помните, что контекст для завершителей менее конкретен, чем для
контекстное завершение, поскольку полный контекст еще не определен. Элементы
массив может иметь одну из следующих форм:
$хэш
хэш это имя ассоциативного массива. Обратите внимание, это не полный параметр
выражение, просто $, соответствующие котировки, чтобы предотвратить немедленное расширение,
за которым следует имя ассоциативного массива. Если пробное слово расширения
соответствует ключу в хэш, результирующее разложение будет соответствующим значением.
_FUNC
_FUNC это имя функции оболочки, имя которой должно начинаться с _ но это
не является чем-то особенным для системы завершения. Функция вызывается с помощью
пробное слово как аргумент. Если слово нужно раскрыть, функция
должен установить массив Ответить к списку расширений. При желании можно установить
оТВЕТИТЬ к слову, которое будет использоваться в качестве описания набора
расширения. Статус возврата функции не имеет значения.
ОБЯЗАТЕЛЬНЫЙ КОМАНДЫ
В дополнение к предоставленным зависимым от контекста дополнениям, которые, как ожидается, будут работать в
интуитивно очевидным образом существует несколько виджетов, реализующих особое поведение, которое
может быть привязан отдельно к ключам. Ниже приводится их список и их значения по умолчанию.
привязки.
_bash_completions
Эта функция используется двумя виджетами, _bash_complete-слово и _bash_list-выборы.
Он существует для обеспечения совместимости с привязками завершения в bash. Последний
характер привязки определяет, что будет завершено:!', имена команд; `$',
переменные среды; `@', имена хостов; `/', имена файлов; `~'имена пользователей. В баше
привязка, которой предшествует `\e'дает завершение, и перед ним стоит `^X'перечисляет варианты.
Поскольку некоторые из этих привязок конфликтуют со стандартными привязками zsh, только `\ е ~'и `^ X ~'
связаны по умолчанию. Чтобы добавить остальное, следует добавить следующее: .zshrc
после составить был запущен:
для ключ in '!' '$' '@' '/' '~'; do
привязка "\ e $ key" _bash_complete-слово
привязка "^ X $ ключ" _bash_list-выборы
сделанный
Сюда входят привязки для `~'на случай, если они уже были к чему-то привязаны
еще; код завершения не отменяет привязки пользователя.
_correct_filename (^ XC)
Исправьте путь к имени файла в позиции курсора. Допускает до шести ошибок в
название. Также может быть вызван с аргументом для исправления пути к имени файла,
независимо от зле; исправление печатается на стандартном выпуске.
_правильное слово (^ Xc)
Выполняет исправление текущего аргумента с помощью обычных контекстных дополнений
как возможные варианты. Это хранит строку `правильное слово' в функция поле
имя контекста, а затем вызывает _правильный завершитель.
_expand_alias (^ Ха)
Эта функция может использоваться как завершающая и как связываемая команда. Это расширяет
слово, на котором установлен курсор, если это псевдоним. Типы расширенных псевдонимов могут быть
контролируется стилями регулярный, Глобальный и инвалид.
При использовании в качестве связываемой команды есть одна дополнительная функция, которую можно
выбирается путем установки полный style на "true". В этом случае, если слово не
имя псевдонима, _expand_alias пытается завершить слово до полного псевдонима
не расширяя его. Курсор остается сразу после завершенного слова, поэтому
это призыв _expand_alias еще раз расширит теперь уже полное имя псевдонима.
_expand_word (^ Xe)
Выполняет раскрытие текущего слова: эквивалентно стандартному раскрыть слово
команда, но используя _расширять завершитель. Прежде чем его назвать, функция поле
контекст установлен на `раскрыть слово'.
_универсальный
Эта функция не определена как виджет и по умолчанию не привязана. Однако это может
будет использоваться для определения виджета, а затем сохранит имя виджета в
функция поле контекста и вызовите систему завершения. Это позволяет настраивать
виджеты завершения с собственным набором настроек стиля, которые можно легко определить. За
Например, чтобы определить виджет, который выполняет нормальное завершение и запускает меню
выбор:
видеть -C Foo полное слово _универсальный
привязка '...' Foo
zstyle ': завершение: foo: *' МЕНЮ Да select = 1
Отметим, в частности, что полный стиль может быть установлен для контекста, чтобы
изменить набор функций, используемых для генерации возможных совпадений. Если _универсальный is
вызывается с аргументами, они передаются в _main_complete как список
комплектующие вместо тех, которые определены полный стилю.
_history_complete_word (\ e /)
Полные слова из истории команд оболочки. Это использует список,
удалить все дубли, sort и остановить стили.
_самый_последний_файл (^ Xm)
Введите имя последнего измененного файла, соответствующее шаблону на
командная строка (которая может быть пустой). Если задан числовой аргумент N, завершить Nth
последний измененный файл. Обратите внимание, что завершение, если оно есть, всегда уникально.
_next_tags (^ Xn)
Эта команда изменяет набор совпадений, используемых для следующего тега, или набор
теги, указанные в порядок тегов стиль или установленный по умолчанию; эти матчи
иначе были бы недоступны. Последовательные вызовы командного цикла
через все возможные наборы тегов.
_read_comp (^ X ^ R)
Запрашивать у пользователя строку и использовать ее для завершения текущего
слово. Для струны есть два варианта. Во-первых, это может быть набор слов
начало `_', например,_files -/', и в этом случае функция с любым
аргументы будут вызываться для генерации завершений. Однозначные части
имя функции будет завершено автоматически (нормальное завершение недоступно
в этот момент), пока не будет введен пробел.
Во-вторых, любая другая строка будет передана как набор аргументов в компадд и должны
следовательно, это выражение, определяющее, что должно быть завершено.
При чтении строки доступен очень ограниченный набор команд редактирования:
`О'и `^H'удалить последний символ; `^U'удаляет строку, а `^C'и `^G'
прервать функцию, а `РЭТ'принимает завершение. Обратите внимание, что строка используется
дословно в командной строке, поэтому аргументы должны быть указаны в соответствии со стандартом
правила оболочки.
После того, как строка была прочитана, следующий вызов _read_comp будет использовать существующие
строка вместо чтения новой. Чтобы принудительно прочитать новую строку, вызовите
_read_comp с числовым аргументом.
_complete_debug (^ X?)
Этот виджет выполняет обычное завершение, но записывает во временный файл след
команд оболочки, выполняемых системой завершения. Каждая попытка завершения
получает свой файл. Команда для просмотра каждого из этих файлов помещается в редактор.
буферный стек.
_complete_help (^ Xh)
Этот виджет отображает информацию об именах контекста, тегах и
функции завершения, используемые при завершении в текущей позиции курсора. Если дано
числовой аргумент, отличный от 1 (как в `ЭСК-2 ^ Xh'), затем используемые стили и
также будут показаны контексты, для которых они используются.
Обратите внимание, что информация о стилях может быть неполной; это зависит от
информация, доступная из вызываемых функций завершения, которые, в свою очередь,
определяется собственными стилями пользователя и другими настройками.
_complete_help_generic
В отличие от других команд, перечисленных здесь, это должно быть создано как обычный виджет ZLE.
а не виджет завершения (т.е. с видеть -N). Он используется для создания справки
с виджетом, привязанным к _универсальный виджет, описанный выше.
Если этот виджет создается с использованием имени функции, как по умолчанию, то
при выполнении он прочитает ключевую последовательность. Ожидается, что это будет связано с вызовом
в функцию завершения, которая использует _универсальный виджет. Этот виджет будет
выполняется, а информация предоставляется в том же формате, что и _complete_help
виджет отображается для контекстного завершения.
Если имя виджета содержит отлаживать, например, если он создан как `видеть -N
_complete_debug_generic _complete_help_generic', он прочитает и выполнит
keystring для общего виджета, как и раньше, но затем генерирует отладочную информацию
как сделано _complete_debug для контекстного завершения.
Если имя виджета содержит нет, он не будет читать ключевую строку, а вместо этого
сделайте так, чтобы при следующем использовании универсального виджета, запущенного в той же оболочке,
эффект, как описано выше.
Виджет работает, устанавливая параметр оболочки ZSH_TRACE_GENERIC_WIDGET который
прочитано _универсальный. Снятие установки параметра отменяет любой ожидающий эффект нет
форме.
Например, после выполнения следующего:
видеть -N _complete_debug_generic _complete_help_generic
привязка '^ x:' _complete_debug_generic
набрав `Сх :', за которым следует последовательность клавиш для универсального виджета, вызовет трассировку
вывод для этого виджета, который будет сохранен в файл.
_complete_tag (^ Xt)
Этот виджет дополняет теги символов, созданные теги or Ctags программы (примечание
нет связи с тегами системы завершения) хранится в файле Тэги и отправлять адресату
формат, используемый теги или имеют теги, в формате, созданном Ctags. Это будет смотреться
резервное копирование иерархии путей для первого появления любого файла; если оба существуют,
файла Тэги является предпочтительным. Вы можете указать полный путь к Тэги or имеют теги файл
установив параметр $ TAGSFILE or $ tagsfile соответственно. Соответствующие
используются теги завершения теги и втеги, после emacs и vi соответственно.
ПОЛЕЗНЫЕ ФУНКЦИИ
Далее следуют описания служебных функций, которые могут быть полезны при написании автозавершения.
функции. Если функции установлены в подкаталогах, большинство из них находится в Система исчисления
подкаталог. Как и в примерах функций для команд в дистрибутиве, утилита
все функции, генерирующие совпадения, следуют соглашению о возврате нулевого статуса, если они
сгенерированные завершения и ненулевое значение, если никакие совпадающие завершения не могут быть добавлены.
Еще две функции предлагает _main_complete функция. Массивы компрефункции и
компост могут содержать имена функций, которые должны вызываться непосредственно перед или
после завершения было опробовано. Функция будет вызываться только один раз, если она явно не
снова вставляется в массив.
_all_labels [ -x ] [ -12ВДж ] день имя DESCR [ команду аргумент ...]
Это удобный интерфейс для _next_label ниже, реализуя
петля, показанная в _next_label пример. В команду и его аргументы призваны
генерировать совпадения. Параметры, хранящиеся в параметре имя автоматически
быть вставленным в аргументs передан в команду. Обычно их ставят прямо
после команду, но если один из аргументs - одинарный дефис, они вставляются
прямо перед этим. Если дефис является последним аргументом, он будет удален из
список аргументов перед команду называется. Это позволяет _all_labels использоваться
почти во всех случаях, когда совпадения могут быть сгенерированы одним вызовом
компадд встроенной командой или вызовом одной из служебных функций.
Например:
локальным Обосн
...
if _запрошено фу; тогда
...
_all_labels Foo Обосн '...' компадд ... - $ совпадения
fi
Завершу струны из спички параметр, используя компадд с дополнительными
параметры, которые будут иметь приоритет над сгенерированными _all_labels.
_альтернативный [ -O имя ] [ -C имя ] спецификация ...
Эта функция полезна в простых случаях, когда доступно несколько тегов.
По сути, он реализует цикл, подобный описанному для _теги функция
внизу.
Используемые теги и действия, выполняемые при запросе тега, описываются с помощью
спецификацияs которые имеют форму:день:DESCR:действие». деньпредлагаются с использованием
_теги и если тег запрошен, действие выполняется с заданным
описание DESCR, действиеs те, которые приняты _аргументы функция
(описано ниже), за исключением `->состояние'и `=...формы.
Так, например, действие может быть простой вызов функции:
_альтернативный \
'пользователи: пользователь: _users' \
'хосты: хост: _hosts'
предлагает имена пользователей и имена хостов как возможные совпадения, сгенерированные _users и
_hosts функции соответственно.
Подобно _аргументы, эта функция использует _all_labels выполнять действия, которые будут
перебрать все наборы тегов. Особое обращение требуется только при наличии
дополнительный допустимый тег, например, внутри функции, вызываемой из _альтернативный.
Вариант `-O имя'используется так же, как _аргументы функция. В
другими словами, элементы имя массив будет передан в компадд когда
выполнение действия.
Подобно _теги эта функция поддерживает -C возможность дать другое имя для
поле контекста аргумента.
_аргументы [ -nswWCRS ] [ -A похлопывание ] [ -O имя ] [ -M спецификация соответствия ]
[ : ] спецификация ...
_аргументы [ выбирать ...] -- [ -i Фиктивный ] [ -s пара ] [ helppec ...]
Эта функция может использоваться, чтобы дать полную спецификацию для завершения для
команда, аргументы которой соответствуют стандартным соглашениям о параметрах и аргументах UNIX.
Возможности обзор
Опции для _аргументы сам должен быть в отдельных словах, т.е. -s -w, Не -ш,
варианты сопровождаются спецификацияs, которые описывают варианты и аргументы анализируемых
команда. спецификацияs, которые описывают флаги опций, должны предшествовать спецификациякоторые описывают
неопциональные («позиционные» или «нормальные») аргументы анализируемой строки. Избегать
неоднозначность, все варианты _аргументы сам может быть отделен от спецификация формы по
одна двоеточие.
`--форма используется для интуитивного спецификация формы из справочного вывода команды
анализируется и подробно описывается ниже. В выбирает для `--форма
в остальном те же параметры, что и в первой форме. Обратите внимание, что `-s'следующий'--' имеет
отличное значение от `-s'предшествующий'--', и оба могут появиться.
Переключатели опций -s, -S, -A, -w и -W повлиять на то, как _аргументы анализирует
проанализировали параметры командной строки. Эти переключатели полезны для команд с
стандартный разбор аргументов.
Варианты _аргументы имеют следующие значения:
-n С этой опцией _аргументы устанавливает параметр НОРМАЛЬНАЯ На должность
первый нормальный аргумент в $ слова массив, т.е. позиция после
конец опций. Если этот аргумент не был достигнут, НОРМАЛЬНАЯ установлен
в -1. Вызывающий должен объявить `целое НОРМАЛЬНАЯ'если -n опция
прошедший; в противном случае параметр не используется.
-s Включите вариант штабелирования для однобуквенных вариантов, при этом несколько
однобуквенные варианты могут быть объединены в одно слово. Например,
два варианта `-x'и `-y'можно объединить в одно слово `-ху'. От
по умолчанию каждое слово соответствует одному имени опции (`-ху'это сингл
опция с именем `xy«).
Параметры, начинающиеся с одного дефиса или знака плюса, подходят для
штабелирование; слова, начинающиеся с двух дефисов, - нет.
Обратите внимание, что -s после -- имеет другое значение, которое задокументировано в
сегмент под названием «Получение спецификация формы из вывода справки '.
-w В комбинации с -s, разрешить наложение параметров, даже если один или несколько
варианты принимают аргументы. Например, если -x принимает аргумент, без -s,
`-ху'рассматривается как единичный (необработанный) вариант; с участием -s, -ху это
вариант с аргументом `y'; с обоими -s и -w, -ху может быть вариант -x
и вариант -y с аргументами еще впереди.
-W Этот вариант принимает -w этап дальше: можно доделать
однобуквенные варианты даже после аргумента, встречающегося в том же слове.
Однако от выполняемого действия зависит, действительно ли параметры будут
завершено на этом этапе. Для большего контроля используйте служебную функцию, например
_сторожить в рамках акции.
-C Изменить контекст параметр для действия вида `->состояние'. Этот
подробно обсуждается ниже.
-R Возвращает статус 300 вместо нуля, когда $ состояние должен быть обработан в
`->string'синтаксис.
-S Не заполняйте параметры после `--'появляется на линии и игнорирует
`--'. Например, с -S, в соответствии
Foobar -x -- -y
`-x'считается вариантом,-y'считается аргументом, и
`--'считается ни тем, ни другим.
-A похлопывание Не заполняйте параметры после первого аргумента в строке, не являющегося параметром.
похлопывание это шаблон, соответствующий всем строкам, которые не следует воспринимать как
аргументы. Например, чтобы сделать _аргументы прекратить завершать варианты после
первый нормальный аргумент, но игнорируя все строки, начинающиеся с дефиса
даже если они не описаны ни одним из оптспецs, форма будет-A
"- *"'.
-O имя
Передайте элементы массива имя в качестве аргументов для функций, вызываемых
выполнять действиес. Это подробно обсуждается ниже.
-M спецификация соответствия
Используйте спецификацию соответствия спецификация соответствия для заполнения названий опций и
ценности. По умолчанию спецификация соответствия разрешает частичное завершение слова после `_' а также
`-', например, завершение `-fb'к'-фу-бар'. По умолчанию спецификация соответствия это:
r: | [_-] = * г: | = *
спецификации: обзор
Каждая из следующих форм является спецификация описание индивидуальных наборов опций или
аргументы в анализируемой командной строке.
n:сообщение:действие
n::сообщение:действие
Это описывает nНормальный аргумент. В сообщение будет напечатано выше
сгенерированные совпадения и действие указывает, что можно завершить в этом
положение (см. ниже). Если перед сообщение
аргумент не является обязательным. Если сообщение содержит только пустое пространство, ничего
будет напечатан над совпадениями, если действие не добавит объяснение
сама струна.
:сообщение:действие
::сообщение:действие
Похоже, но описывает следующий аргумент, какое бы число ни случилось с
быть. Если все аргументы указаны в этой форме в правильном порядке,
числа не нужны.
*:сообщение:действие
* ::сообщение:действие
* :::сообщение:действие
Это описывает, как аргументы (обычно аргументы, не являющиеся опциями,
начиная с - or +) должны быть выполнены, когда ни один из первых двух
формы были предоставлены. Здесь можно указать любое количество аргументов.
мода.
С двумя двоеточиями перед сообщение, слова специальный массив и ТЕКУЩИЙ
специальные параметры изменены, чтобы ссылаться только на обычные аргументы, когда
действие выполняется или оценивается. С тремя двоеточиями перед сообщение
они изменены, чтобы ссылаться только на обычные аргументы, охватываемые этим
описание.
оптспец
оптспец:...
Это описывает вариант. Двоеточие указывает на обработку одного или нескольких
аргументы к варианту; если его нет, предполагается, что
без аргументов.
Следующие формы доступны для начального оптспец, так или иначе
у опции есть аргументы.
*оптспец
Здесь оптспец - одна из оставшихся ниже форм. Это указывает на
после оптспец может повторяться. В противном случае, если соответствующий
опция уже присутствует в командной строке слева от
курсор больше не будет предлагаться.
-имя опции
+имя опции
В простейшем виде оптспец это просто начало имени опции
со знаком минус или плюс, например,-фу'. Первый аргумент в пользу
вариант (если таковой имеется) должен следовать как отдельный слово сразу после
опцию.
Либо из `-+имя опции'и `+-имя опции'может использоваться, чтобы указать, что
-имя опции и +имя опции оба действительны.
Во всех остальных формах ведущий символ `-'можно заменить на или
в паре с `+' этим способом.
-имя опции-
Первый аргумент опции должен стоять сразу после опции.
имя in то же слово. Например, `-фу-:...'указывает, что
завершенная опция и аргумент будут выглядеть как `-фуаргумент'.
-имя опции+
Первый аргумент может появиться сразу после имя опции в то же самое
слово или может появиться отдельным словом после варианта. За
например, `-foo +:...'указывает, что завершенная опция и аргумент
будет выглядеть либо `-фуаргумент'или `-фу аргумент'.
-имя опции=
Аргумент может отображаться как следующее слово или в том же слове, что и
имя параметра при условии, что оно отделено от него знаком равенства,
например,-foo =аргумент'или `-фу аргумент'.
-имя опции=-
Аргумент опции должен стоять после знака равенства в
то же слово и не может использоваться в следующем аргументе.
оптспец[объяснение]
Строка объяснения может быть добавлена к любой из предыдущих форм.
of оптспец заключив его в квадратные скобки, как в `-q [запрос операция]'.
Команда подробный стиль используется, чтобы решить, будут ли строки объяснения
отображаются с опцией в списке завершения.
Если строка объяснения в квадратных скобках не указана, но автоописание
установлен стиль, и для этого описан только один аргумент оптспец,
отображается значение стиля при любом появлении последовательности
`%d'в нем заменено сообщение первого оптарг что следует
оптспец; увидеть ниже.
Возможны варианты с буквальным символом `+'или `='появиться, но это
должен быть заключен в кавычки, например,- \ +'.
Каждый оптарг после оптспец должен иметь одну из следующих форм:
:сообщение:действие
::сообщение:действие
Аргумент опции; сообщение и действие рассматриваются как
обычные аргументы. В первой форме аргумент обязателен,
а во второй форме это необязательно.
Эта группа может повторяться для параметров, которые принимают несколько аргументов.
Иными словами, :сообщение1:action1:сообщение2:action2 указывает, что
option принимает два аргумента.
:*описания:сообщение:действие
:*описания::сообщение:действие
:*описания:::сообщение:действие
Это описывает несколько аргументов. Только последний оптарг для
В этой форме можно указать вариант, принимающий несколько аргументов. Если
описания пусто (т.е. : *:), все остальные слова в строке
должно быть завершено, как описано в действие; в противном случае все слова
до слова, совпадающего с описания должны быть завершены
используя действие.
Множественные двоеточия рассматриваются как `*:...формы для обычных
аргументы: когда сообщение предшествует два двоеточия, слова
специальный массив и ТЕКУЩИЙ специальные параметры изменяются во время
выполнение или оценка действие относиться только к словам
после варианта. Если перед ними стоят три двоеточия, они изменяются
ссылаться только на слова, указанные в этом описании.
Любое буквальное двоеточие в имя опции, сообщение или действие должен предшествовать
обратная косая черта, `\:'.
Каждой из вышеперечисленных форм может предшествовать список в скобках с названиями опций.
и номера аргументов. Если данный параметр находится в командной строке, параметры и
Аргументы, указанные в скобках, не предлагаются. Например, `(-два -три
1) -он:...'завершает опцию `-один'; если это отображается в командной строке,
кредита -два и -три и первый обычный аргумент не будет завершен после
Это. `(-фу):...'определяет завершение обычного аргумента; -фу не будет
завершено, если этот аргумент уже присутствует.
Другие элементы могут появиться в списке исключенных опций, чтобы указать на другие
элементы, которые не должны применяться при совпадении текущей спецификации:
одиночная звезда (*) для остальных аргументов (т. е. указание формы `*:...«);
двоеточие (:) для всех обычных (не опциональных) аргументов; и дефис (-) для всех
опции. Например, если `(*)'появляется перед опцией, и опция появляется на
командная строка, список оставшихся аргументов (те, что показаны в приведенной выше таблице
начиная с `*:') не будет завершен.
Чтобы облегчить повторное использование спецификаций, можно указать любую из вышеперечисленных форм.
с `!'; тогда форма больше не будет заполняться, хотя если опция или
в командной строке появляется аргумент, они будут пропущены как обычно. Основное использование
поскольку это когда аргументы задаются массивом, и _аргументы называется
несколько раз для более конкретных контекстов: при первом вызове `_аргументы
$ global_options'используется, а при последующих вызовах `_аргументы ! $ ^ global_options'.
спецификации: действия
В каждой из форм выше действие определяет, каким должно быть завершение
сгенерировано. За исключением `->string'форма ниже, действие будет выполнен
вызывая _all_labels функция для обработки всех меток тегов. Нет специального обращения с
теги необходимы, если вызов функции не вводит новый.
Функции, вызываемые для выполнения действиеs будет вызываться с элементами
массив, названный `-O имя'вариант в качестве аргументов. Это можно использовать, например,
передать тот же набор параметров для компадд встроенный для всех действиеs.
Формы для действие следующие.
(одиночный пробел без кавычек)
Это полезно, когда аргумент требуется, но это невозможно или
желательно создать для него совпадения. В сообщение будет отображаться, но нет
перечисленные доработки. Обратите внимание, что даже в этом случае двоеточие в конце
сообщение необходим; он может быть опущен только в том случае, если ни один из сообщение ни
действие дано.
(item1 item2 ...)
Один из списка возможных совпадений, например:
: foo: (foo бар баз)
((item1\:описание1 ...))
Аналогично предыдущему, но с описанием каждого возможного совпадения. Примечание
обратная косая черта перед двоеточием. Например,
: foo: ((a \: bar б \: баз))
Матчи будут перечислены вместе с их описаниями, если
описание стиль установлен с ценности тег в контексте.
->string
В этой форме _аргументы обрабатывает аргументы и варианты, а затем
возвращает управление вызывающей функции с параметрами, установленными для указания
состояние обработки; вызывающая функция затем принимает свои собственные меры
для генерации доработок. Например, функции, реализующие состояние
машина может использовать этот тип действия.
где _аргументы встречи действие в `->string'формат, он будет разделен
все начальные и конечные пробелы от string и установите массив состояние в
множество всего strings, для которых должно быть выполнено действие. Элементы
из массива state_descr присвоены соответствующие сообщение поле из
каждый оптарг содержащий такой действие.
По умолчанию и вместе со всеми другими хорошо управляемыми функциями завершения,
_arguments возвращает нулевой статус, если удалось добавить совпадения и ненулевое значение.
в противном случае. Однако если -R предоставляется вариант, _аргументы вместо этого
вернуть статус 300, чтобы указать, что $ состояние нужно обрабатывать.
В дополнение к $ состояние и $ state_descr, _аргументы также устанавливает глобальный
параметры `контекст', `линия'и `opt_args'как описано ниже, и не
сбросить любые изменения, внесенные в специальные параметры, такие как ПРЕФИКС и слова.
Это дает вызывающей функции выбор: сбросить эти параметры или
распространяя в них изменения.
Вызов функции _аргументы по крайней мере с одним действием, содержащим
`->string'поэтому должны объявить соответствующие локальные параметры:
локальным контекст состояние state_descr линия
набрана -A opt_args
для предотвращения _аргументы от изменения глобальной окружающей среды.
{eval-строка}
Строка в фигурных скобках оценивается как код оболочки для генерации совпадений. Если
eval-строка сам по себе не начинается с открывающей скобки или скобки, это
разбить на отдельные слова перед казнью.
= действие
Если же линия индикатора действие начинается с `= '(знак равенства, за которым следует пробел),
_аргументы вставит содержимое аргумент поле текущего
context как новый первый элемент в слова специальный массив и приращение
ценность ТЕКУЩИЙ специальный параметр. Это имеет эффект
вставка фиктивного слова в командную строку завершения без изменения
точка, в которой происходит завершение.
Это наиболее полезно с одним из спецификаторов, которые ограничивают слова на
командная строка, в которой действие должен работать (два и три двоеточия
формы выше). Одно конкретное использование - когда действие сам вызывает _аргументы
на ограниченном диапазоне; необходимо использовать этот прием, чтобы вставить
соответствующее имя команды в диапазон для второго вызова _аргументы в
уметь разбирать строку.
слово...
слово...
Это распространяется на все формы, кроме указанных выше. Если действие начинается с
пробел, оставшийся список слов будет активирован без изменений.
В противном случае он будет вызван с некоторыми дополнительными строками, помещенными после первого
слово; они должны быть переданы как опции компадд встроенный. Они
гарантировать, что состояние, указанное в _аргументы, В частности,
описание опций и аргументов, правильно передано в завершение
команда. Эти дополнительные аргументы берутся из параметра массива
`Обосн'; это будет настроено перед выполнением действие и, следовательно, может быть
упоминается внутри него, обычно в расширении формы `$ explo [@]'
который сохраняет пустые элементы массива.
Во время выполнения действия массив `линия'будет установлен на нормальный
аргументы из командной строки, т.е. слова из командной строки после
имя команды, исключая все параметры и их аргументы. Параметры хранятся в
ассоциативный массив `opt_args'с именами параметров в качестве ключей и их аргументами в качестве
ценности. Для опций, которые имеют более одного аргумента, они даются как один
строка, разделенная двоеточиями. Перед всеми двоеточиями в исходных аргументах
с обратной косой чертой.
Параметр `контекст'устанавливается при возврате к вызывающей функции для выполнения
действие формы `->string'. Задается массив элементов, соответствующих
элементы $ состояние. Каждый элемент - подходящее имя для поля аргумента
контекст: либо строка формы `вариант-опт-n' для nаргумент
опция -опт, или строка вида `аргументn' для nАргумент. За
аргументы rest, то есть аргументы в конце списка, не обрабатываемые позицией, n
это строка `отдых'. Например, при завершении аргумента -o вариант,
имя - `вариант-о-1', в то время как для второго нормального (не опционального) аргумента это
`аргумент-2'.
Кроме того, во время оценки действие имя контекста в контекст
изменен, чтобы добавить ту же строку, которая хранится в контекст
Параметр.
Опция -C говорит _аргументы Изменить контекст параметр для действия
форма `->состояние'. Это стандартный параметр, используемый для отслеживания
текущий контекст. Вот он (а не контекст array) следует сделать локальным для
вызывающая функция, чтобы не передавать обратно измененное значение и должна быть инициализирована
к текущему значению в начале функции:
локальным curcontext = "$ curcontext"
Это полезно, когда несколько состояний не могут быть действительными вместе.
Указание с разными Наборы of кредита
Можно указать несколько наборов параметров и аргументов с наборами
разделены одинарными дефисами. Спецификации перед первым дефисом (если есть)
используются всеми остальными наборами. Первое слово в любом другом наборе дает
имя набора, которое может отображаться в списках исключений в спецификациях, либо
отдельно или перед одним из возможных значений, описанных выше. Во втором случае
`-'должно стоять между этим именем и оставшейся частью.
Например:
_аргументы \
-a \
- set1 \
-c \
- set2 \
-d \
': arg: (x2 y2) '
Это определяет два набора. Когда командная строка содержит параметр `-c', `-d'
вариант и аргумент не будут считаться возможными дополнениями. Когда это
содержит `-d'или аргумент, опция `-c'не будет рассматриваться. Тем не мение,
после `-a'оба набора будут по-прежнему считаться действительными.
Если имя, данное для одного из взаимоисключающих наборов, имеет форму `(имя)'
тогда будет завершено только одно значение из каждого набора; формально все
спецификации являются взаимоисключающими со всеми другими спецификациями в том же наборе.
Это полезно для определения нескольких наборов взаимоисключающих опций.
и в которых параметры являются псевдонимами друг для друга. Например:
_аргументы \
-a -b \
- '(компресс)' \
{-c, - compress} '[сжать]' \
- '(распаковать)' \
{-d, - распаковать} '[распаковать]'
Поскольку код завершения должен анализировать командную строку отдельно для каждого набора, это
форма аргументации медленная и должна использоваться только при необходимости. Полезный
альтернатива часто является спецификацией опции с остальными аргументами (как в
`-foo: *: ...'); здесь вариант -фу проглатывает все оставшиеся аргументы как
описывается оптарг определения.
Выведение спецификация формы от помощь выходной
Вариант `--'позволяет _аргументы выработать названия длинных опций, которые
поддержать `--Помогите'опция, которая является стандартной для многих команд GNU. Команда
слово вызывается с аргументом `--Помогите'и вывод проверяется на предмет имен опций.
Ясно, что может быть опасно передавать это командам, которые могут не поддерживать это
вариант, так как поведение команды не указано.
Помимо параметров,_аргументы --'попытается вывести типы аргументов
доступны для опций, когда форма `--выбирать=волна' является действительным. Также возможно
предоставить подсказки, изучив текст справки команды и добавив helppec
форма `описания:сообщение:действие'; обратите внимание, что другие _аргументы спецификация формы не используются.
Команда описания сопоставляется с текстом справки для параметра, и если он соответствует
сообщение и действие используются так же, как и для других спецификаторов аргументов. Частный случай
`*:'означает оба сообщение и действие пусты, что вызывает
параметры, не имеющие описания в выводе справки, должны быть упорядочены в списках перед
варианты, у которых есть описание.
Например:
_аргументы -- '* \ *: toggle: (да нет)' \
'* = ФАЙЛ *: файл: _files' \
'* = КАТАЛОГ *: каталог: _files - / ' \
'* = ПУТЬ *: каталог: _files - / '
Здесь `Да'и `нет'будет завершено как аргумент опций, описание которых
оканчивается звездой; имена файлов будут завершены для параметров, содержащих подстроку
`= ФАЙЛ'в описании; и каталоги будут заполнены для опций, чьи
описание содержит `= DIR'или `= ПУТЬ'. Последние три фактически используются по умолчанию и
поэтому не нужно указывать явно, хотя можно переопределить использование
эти шаблоны. Типичный текст справки, в котором используется эта функция:
-С, --directory = DIR изменение в каталог DIR
так что приведенные выше спецификации приведут к тому, что каталоги будут заполнены после
`- каталог', но не после `-C'.
Отметим также, что _аргументы пытается автоматически выяснить, является ли аргумент в пользу
опция не является обязательной. Это можно указать явно, удвоив двоеточие перед
сообщение.
Если же линия индикатора описания заканчивается на `(-)', это будет удалено из шаблона и действие
будет использоваться только сразу после символа `=', а не в следующем слове. Это
поведение нормальной спецификации, определенной с помощью формы `=-'.
`_аргументы --'может сопровождаться опцией `-i паттеранами'давать образцы
для вариантов, которые не дорабатываются. Выкройки могут быть даны как название
параметра массива или в виде буквального списка в круглых скобках. Например,
_аргументы -- -i \
"(- (en | dis )able-ОСОБЕННОСТЬ *)"
приведет к тому, что завершение будет игнорировать параметры `- включить-ФУНКЦИЯ' а также
`--disable-ФУНКЦИЯ'(этот пример полезен с GNU конфигурировать).
`_аргументы --'форма также может сопровождаться опцией `-s пара' описать
варианты псевдонимов. В пара состоит из списка чередующихся паттернов и
соответствующие замены, заключенные в скобки и заключенные в кавычки, так что он образует единый
аргумент слово в _аргументы вызов.
Например, некоторые конфигурировать-script вывод справки описывает параметры только как
`--enable-foo', но сценарий также принимает отрицательную форму `--disable-foo'. К
разрешить заполнение второй формы:
_аргументы -- -s "((#s) - включить- --запрещать-)"
Прочее ноты
Наконец, обратите внимание, что _аргументы обычно ожидается, что это будет основная функция, обрабатывающая
любое завершение, для которого оно используется. Может иметь побочные эффекты, которые изменяют
обработка любых совпадений, добавленных другими функциями, вызванными после него. Объединить
_аргументы с другими функциями эти функции должны вызываться либо до
_аргументыкак действие в спецификация, или в обработчиках для `->состояниедействия.
Вот более общий пример использования _аргументы:
_аргументы '-l +: слева граница:' \
'-формат: бумага размер: (буква A4) ' \
'* -copy: output файл: _files :: разрешение: (300 600) ' \
': постскриптум файл: _files -g \ *. \ (пс \ | eps \) ' \
'*:страница номер:'
Здесь описаны три варианта:-l', `-формат', и `-копию'. Первый занимает один
аргумент, описанный как `оставил граница', для которого не будет предложено завершение, потому что
пустого действия. Его аргумент может идти сразу после `-l' или это может быть
дается как следующее слово в строке.
`-формат' опция принимает один аргумент в следующем слове, описанном как `статье размер'
для которых только строки `письмо'и `A4' будет завершена.
`-копию' может появляться более одного раза в командной строке и занимает два
аргументы. Первый является обязательным и будет заполнен как имя файла. Секунда
является необязательным (из-за второго двоеточия перед описанием `разрешающая способность') и
будет комплектоваться из строк `300'и `600'.
Последние два описания говорят о том, что должно быть завершено в качестве аргументов. Первое
описывает первый аргумент как `постскриптум файл' и создает файлы, оканчивающиеся на `ps'
или `прибыль на акцию' будет завершена. Последнее описание дает всем остальным аргументам
описание `страница номера', но не предлагает завершения.
_cache_invalid кэш_идентификатор
Эта функция возвращает нулевой статус, если кэш завершений, соответствующий
данный идентификатор кеша нуждается в восстановлении. Это определяется путем поиска
кеш-политика стиль для текущего контекста. Это должно предоставить имя функции
который запускается с полным путем к соответствующему файлу кеша в качестве единственного аргумента.
Пример:
_example_caching_policy () {
# перестраивать if кэш is больше чем a неделя старый
локальным -a старый
старыйp=( "$1"(Nm+7) )
(( $#oldp ))
}
_call_function возвращают имя [ аргумент ...]
Если функция имя существует, он вызывается с аргументами аргументс. возвращают
аргумент дает имя параметра, в котором статус возврата из функции
имя следует хранить; если возвращают пусто или одиночный дефис игнорируется.
Статус возврата _call_function сама равна нулю, если функция имя существует и
был вызван и ненулевой в противном случае.
_call_program день string ...
Эта функция предоставляет пользователю механизм, позволяющий отменить использование внешнего
команда. Он ищет команду стиль с прилагаемым день. Если стиль
set, его значение используется в качестве команды для выполнения. То strings от звонка к
_call_program, или из стиля, если он установлен, объединяются с пробелами между ними
и результирующая строка оценивается. Статус возврата — это статус возврата
позвала команда.
_комбинация [ -s описания ] день стиль спецификация ... поле выбирает ...
Эта функция используется для завершения комбинаций значений, например пар
имена хостов и пользователей. То стиль аргумент дает стиль, который определяет
пары; он просматривается в контексте с день указано.
Имя стиля состоит из имен полей, разделенных дефисами, например
`пользователи-хосты-порты'. Для каждого поля значение уже известно, спецификация
форма `поле=описания' дано. Например, если в командной строке до сих пор указано
пользователь `PWS', аргумент 'пользователи = pws' должно появиться.
Следующий аргумент без знака равенства принимается за имя поля, для которого
Дополнения должны быть сгенерированы (предположительно, не одно из полеs, для которых
стоимость известна).
Сгенерированные совпадения будут взяты из значения стиля. Они должны
содержать возможные значения комбинаций в соответствующем порядке (пользователи,
хосты, порты в примере выше). Различные поля значения для
разные поля разделяются двоеточиями. Это можно изменить с помощью опции -s
в _комбинация который задает шаблон. Обычно это класс символов, т.к.
например,-s "[:@]"' в случае пользователи-хосты стиль. Каждый
`поле=описания' спецификация ограничивает дополнения, которые применяются к элементам
стиль с соответствующими полями.
Если для данного тега не определен стиль с данным именем или если ни один из
строки в значении стиля совпадают, но предшествует имя функции обязательного поля
символом подчеркивания, эта функция будет вызываться для генерации совпадений.
Например, если нет `пользователи-хосты-порты' или нет соответствующего имени хоста, когда хост
требуется, функция `_hosts' будет вызван автоматически.
Если одно и то же имя используется более чем для одного поля, в обоих полях `поле=описания' а также
аргумент, задающий имя заполняемого поля, номер
Поле (начиная с единицы) может быть указано после имени поля, отделенное от него символом
двоеточие.
Все аргументы после имени обязательного поля передаются в компадд при создании
соответствует значению стиля или функциям для полей, если они
называется.
_описывать [-12JVx] [ -оО | -t день ] DESCR name1 [ name2 ] [ выбирать ...]
[ -- name1 [ name2 ] [ выбирать ...] ...]
Эта функция связывает завершения с описаниями. Несколько групп разделены
by -- могут быть поставлены, возможно, с различными вариантами комплектации выбиратьs.
Команда DESCR берется как строка для отображения над совпадениями, если формат стиль для
описывающие тег установлен. Далее следует одно или два имени массивов
с последующими вариантами перехода к компадд. Первый массив содержит возможные
завершения с их описанием в виде `завершение:описание'. Любой
буквальные двоеточия в завершение необходимо указывать с обратной косой чертой. Если второй массив
учитывая, что он должен иметь такое же количество элементов, как и первый; в этом случае
соответствующие элементы добавляются как возможные дополнения вместо завершение
строки из первого массива. Список завершения сохранит описания
из первого массива. Наконец, может появиться набор вариантов завершения.
Если опция `-o' появляется перед первым аргументом, добавленные совпадения будут
трактуются как имена параметров команды (примечание, а не параметры оболочки), обычно следующие за
`-', `--'или `+' в командной строке. В таком случае _описывать использует
со скрытым префиксом, префикс необходим и подробный стили, чтобы узнать, должны ли строки
быть добавлены как дополнения и если описания должны быть показаны. Без `-o'
вариант, только подробный стиль используется для определения того, как должны отображаться описания. Если
`-O' используется вместо '-o', параметры команды заполняются, как указано выше, но _описывать
не справится с префикс необходим стилю.
Достаточно воспользоваться ИИ-ассистентом презентера -t вариант а день можно указать. По умолчанию `ценности' или, если -o
дается вариант, `кредита'.
Варианты -1, -2, -J, -V, -x передаются _next_label.
Если выбрано сгруппированный по списку стиле строки с одинаковым описанием будут
появляются вместе в списке.
_описывать использует _all_labels функция для генерации совпадений, поэтому она не
должны появляться внутри цикла над метками тегов.
_описание [ -x ] [ -12ВДж ] день имя DESCR [ спецификация ...]
Эту функцию не следует путать с предыдущей; он используется как помощник
функция создания опций для компадд. Он похоронен внутри многих высших
функции завершения уровня, поэтому часто их не нужно вызывать напрямую.
Перечисленные ниже стили тестируются в текущем контексте с использованием заданного день,
результирующие варианты для компадд помещаются в массив с именем имя (это
традиционно `Обосн', но это соглашение не соблюдается). Описание для
соответствующий набор совпадений передается функции в DESCR.
Тестируемые стили: формат, в других материалах-носителях, согласовани, игнорируемые шаблоны и имя группы.
Команда формат стиль сначала тестируется для данного день а затем для описывающие
тег, если значение не было найдено, в то время как остальные проверяются только для тега, указанного как
первый аргумент. Функция также вызывает _настраивать который тестирует еще несколько стилей.
Строка, возвращаемая формат стиль (если есть) будет изменен так, чтобы
последовательность `%d'заменяется DESCR дается в качестве третьего аргумента без каких-либо
начальные или конечные пробелы. Если после удаления пробела DESCR is
пустая строка, стиль формата не будет использоваться, а параметры помещаются в
имя массив не будет содержать строку пояснения, которая будет отображаться над
Матчи.
If _описание вызывается с более чем тремя аргументами, дополнительный спецификацияs
должен иметь видколесница:ул'. Эти замены управляющей последовательности поставляются для
формат стиль: каждое появление `%колесница' будет заменено на string.
Если же линия индикатора -x указана опция, описание будет передано компадд используя -x
вариант вместо стандартного -X. Это означает, что описание будет
отображается, даже если нет соответствующих совпадений.
Варианты, помещенные в массив имя принимать во внимание имя группы стиль, так
матчи помещаются в отдельную группу там, где это необходимо. Обычно у группы есть
элементы отсортированы (путем передачи опции -J в компадд), но если вариант запуска
с `-V', `-J', `-1', или `-2'передается _описание, этот вариант будет
включены в массив. Следовательно, группа пополнения может быть
несортированный, указав опцию `-V', `-1V', или `-2V'.
В большинстве случаев функция будет использоваться следующим образом:
локальным Обосн
_описание файлов Обосн файл
компадд "$expl[@]" - "$ файлы[@]"
Обратите внимание на использование параметра Обосн, дефис и список совпадений. Почти
все звонки в компадд в системе завершения использовать аналогичный формат; это
гарантирует, что указанные пользователем стили правильно передаются встроенным функциям, которые
реализовать внутренности завершения.
_отправлять контекст string ...
Это устанавливает текущий контекст в контекст и ищет функции завершения для
обрабатывать этот контекст, просматривая список имен команд или специальных
контексты (как описано выше для компдеф) задано как stringс. Первое завершение
функция, которая должна быть определена для одного из контекстов в списке, используется для генерации
Спички. Как правило, последний string is По умолчанию- вызвать функцию по умолчанию
завершение для использования в качестве запасного варианта.
Функция устанавливает параметр $ сервис до string опробовано, и устанавливает
контекст/команда поле (четвертое) $curcontext параметр к контекст
указан в качестве первого аргумента.
_files Функция _files призывы _path_files со всеми аргументами он был передан, кроме
для -g и -/. Использование этих двух опций зависит от настройки
файлы-шаблоны стилю.
Эта функция принимает полный набор опций, разрешенных _path_files, описано
внизу.
_gnu_generic
Эта функция представляет собой простую оболочку вокруг _аргументы функция, описанная выше.
Его можно использовать для автоматического определения длинных опций, понятных командам.
которые создают список при передаче опции `--Помогите'. Он предназначен для использования в качестве
самостоятельная функция завершения верхнего уровня. Например, чтобы включить опцию
завершение для команд Foo и бар, Используйте
компдеф _gnu_generic Foo бар
после звонка составить.
Система заканчивания в том виде, в каком она поставляется, консервативна в использовании этой функции,
так как важно убедиться, что команда понимает опцию `--Помогите'.
_сторожить [ кредита ] описания DESCR
Эта функция отображает DESCR if описания соответствует строке, которая должна быть завершена. это
предназначен для использования в действие для спецификаций, переданных _аргументы и
аналогичные функции.
Статус возврата равен нулю, если сообщение было отображено, а слово для завершения
не пусто и не равно нулю в противном случае.
Команда описания может предшествовать любой из вариантов, понимаемых компадд , которые являются
перешел от _описание, А именно -M, -J, -V, -1, -2, -n, -F и -X, Все
эти параметры будут игнорироваться. Это удобно вписывается в передачу аргументов
условности действий для _аргументы.
В качестве примера рассмотрим команду, принимающую параметры -n и -никто, Где -n должен быть
за которым следует числовое значение в том же слове. Используя:
_аргументы '-н-: :_сторожить "[0-9]#" "числовой ценность"' '-никто'
_аргументы можно заставить отображать сообщение `числовой ценностное ' и завершить
варианты после `-н'. Если `-n' уже сопровождается одной или несколькими цифрами
(схема передана _сторожить) будет отображаться только сообщение; если `-n' является
за которым следует другой символ, завершаются только опции.
_сообщение [ -R12 ] [ -ВиДжей группы ] DESCR
_сообщение -e [ день ] DESCR
Команда DESCR используется так же, как и третий аргумент _описание
функция, за исключением того, что результирующая строка всегда будет отображаться независимо от того,
были сгенерированы совпадения. Это полезно для отображения справочного сообщения в местах
где никакие завершения не могут быть сгенерированы.
Команда формат стиль изучается с Сообщения тег для поиска сообщения; обычно
день, описывающие , используется только в том случае, если стиль не задан первым.
Если же линия индикатора -r указан вариант, стиль не используется; в DESCR воспринимается буквально как
строка для отображения. Это наиболее полезно, когда DESCR исходит из предварительно обработанного
список аргументов, который уже содержит расширенное описание.
Команда -12ВДж варианты и группы передаются компадд и, следовательно, определить группу
добавляется строка сообщения.
Второй -e форма дает описание для завершения с тегом день быть показанным
даже если для этого тега нет совпадений. Эта форма называется _аргументы in
событие отсутствия действия для спецификации опции. Тег может быть
опущен, и если да, то тег берется из параметра $куртаг; это поддерживается
по системе завершения и так обычно правильно. Обратите внимание, что если нет
совпадает во время вызова этой функции, compstate [вставить] очищается, так что
дополнительные совпадения, сгенерированные позже, не вставляются в командную строку.
_multi_parts сентябрь массив
Аргумент сентябрь является символом-разделителем. То массив может быть либо именем
параметр массива или литеральный массив в форме `(фу бар)', список в скобках
слова, разделенные пробелом. Возможными дополнениями являются строки из
множество. Однако каждый фрагмент, ограниченный сентябрь будет заполняться отдельно. За
Например, _tar функция использует `_multi_parts / дорожка' для завершения частичного файла
пути из заданного массива полных путей к файлам.
Команда -i Вариант причины _multi_parts вставить уникальное совпадение, даже если это требует
необходимо вставить несколько разделителей. Обычно это не ожидаемое поведение
с именами файлов, но некоторые другие типы завершения, например, с
фиксированный набор возможностей, возможно, больше подходит для этой формы.
Как и другие служебные функции, эта функция принимает `-V', `-J', `-1', `-2',
`-n', `-f', `-X', `-M', `-P', `-S', `-r', `-R', и `-q' опции и передает их
компадд встроенный.
_next_label [ -x ] [ -12ВДж ] день имя DESCR [ вариант ...]
Эта функция используется для реализации цикла по различным меткам тегов для
конкретный тег, как описано выше для порядок тегов стиль. При каждом вызове проверяет
чтобы увидеть, есть ли еще метки тегов; если есть, возвращает нулевой статус,
иначе ненулевое. Поскольку эта функция требует установки текущего тега, она должна
всегда следуйте призыву к _теги or _запрошено.
Команда -x12VJ параметры и первые три аргумента передаются в _описание
функция. Там, где это уместно, день будет заменен тегом label в этом вызове.
Любое описание, данное в порядок тегов стиль предпочтительнее DESCR перешел к
_next_label.
Команда вариантдается после DESCR устанавливаются в параметре, заданном имя, и поэтому
должны быть переданы компадд или любая другая функция, вызываемая для добавления совпадений.
Вот типичное использование этой функции для тега Foo. Призыв к _запрошено
определяет, является ли тег Foo требуется вообще; петля над _next_label справляется с любым
метки, определенные для тега в порядок тегов стилю.
локальным Обосн ret = 1
...
if _запрошено фу; тогда
...
в то время как _next_label Foo Обосн '...'; do
компадд "$expl[@]" ... && ret = 0
сделанный
...
fi
возвращают в отставке
_нормальный
Это стандартная функция, вызываемая для обработки завершения вне каких-либо специальных
-контекст-. Он вызывается как для завершения командного слова, так и для аргументов
для команды. Во втором случае _нормальный ищет специальное завершение для этого
команда, и если ее нет, она использует завершение для По умолчанию- контекст.
Второе использование — перепроверить командную строку, заданную параметром $ слова массив и
$ТЕКУЩИЙ параметр после того, как они были изменены. Например, функция
_precommand, который завершается после спецификаторов перед командой, таких как поЬир, удаляет
первое слово из слова массив, уменьшает ТЕКУЩИЙ параметр, затем вызывает
_нормальный снова. Эффект в том, что `поЬир CMD ...' трактуется так же, как
`CMD ...'.
Если имя команды соответствует одному из шаблонов, заданных одним из параметров -p or
-P в компдеф, вызывается соответствующая функция завершения, а затем
параметр _compskip проверено. Если он установлен, завершение завершается на этом
точку, даже если совпадений не найдено. Это тот же эффект, что и в
-первый- контекст.
_options
Это можно использовать для завершения имен опций оболочки. Он предоставляет сопоставитель
спецификация, которая игнорирует начальный `нет', игнорирует символы подчеркивания и позволяет
буквы верхнего регистра, чтобы соответствовать их аналогам нижнего регистра (например, `земной шар',
`ноглоб', `NO_GLOB' все завершено). Любые аргументы распространяются на
компадд встроенный.
_options_set и _options_unset
Эти функции завершают только установленные или неустановленные параметры с одинаковым соответствием.
спецификация, используемая в _options функции.
Обратите внимание, что вам нужно раскомментировать несколько строк в _main_complete функция для
эти функции работают должным образом. Рассматриваемые строки используются для хранения
настройки параметров действуют до того, как виджет завершения локально установит параметры, которые он
потребности. Следовательно, эти функции обычно не используются системой заканчивания.
_параметры
Это используется для завершения имен параметров оболочки.
Вариант `-g описания' ограничивает завершение параметрами, тип которых соответствует
описания. Тип параметра показан символом `Распечатать ${(т)остановить}', следовательно
разумное использование `*' в описания вероятно необходимо.
Все остальные аргументы передаются в компадд встроенный.
_path_files
Эта функция используется во всей системе завершения для завершения имен файлов. Это
позволяет завершать частичные пути. Например, строка `/u/i/s/сиг' может быть
завершено до `/usr/include/sys/signal.h'.
Варианты, принятые обоими _path_files и _files составляют:
-f Заполните все имена файлов. Это значение по умолчанию.
-/ Указывает, что должны быть заполнены только каталоги.
-g описания
Указывает, что только файлы, соответствующие описания должно быть завершено.
-W пути
Указывает префиксы пути, которые должны быть добавлены к строке из
командную строку для создания имен файлов, но это не должно быть вставлено как
завершений, не показанных в списках завершений. Здесь, пути может быть имя
параметра массива, литеральный список путей, заключенный в круглые скобки, или
абсолютный путь.
-F игнорируемые файлы
Это ведет себя как для соответствующей опции в компадд встроенный Это
дает прямой контроль над тем, какие имена файлов следует игнорировать. Если вариант
нет, то игнорируемые шаблоны стиль.
Оба формата _path_files и _files также примите следующие параметры, которые передаются
компадд:`-J', `-V', `-1', `-2', `-n', `-X', `-M', `-P', `-S', `-q', `-r', а также
`-R'.
Наконец, _path_files функция использует стили расширять, двусмысленный, специальные директоры,
список суффиксов и файловая сортировка описано выше.
_pick_variant [ -b встроенная метка ] [ -c команду ] [ -r имя ]
этикетка=описания ... этикетка [ аргумент ...]
Эта функция используется для разрешения ситуаций, когда требуется одно имя команды.
более одного типа обработки, либо потому, что она имеет более одного варианта, либо
потому что между двумя разными командами есть конфликт имен.
Команда для запуска берется из первого элемента массива слова если это
перекрывается опцией -c. Эта команда запускается, и ее вывод сравнивается
с серией узоров. Аргументы, которые будут переданы команде, могут быть указаны
в конце после всех остальных аргументов. Шаблоны, которые нужно попробовать, даны по порядку.
по аргументам этикетка=описания; если вывод `команду аргумент ...' содержит
описания, то этикетка выбран в качестве метки для варианта команды. Если ни один из
шаблоны совпадают, выбирается последняя метка команды и возвращается статус 1.
Если `-b встроенная метка', команда проверяется, чтобы убедиться, что она предоставлена
как встроенная оболочка, возможно, автозагружаемая; если да, то этикетка встроенная метка выбран
как метка для варианта.
Если `-r имя' дается, этикетка выбранный хранится в параметре с именем имя.
Результаты также кэшируются в _cmd_variant ассоциативный массив, индексированный
имя запуска команды.
_regex_arguments имя спецификация ...
Эта функция генерирует функцию завершения имя что соответствует спецификациям
спецификацияs, набор регулярных выражений, как описано ниже. После запуска
_regex_arguments, функция имя следует вызывать как обычное завершение
функция. Сопоставляемый шаблон задается содержимым слова массив вверх
к текущей позиции курсора, объединенной нулевыми символами; нет цитаты
применены.
Аргументы сгруппированы в виде наборов альтернатив, разделенных символом `|', которые пытаются
одно за другим, пока одно не совпадет. Каждая альтернатива состоит из одного или нескольких
спецификации, которые проверяются слева направо, при этом каждый шаблон соответствует
удаляются по очереди из тестируемой командной строки, пока вся группа
удается или до тех пор, пока не потерпит неудачу; в последнем случае пробуется следующая альтернатива.
Эту структуру можно повторить на произвольную глубину, используя круглые скобки; соответствие
протекает изнутри наружу.
Специальная процедура применяется, если ни один тест не прошел успешно, но оставшаяся командная строка
строка не содержит нулевого символа (подразумевается, что оставшееся слово является тем, для которого
завершения должны быть сгенерированы). Цель завершения ограничена
оставшееся слово и любое действиеs для соответствующих шаблонов выполняются. В
в этом случае из строки командной строки ничего не удаляется. Получатель чего-то
оценка действиеs можно определить по порядок тегов стиль; различные
форматы, поддерживаемые _альтернативный может быть использован в действие, DESCR используется для
настройка параметра массива Обосн.
Аргументы спецификации принимают одну из следующих форм, в которых метасимволы, такие как
как `(', `)', `#'и `|' следует цитировать.
/описания/ [%смотреть вперед%] [-охрана] [:день:DESCR:действие]
Это один примитивный компонент. Функция проверяет, является ли
комбинированный узор `(#б)((#Б)описания)смотреть вперед*' соответствует командной строке
нить. Если так, `охрана' оценивается, и его статус возврата проверяется на
определить успешность теста. То описания строка `[]' гарантировано
никогда не соответствовать. То смотреть вперед не удаляется из командной строки перед
проверяется следующий образец.
Аргумент, начинающийся с : используется так же, как аргумент
_альтернативный.
Компонент используется следующим образом: описания проверяется, является ли компонент
уже существует в командной строке. Если это так, любое следующее
спецификации изучаются, чтобы найти что-то для завершения. Если компонент
достигается, но такой шаблон еще не существует в командной строке, строка
содержащий действие используется для генерации совпадений для вставки в этой точке.
/описания/+ [%смотреть вперед%] [-охрана] [:день:DESCR:действие]
Это похоже на `/описания/ ...', но левая часть командной строки
строка (т.е. часть, уже совпадающая с предыдущими шаблонами) также
считается частью цели завершения.
/описания/- [%смотреть вперед%] [-охрана] [:день:DESCR:действие]
Это похоже на `/описания/ ...' но действиес текущего и
ранее сопоставленные шаблоны игнорируются, даже если следующие `описания'
соответствует пустой строке.
( спецификация )
Скобки могут использоваться для групп спецификацияс; обратите внимание, что каждая скобка является одиночной
аргумент _regex_arguments.
спецификация # Это позволяет любое количество повторений спецификация.
спецификация спецификация
Эти два спецификацияs должны сопоставляться один за другим, как описано выше.
спецификация | спецификация
Любой из двух спецификацияs можно сопоставить.
Функция _regex_words может использоваться как вспомогательная функция для генерации совпадений для
набор альтернативных слов, возможно, с собственными аргументами в качестве командной строки
аргумент.
Примеры:
_regex_arguments _tst /$'[^\0]#\0'/ \
/$'[^\0]#\0'/ :'compadd ааа'
Это генерирует функцию _tst что завершает ааа как его единственный аргумент. То день
и описание потому что действие было опущено для краткости (это работает, но не
рекомендуется при обычном использовании). Первый компонент соответствует командному слову, которое
произвольный; второй соответствует любому аргументу. Поскольку аргумент также произволен,
любой следующий компонент не будет зависеть от ааа присутствие.
_regex_arguments _tst /$'[^\0]#\0'/ \
/$'ааа\0'/ :'compadd ааа'
Это более типичное использование; это похоже, но любые следующие шаблоны будут только
соответствует, если ааа присутствовал в качестве первого аргумента.
_regex_arguments _tst /$'[^\0]#\0'/ \( \
/$'ааа\0'/ :'compadd ааа' \
/$'ббб\0'/ :'compadd ббб \) \#
В этом примере может быть заполнено неопределенное количество аргументов команды. Странный
аргументы завершаются как ааа и даже аргументы как BBB. Завершение не выполняется, если
набор ааа и BBB аргументы до того, как текущий сопоставляется правильно.
_regex_arguments _tst /$'[^\0]#\0'/ \
\( /$'ааа\0'/ :'compadd ааа' \| \
/$'ббб\0'/ :'compadd ббб \) \#
Это похоже, но либо ааа or BBB может быть завершен для любого аргумента. В этом
, признали _regex_words можно использовать для создания подходящего выражения для
аргументы.
_regex_words день описание спецификация ...
Эта функция может использоваться для генерации аргументов для _regex_arguments команду
который может быть вставлен в любой момент, где ожидается набор правил. То день и
описание дать стандартный тег и описание, относящиеся к текущему контексту.
Каждый спецификация содержит два или три аргумента, разделенных двоеточием: обратите внимание,
в этом случае нет начального двоеточия.
Каждый спецификация дает одно из набора слов, которые могут быть завершены в этот момент, вместе
с аргументами. Таким образом, он примерно эквивалентен _аргументы функция при использовании
в нормальном (не регулярном выражении) завершении.
Часть спецификация перед первым двоеточием слово, которое нужно завершить. Это может
содержать *; все слово до и после * завершена, а только
текст перед * требуется для сопоставления контекста, чтобы в дальнейшем
аргументы могут быть завершены после сокращенной формы.
Вторая часть спецификация является описанием завершаемого слова.
Необязательная третья часть спецификация описывает, как слова, следующие за одним существом
завершены, сами должны быть завершены. Он будет оцениваться, чтобы избежать
проблемы с цитированием. Это означает, что обычно он содержит ссылку на
массив, содержащий ранее сгенерированные аргументы регулярного выражения.
Опция -t срок указывает терминатор для слова вместо обычного пробела.
Это обрабатывается как автоматически удаляемый суффикс в порядке опции -s сентябрь в
_ценности.
Результат обработки через _regex_words помещается в массив Ответить, который
следует сделать локальным для вызывающей функции. Если набор слов и аргументов
может совпадать неоднократно, # должны быть добавлены к сгенерированному массиву в этом
пункт.
Например:
локальным -a Ответить
_regex_words mydb-команды 'mydb команды ' \
'добавить: добавить an запись в mydb:$mydb_add_cmds' \
'покажи покажи Записи in mydb'
_regex_arguments _mydb "$ответ[@]"
_mydb "$ @"
Это показывает функцию завершения для команды mydb который принимает две команды
аргументы, добавить и произошел. произошел не принимает аргументов, в то время как аргументы для добавить встали на сторону
уже подготовлен в массиве mydb_add_cmds, вполне возможно, по предыдущему вызову
в _regex_words.
_запрошено [ -x ] [ -12ВДж ] день [ имя DESCR [ команду [ аргумент ...]]
Эта функция вызывается, чтобы решить, зарегистрирован ли уже тег при вызове
_теги (см. ниже) был запрошен пользователем и, следовательно, завершение должно быть
выступал за это. Возвращает нулевой статус, если тег запрошен и ненулевой.
в противном случае. Функция обычно используется как часть цикла по различным тегам, например:
следующим образом:
_теги Foo бар Баз
в то время как _теги; do
if _запрошено фу; тогда
... # выполнять завершение для Foo
fi
... # тест имеют теги бар и Баз in то же путь
... # выход поиска if спички были генерируется
сделанный
Обратите внимание, что проверка того, были ли сгенерированы совпадения, не выполняется до тех пор, пока
конец _теги петля. Это делается для того, чтобы пользователь мог установить порядок тегов стиль для
указать набор тегов, которые должны быть заполнены одновременно.
If имя и DESCR даны, _запрошено называет _описание функционировать с этими
аргументы вместе с параметрами, переданными _запрошено.
If команду дано _all_labels функция будет вызываться немедленно с
одни и те же аргументы. В простых случаях это позволяет выполнить тест для
тег и сопоставление за один раз. Например:
локальным Обосн ret = 1
_теги Foo бар Баз
в то время как _теги; do
_запрошено Foo Обосн 'описание' \
компадд Foobar фобаз && ret = 0
...
(( в отставке )) || перерыв
сделанный
Если же линия индикатора команду Не компадд, тем не менее он должен быть готов к тому же
настройки.
_retrive_cache кэш_идентификатор
Эта функция извлекает информацию о завершении из файла, указанного
кэш_идентификатор, хранящийся в каталоге, указанном путь к кешу стиль, который
по умолчанию ~/.zcompcache. Статус возврата равен нулю, если поиск был успешным.
Он будет пытаться восстановить только в том случае, если использование кеша стиль установлен, поэтому вы можете назвать это
работать, не беспокоясь о том, хочет ли пользователь использовать слой кэширования.
Посмотреть _store_cache ниже для более подробной информации.
_sep_parts
Этой функции в качестве аргументов передаются чередующиеся массивы и разделители. Массивы
указать дополнения для частей строк, которые должны быть разделены разделителями. То
массивы могут быть именами параметров массива или списком слов в кавычках.
скобки. Например, с массивом `хосты=(фтп Новости)'звонок'_sep_parts
'(фу бар)' @ хостов' завершит строку 'f'к'Foo' и строка 'б@нк
`бар@новости'.
Эта функция принимает компадд варианты `-V', `-J', `-1', `-2', `-n', `-X', `-M',
`-P', `-S', `-r', `-R', и `-q' и передает их в компадд встроенный используется для
добавьте спички.
_последовательность [ -s сентябрь ] [ -n Макс ] [ -d ] функция [ - ] ...
Эта функция является оболочкой для других функций для заполнения элементов в отдельном
список. Одна и та же функция используется для завершения каждого элемента в списке. Разделитель
указано с -s вариант. Если -s опущен, он будет использовать `,'. Повторяющиеся значения
не совпадают, если -d указано. Если установлено фиксированное или максимальное количество
элементы в списке, это можно указать с помощью -n опцию.
Общий компадд параметры передаются функции. можно использовать компадд
непосредственно с _последовательность, хоть _ценности может быть более уместным в данной ситуации.
_настраивать день [ группы ]
Эта функция устанавливает специальные параметры, используемые системой заканчивания.
надлежащим образом для день указан в качестве первого аргумента. Он использует стили
список цветов, заполненный списком, список-строки-первые, последняя подсказка, принять-точный, МЕНЮ и
форс-лист.
Необязательный группы указывает название группы, в которой будут проводиться совпадения
размещен. Если он не дан, то день используется в качестве имени группы.
Эта функция вызывается автоматически из _описание а значит не нормально
вызывается явно.
_store_cache кэш_идентификатор остановить ...
Эта функция вместе с _retrive_cache и _cache_invalid, реализует
слой кэширования, который можно использовать в любой функции завершения. Данные получены
дорогостоящие операции хранятся в параметрах; эта функция затем сбрасывает значения
эти параметры в файл. Затем данные могут быть быстро извлечены из этого файла.
с помощью _retrive_cache, даже в разных экземплярах оболочки.
Команда кэш_идентификатор указывает файл, в который должны быть сброшены данные. То
файл хранится в каталоге, указанном путь к кешу стиль, который по умолчанию
~/.zcompcache, Остальные остановитьаргументы s — это параметры, которые нужно сбросить в
.
Статус возврата равен нулю, если сохранение прошло успешно. Функция будет только
попытаться сохранить, если использование кеша стиль установлен, поэтому вы можете вызвать эту функцию
не беспокоясь о том, хочет ли пользователь использовать слой кэширования.
Функция завершения может избегать вызова _retrive_cache когда он уже имеет
данные завершения доступны в качестве параметров. Однако в этом случае он должен вызывать
_cache_invalid проверить правильность данных в параметрах и в кеше
все еще действует.
См. функцию завершения _perl_modules для простого примера использования
кеширующий слой.
_теги [[ -C имя ] день ...]
При вызове с аргументами они считаются именами тегов, действительными для
завершения в текущем контексте. Эти теги хранятся внутри и сортируются по
используя порядок тегов стилю.
Далее, _теги вызывается повторно без аргументов из одного и того же завершения
функция. Это последовательно выбирает первый, второй и т. д. набор запрошенных тегов.
пользователем. Статус возврата равен нулю, если запрошен хотя бы один из тегов.
и ненулевое в противном случае. Чтобы проверить, следует ли использовать конкретный тег, _запрошено
должна быть вызвана функция (см. выше).
Если `-C имя' дано, имя временно сохраняется в поле аргумента (пятое)
контекста в контекст параметр во время вызова _теги; поле
восстанавливается при выходе. Это позволяет _теги использовать более конкретный контекст, не имея
изменить и сбросить контекст параметр (который имеет тот же эффект).
_ценности [ -O имя ] [ -s сентябрь ] [ -S сентябрь ] [ -Туалет ] по убыванию спецификация ...
Это используется для завершения произвольных ключевых слов (значений) и их аргументов или списков.
таких комбинаций.
Если первым аргументом является опция `-O имя', он будет использоваться так же, как
не провела обыск _аргументы функция. Иными словами, элементы имя массив будет
перешел к компадд при выполнении действия.
Если первый аргумент (или первый аргумент после `-O имя') есть `-s', следующий
аргумент используется как символ, разделяющий несколько значений. Этот персонаж
автоматически добавляется после каждого значения автоматически удаляемым способом (см. ниже);
все значения завершаются `_ценности -s' появляются в том же слове в командной строке,
в отличие от завершения с использованием _аргументы. Если этот параметр отсутствует, только один
значение будет завершено за слово.
Как правило, _ценности будет использовать только текущее слово, чтобы определить, какие значения
уже присутствуют в командной строке и, следовательно, не должны выполняться снова. Если
-w дается вариант, проверяются и другие аргументы.
Первый аргумент, не являющийся опцией, используется как строка для печати в качестве описания перед
перечисление значений.
Все остальные аргументы описывают возможные значения и их аргументы в одном и том же
формат, используемый для описания опций _аргументы функции (см. выше).
Единственное отличие состоит в том, что в начале не требуется знак минус или плюс,
значения могут иметь только один аргумент, а формы действия, начинающиеся с равного
знак не поддерживаются.
Символ, отделяющий значение от его аргумента, можно установить с помощью опции -S
(как -s, за которым следует символ, используемый в качестве разделителя в следующем аргументе).
По умолчанию в качестве разделителя между значениями и
аргументы.
Пример:
_ценности -s , 'описание' \
'*фу[бар]' \
'(два)*один[число]:первый считать:' \
'два [еще один число]::секунда количество:(1 2 3) '
Это описывает три возможных значения: `Foo', `one', и `два'. Первый
описывается как `бар', не принимает аргументов и может встречаться более одного раза. Второй
описывается как `номер', может встречаться более одного раза и принимает один обязательный аргумент
описывается как `первый считать'; действие не указано, поэтому оно не будет завершено.
`(два)' в начале говорит, что если значение `one' находится на линии, значение
`два' больше не будет считаться возможным завершением. Наконец, последнее значение
(`два') описывается как 'другой номер' и принимает необязательный аргумент, описанный
как `второй считать', для которых дополнения (появляющиеся после `=') являются `1', `2',
и `3». _ценности функция заполнит списки этих значений, разделенных
запятые.
Подобно _аргументы, эта функция временно добавляет другой компонент имени контекста в
элемент arguments (пятый) текущего контекста при выполнении
действие. Здесь это имя просто имя значения, для которого аргумент
завершена.
Стиль подробный используется, чтобы решить, являются ли описания значений (но не
те, что для аргументов) должны быть напечатаны.
Ассоциативный массив val_args используется для сообщения значений и их аргументов; это
работает аналогично opt_args ассоциативный массив, используемый _аргументы, Следовательно
вызов функции _ценности следует объявить локальные параметры состояние, state_descr,
линия, контекст и val_args:
локальным контекст состояние state_descr линия
набрана -A val_args
при использовании действия формы `->string'. С помощью этой функции контекст
будет установлено имя значения, аргумент которого должен быть завершен.
Обратите внимание, что для _ценности, состояние и state_descr являются скалярами, а не массивами.
Возвращается только одно совпадающее состояние.
Отметим также, что _ценности обычно добавляет символ, используемый в качестве разделителя между
значения как автоматически удаляемый суффикс (похожий на `/' после каталога). Тем не мение,
это невозможно для `->string' действие, так как совпадения для аргумента
генерируется вызывающей функцией. Чтобы получить обычное поведение, вызов
функция может добавить разделитель x в качестве суффикса, передав параметры `-qS x' либо
прямо или косвенно компадд.
Опция -C лечится так же, как и _аргументы. В этом случае
параметр контекст следует сделать локальным вместо контекст (как описано выше).
_хотел [ -x ] [ -C имя ] [ -12ВДж ] день имя DESCR команду [ аргумент ...]
Во многих случаях завершение может генерировать только один конкретный набор совпадений.
обычно соответствует одному тегу. Однако все же необходимо решить
требуются ли пользователю совпадения этого типа. Эта функция полезна в таком
дело.
Аргументы в пользу _хотел такие же, как и для _запрошено, т.е. аргументы
перешел к _описание. Однако в этом случае команду не является обязательным; все
обработка тегов, включая цикл по тегам и меткам тегов, а также
генерация совпадений, осуществляется автоматически _хотел.
Следовательно, предлагать только один тег и сразу добавлять соответствующие совпадения с
данное описание:
локальным Обосн
_хотел день Обосн 'описание' \
компадд Матчи...
Обратите внимание, что, что касается _запрошено, команду должен быть в состоянии принять варианты, чтобы быть
перешел к компадд.
Подобно _теги эта функция поддерживает -C возможность дать другое имя для
поле контекста аргумента. То -x опция имеет то же значение, что и для _описание.
ЗАВЕРШЕНИЕ КАТАЛОГИ
В исходном дистрибутиве файлы находятся в различных подкаталогах
Завершение каталог. Они могли быть установлены в одной и той же конструкции или в одном
единый функциональный каталог. Ниже приводится описание файлов, найденных в
оригинальная структура каталогов. Если вы хотите изменить установленный файл, вам необходимо
скопируйте его в какой-нибудь каталог, который появляется ранее в вашем путь чем стандартный каталог
где он появляется.
Система исчисления Основные функции и специальные виджеты завершения автоматически привязываются к клавишам. Ты
безусловно, потребуется большинство из них, хотя, вероятно, не нужно будет их изменять.
Многие из них описаны выше.
Zsh Функции для завершения аргументов встроенных команд оболочки и служебных функций
для этого. Некоторые из них также используются функциями из Юникс каталог.
Юникс Функции для завершения аргументов внешних команд и наборов команд.
Возможно, их потребуется модифицировать для вашей системы, хотя во многих случаях некоторые попытки
сделано, чтобы решить, какая версия команды присутствует. Например, завершение для
монтировать команда пытается определить систему, в которой она выполняется, а завершение
для многих других утилит попробуйте решить, находится ли версия команды GNU в
использования и, следовательно, является ли --Помогите опция поддерживается.
X, AIX, BSD...
Завершение и вспомогательная функция для команд, доступных только в некоторых системах. Эти
не расположены иерархически, поэтому, например, как Linux и Debian
каталоги, а также X каталог, может быть полезен в вашей системе.
Используйте zshcompsys онлайн с помощью сервисов onworks.net