Как заставить Vim правильно отображать файл вместо отображения символов ^ @ - PullRequest
1 голос
/ 06 февраля 2012

У меня есть файл, который показывает разные вещи в Notepad и Vim.

Файл обычно отображается в блокноте Windows:

picture of file in Windows Notepad

Странные символы добавляются к каждому символу при использовании Vim.

picture of file in Vim

Кто-нибудь знает, как отключить этот странный персонаж в Vim в среде Windows?

Ответы [ 3 ]

5 голосов
/ 31 августа 2012

Как видите: TSS отображается как T^@S^@S^@ (двоичный файл: 54 00 53 00 53 00).
Поскольку vim показывает \0x00 как ^@.Звучит как UTF16LE.


Вы можете конвертировать UTF16LE в UTF8:

:e ++enc=UTF16LE
:set fenc=UTF8
:w
1 голос
/ 06 февраля 2012

Файл сохраняется как UTF-16, где каждый символ представлен двумя байтами.VIM открывает его, как если бы это был файл ASCII или UTF-8, поэтому каждая пара байтов превращается в два символа.

Блокнот распознает кодировку, но, очевидно, VIM этого не делает.Укажите кодировку при открытии файла.

1 голос
/ 06 февраля 2012

Это похоже на юникод.Вы можете открыть файл в блокноте и сохранить его как ascii.

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

Вот больше информации из вики vim:
http://vim.wikia.com/wiki/Working_with_Unicode

...