Я несколько раз сталкивался с проблемами, потому что кодировка vim по умолчанию была установлена на latin1, и я не заметил и предположил, что он использует utf-8.Теперь, когда у меня есть, я хотел бы настроить vim так, чтобы он работал правильно во всех очевидных случаях, и использовать utf-8 по умолчанию.
Чего я хотел бы избежать:
- Принудительное сохранение файла, сохраненного в другой кодировке , который работал бы до моих изменений , как utf-8, что приводило к бреду.
- Принуждение терминала, который не поддерживает многобайтовые символы (например, Windows XP), попытаться все равно отобразить их, что приведет к бреду.
- Вмешательство в способность других программ читать или редактировать файлы (у меня есть(возможно, неоправданное) отвращение к использованию спецификации по умолчанию, потому что мне неясно, насколько велика вероятность испортить другие программы.)
- Другие проблемы, о которых я не знаю достаточно, чтобы догадаться (но, надеюсь,Вы делаете!)
То, что у меня есть до сих пор:
if has("multi_byte")
if &termencoding == ""
let &termencoding = &encoding
endif
set encoding=utf-8 " better default than latin1
setglobal fileencoding=utf-8 " change default file encoding when writing new files
"setglobal bomb " use a BOM when writing new files
set fileencodings=ucs-bom,utf-8,latin1 " order to check for encodings when reading files
endif
Это взято и немного изменено из vim wiki .Я переместил bomb
из setglobal fileencoding
в собственное утверждение, потому что в противном случае оно на самом деле не работает.Я также прокомментировал эту строку из-за моей неуверенности в отношении спецификаций.
Что я ищу:
- Возможные ловушки, чтобы избежать того, что я пропустил
- Проблемы с существующим кодом
- Ссылки на те места, где это уже обсуждалось / изложено
В конечном счете, я бы хотел, чтобы это привело к неосмысленномутребуется фрагмент копирования / вставки, который настроит vim для utf-8-по-умолчанию, который будет работать на разных платформах.
РЕДАКТИРОВАТЬ: Я отметил свой собственный ответ как принятый на данный момент,насколько я могу судить, все работает нормально и учитывает все, на что он может разумно объяснить.Но это не в камне;Если у вас есть какая-либо новая информация, пожалуйста, ответьте!