2010-08-26 7 views
1

Каков наилучший способ использования zsh завершения вне zsh? Я знаю, что я могу переопределить compadd builtin с пользовательской функцией и проанализировать ее параметры, но есть ли лучший способ?Использование zsh завершение вне zsh

Я хочу добавить omni завершение для сценариев оболочки в Vim на основе системы zsh.

+0

Уважаемый $ DEITY, скажите, пожалуйста, вы знаете, как это сделать. Я бы хотел, чтобы у меня были зстилы. – chiggsy

+0

@chiggsy Все, что я знаю, если я потрачу много времени на создание хаков, которые переопределяют различные встроенные команды (одного «compadd» недостаточно) и переопределения функциональности, которую они выполняют, я мог бы выполнить эту работу. Я не готов тратить время. – ZyX

+0

Итак ... Вопрос о разъяснении: Я правильно понимаю, что вы просите какой-то способ получить доступ к интерактивной системе завершения zsh, например, командной строки в vim? Кажется, что ... как vim нужно будет изменить, чтобы связать с ним ... возможно, это может быть запущено как библиотека, что zsh и vim могли бы использовать? – lindes

ответ

0

Этот же вопрос задан в списке рассылки zsh от 23 августа 2004 года: http://www.zsh.org/mla/users/2004/msg00917.html. По крайней мере, я считаю, что это тот же вопрос. Поправьте меня если я ошибаюсь.

В принципе, оболочка bash использует для редактирования строки, но zsh uses its own and more powerful zle.

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

2 ответов на этот вопрос. Один говорит:

«На самом деле это относительно просто. Для рабочего примера см. Функции/Разное/nslookup в дистрибутиве zsh».

Другой ответа от первоначальных спрашивающего, и он говорит:

«Если только„preexec“может получить доступ к BUFFER, писать отредактированную команду строки может быть написан в любом месте, но так как BUFFER доступен только внутри завершения виджеты, это должно быть сделано с помощью виджета, , заменяющего «accept-line» или что-то в этом роде ».

Надеюсь, это поможет.

Смежные вопросы