Suse 11 по сравнению с различием Suse 10, влияющим на терминальные цвета?

Не использовать dd с каналами. dd низкий уровень. Это - интерфейс к read и write системные вызовы.

Когда Вы делаете a dd bs=1024 count=1, это делает a read(0, buf, 1024).

Если read возвраты меньше данных, чем 1 024 байта (например, потому что канал только содержит 200 байтов в данный момент), dd не повторно попытается read для получения недостающих 824 байтов это сообщит о неполном чтении блока в конце (часть после +). То же самое может произойти при записи также.

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

(echo AAAA; sleep 1; echo BBBBBB) | dd bs=3 > /dev/null
3+2 records in
3+2 records out

Это не слишком большая проблема здесь, поскольку мы просто пишем то, что мы читаем, но это может быть более проблематично, например, при определении a count.

GNU dd имеет -iflag fullblock работать вокруг этого:

$ (echo AAAA; sleep 1; echo BBBBBB) | dd bs=3 iflag=fullblock > /dev/null
4+0 records in
4+0 records out
12 bytes (12 B) copied, 1.00068 s, 0.0 kB/s
7
03.04.2014, 20:23
1 ответ

Вы уверены, что это (частично) не проблема конфигурации vim?

vim в основном основывает свое определение типа файла на целых именах (например, .profile) или расширениях (.sh). Файл, который вы дали, называется (я полагаю) .bash_prompt, что не будет соответствовать известным типам bash или shell.

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

 :set filetype?

Если это не filetype=sh, тогда попробуйте

 :set syn=sh

(Полагаю, что по крайней мере один из них говорит conf filetype, что выделяет # comments TODO и ' ", цитируемые строки).

Я подозреваю, что SLES использует отдельный пакет vim-data, он должен содержать различные синтаксические и цветовые скрипты, проверьте, установлен ли он в системе SLES11.

Чтобы посмотреть, какое форматирование применяется к нумерации строк:

:highlight LineNr

Если вы не видите ctermfg=3 (цветовой терминал forground=желтый), то это объясняет, почему желтый цвет "отсутствует".

Изменение в обнаруженном файловом типе объясняет, почему вы "пропустили" пурпурный цвет (красный и пурпурный цвета не совпадают, btw) на выделенных строках, и "пропустили" желтый, если изменился LineNr.

Если у вас под рукой находится xterm source, вы также можете запустить некоторые из его скриптов тестирования цвета, которые могут запросить все записи цвета:

perl vttests/256colors2.pl            # fast, show all colors
perl vttests/query-color.pl 0-15      # slow, uninterruptable

Вы также можете найти colortest. Скрипт полезен, запустите vim и запустите

:runtime syntax/colortest.vim

внутри vim, запустите :help xterm-color, чтобы получить дальнейшие рекомендации по установке основных цветов, как ожидалось.

Попробуйте это, чтобы проверить, что Xterm думает, что его базовые цвета должны быть (читайте только при запуске XTerm):

xrdb -query | grep -i vt100.color
1
27.01.2020, 20:20

Теги

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