Вы можете использовать
:set nowrap
, чтобы остановить перенос длинных строк и синхронизировать ваши буферы. Не совсем то, что вы просили, но близко.
Из perldoc -f -B
:
Переключатели-T
и-B
работают следующим образом. Первый блок или поэтому файл проверяется на наличие нечетных символов, таких как странные управляющие коды или символы с установленным старшим битом. Если слишком много обнаружены странные символы (> 30%), это файл-B
; в противном случае это файл-T
. Кроме того, любой файл, содержащий null в первый блок считается двоичным файлом. Если-T
или-B
используется для дескриптора файла, проверяется текущий буфер ввода-вывода а не первый блок. Оба-T
и-B
возвращают значение true при нулевой файл или файл по адресуEOF
при тестировании дескриптора файла. Поскольку для выполнения теста-T
вам необходимо прочитать файл, в большинстве если вы хотите сначала использовать-f
для файла, как в "далее, если -f $ file && -T $ file
".
Согласно главе 11 книги Learning Perl :
Ответ: ** Perl читы **: он открывает файл, просматривает первые несколько тысяч байтов и делает обоснованное предположение. Если он видит много нулевых байтов, необычных управляющих символов и байтов с установленным старшим битом, то это похоже на двоичный файл. Если не так много странностей, то это похоже на текст. Иногда он ошибается. Если в текстовом файле много шведских или французских слов (которые могут содержать символы, представленные с установленным старшим битом, как некоторый вариант ISO-8859-something, или, возможно, даже версия Unicode), он может обмануть Perl, объявив его двоичным. Так что это не идеально,