Разное выравнивание текста в дзен2

2300
AnonymousLurker

Если у меня есть две строки "foo" и "bar", и я хочу, чтобы они отображались в dzen2 следующим образом:

[foo bar] 

Возможно ли это сделать, не используя опцию -ta, а только команды позиционирования?

1

1 ответ на вопрос

2
user1034533

Да, но для этого требуется знание ширины 1 символа в этом шрифте и длины текста, который вы хотите выровнять. Чтобы всплывать что-то осталось, вам нужно использовать:

^pa(_LEFT)^p(-[n*k])sometext 

Где n - количество символов в "sometext", а k - ширина пикселя одного символа.

Dzen поставляется с программой textwidthдля расчета размера немоно-космических шрифтов, в этом случае [n * k] будет заменено на это значение.

Я бы рекомендовал использовать родную версию кода, если вы можете для повышения эффективности, у меня есть версия для golang здесь, но если это не возможно, вы можете просто запустить textwidthкоманду.

SVN ревизия 255 из dzen, очевидно, содержит команду ^ ba (width, align), см. Вики.

Таким образом, это относится только к сценариям, когда используется моноширинный шрифт? AnonymousLurker 12 лет назад 0
Или когда вы можете рассчитать ширину немонокального шрифта. Mike Cooper 12 лет назад 0
Я должен был упомянуть, что dzen поставляется с [программой] (https://github.com/robm/dzen/blob/master/gadgets/README.textwidth) для расчета ширины немонокальных шрифтов, я добавлю это к ответу. user1034533 12 лет назад 0

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