Как перенести список завершения zsh с фиксированной строкой текста до и после?

В частности, я хотел бы упорядочить все списки завершения (в контексте: завершение: *), которым предшествует и следует фиксированная строка (например, «ABC» на данный момент) на собственной строке.

Я пробовал различные подходы, и я могу получить предыдущую строку, но не следующую. Лучшие подходы

  1. Используйте массив comppostfunc в _main_complete. Включая функцию, которая использует _message -r для печати строки. Но comppostfun выполняется в конце _main_complete, но, видимо, перед созданием списка, давая строку в начале, а не в конце.

  2. Создайте новые завершающие элементы – клон _complete, который возвращает 1 и дополнение, которое просто выполняет _message. Идея состоит в том, что последнее завершает работу. Это работает до точки, но снова строка начинается с начала списка завершения.

  3. Адаптируйте 1 или 2, играя в стиле тегов, чтобы положить сообщения в конце. Это не работает.

  4. Создайте вариант _полного дополнения, выполняющего его нормальное действие (_ нормальное в одном случае) и заканчивается _message. Опять же это делает и то, и другое, но всегда ставит сообщение первым. Игра с тегом-порядком не меняет этого.

Я чувствую, что что-то упускаю. Например, существует ли способ указать дополнительный стиль, в котором конкатенируется вывод нескольких завершающих устройств? Почему не выполняется несколько действий в дополнении, чтобы привести список завершений в порядок? Как получить стиль tag-order для вывода вывода _message в конце?

Linux и Unix - лучшая ОС в мире.