Заполнение клавишей Tab ZSH: только завершите файлы и не двоичные файлы

Для получения сертификации, необходимо заплатить, и это на самом деле действительно дорого. Вот почему подобный BSD и GNU/Linux поставщики ОС не запрашивают его.

Таким образом, нет даже причины проверить, совместим ли GNU/Linux или нет.

http://en.wikipedia.org/wiki/Single_UNIX_Specification#Non-registered_Unix-like_systems

Больше всего GNU/дистрибутив Linux следует за Основой Стандарта Linux, которая является бесплатной, и распознанная почти всеми поставщиками Linux.

http://en.wikipedia.org/wiki/Linux_Standard_Base


Править: Поскольку мой ответ не абсолютно корректен, я добавлю комментарии @vonbrand:

Linus (и люди, вовлеченные в разработку других частей дистрибутивов Linux), следует прагматической инструкции для создания его как близко к POSIX, как стоит. Существуют части POSIX (как (в) известных ПОТОКАХ), которые непродуманны, невозможны реализовать эффективно, или просто кодирование исторических реликвий, которые должны быть заменены чем-то лучше.

... поэтому, это мешает получать сертификацию?

Конечно. POSIX передает под мандат некоторый интерфейс, который просто никогда не будет иметь Linux. Случай закрывается.

6
18.06.2011, 19:08
2 ответа

Можно проигнорировать некоторые шаблоны в завершениях путем настройки стилей завершения с zstyle встроенный. В руководстве zsh существуют примеры.

Например, для игнорирования *.o файлы при завершении файлов для редактирования с энергией можно вставить это Ваш .zshrc:

zstyle ':completion:*:*:vim:*:*files' ignored-patterns '*.o'

Это не будет работать для исключения исполняемых файлов полезным способом. Можно исключить *~*.*, или более точно (|*/)[^/.]##, но это исключает каждое имя файла, которое не содержит a ., включая сценарии и еще худшие каталоги. Насколько я знаю, завершение игнорируют механизм, не может проверить на существование или тип файлов, это просто соответствует текстовым шаблонам.

5
27.01.2020, 20:27
  • 1
    Это не работает на меня по некоторым причинам. Если я заменяю vim с v например, и затем завершитесь на v это делает, но не использование vim . Я подозреваю, что это - полная функция по умолчанию в _vim это ответственно. Любая идея, как я могу осуществить то, что прибывает из .zshrc? –  Sebastian Blask 22.12.2016, 13:17
  • 2
    @SebastianBlask Это работает на меня с zsh 5.0.5 и a .zshrc это содержит только autoload compinit; compinit и zstyle строка в моем ответе. Таким образом, проблема не _vim функция (если это не очень отличается в Вашей версии), но в некоторой другой установке конфликта в Вашей конфигурации. –  Gilles 'SO- stop being evil' 22.12.2016, 14:36
  • 3
    благодарит проверить. Я нашел проблему, я использую бриз scm, и энергия искажается так, я могу сделать vim 2 где 2 индекс ls. Сделал больше поиска с помощью Google и экспериментирования без большого успеха так в конце, я заставил это работать: zstyle ':completion:*:*:*:*:*files' ignored-patterns '*.pyc'. Не специализированный, но достаточно хороший для меня в данный момент. –  Sebastian Blask 22.12.2016, 17:13

Вы могли, конечно, переделать это так, чтобы это работало на любую данную папку или набор файлов, но сначала необходимо понять причину, это не делает этого теперь.

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

Это сказанное не было бы слишком трудно записать пользовательскую функцию завершения для замены завершения шарика имени файла для данной команды, которая перечислит все файлы, но исключит тех, которые имеют '.c' версии. Требовались бы немного служебные, который замедлит заполнение клавишей Tab немного.

2
27.01.2020, 20:27

Теги

Похожие вопросы