SourceTree считает, что .vimrc является бинарным, поэтому я не вижу разницы в окне.

Основываясь на этой странице, я подумал, что это из-за кодировки, поэтому попытался изменить кодировку на utf-8, используя следующие шаги с этой страницы:

:set bomb
:set fileencoding=utf-8

но это не исправило это. Что мне нужно сделать?

[Обновление] Исправлено:

Был не-ascii символ (элемент управления устройства 3, 0x13), который вообще не отображался в Vim, но отображался как "DC3" в Sublime Text. После удаления проблема была решена! Спасибо за помощь.

2 ответа2

0

Выключите опцию «БОМБА». (Byte Order Mark Bytes)

Он добавляет два байта в начало текстового файла, чтобы указать порядковый номер. Это 0xFF и 0xFE, я забыл, какой порядок какой, но именно поэтому ваша VCS считает, что ваш .vimrc является двоичным файлом.

Вы должны отредактировать ваш .vimrc, затем отключить опцию бомбы и сохранить .vimrc. Это должно удалить байты спецификации. В худшем случае сбросьте / удалите опцию BOMB из вашего файла .vimrc, затем используйте двоичный режим vim для удаления лишних байтов.

# edit .vimrc
$ vim .vimrc
# remove / comment out the set BOMB line
# reset the BOMB option (:set nobomb)
# save file, exit vim

Если байты спецификации исчезли (используйте файл), все готово, зафиксируйте и наслаждайтесь. Если не:

# remove the BOMB bytes using binary mode
$ vim -b .vimrc
# save and exit, .vimrc should no longer have the BOMB bytes.

Кроме того, команда file может сообщить вам, есть ли у файла байты BOMB.

Вы также можете использовать команду 'xxd' (поставляется с vim) для просмотра шестнадцатеричных байтов файла:

xxd .vimrc | head

должен показать вам, если байты спецификации существуют или нет. (Это очень удобно для многих вещей)

0

Вы пробовали другой ответ на странице stackoverflow?

Откройте ваш .vimrc в vim и:

:write ++enc=utf-8

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .