Обратите внимание, что безопаснее устанавливать кодировку в вашем LOCALE, а не в Vim, если вы редактируете файл, отличный от Unicode. Вы получите тот же результат, что и по умолчанию для LOCALE, и вы не испортите никаких посторонних символов, если они встретятся.
timss
Ответы:
93
TL; DR
В первом случае set encoding=utf-8вы измените кодировку вывода, отображаемую в терминале.
Во втором случае set fileencoding=utf-8вы измените кодировку вывода записываемого файла .
Как заявил @Dennis, вы можете установить их оба в своем ~ / .vimrc, если вы всегда хотите работать utf-8.
" encodingустанавливает, как vim должен представлять символы внутри . Utf-8 необходим для большинства разновидностей Unicode."
" fileencodingустанавливает кодировку для конкретного файла (локально в буфер);: setglobal устанавливает значение по умолчанию. Также можно использовать пустое значение: оно по умолчанию такое же, как 'кодировка'. Или вы можете захотеть установить одну из кодировок ucs, Это может сделать один и тот же файл на диске больше или меньше в зависимости от вашего конкретного сочетания символов. Кроме того, IIUC, utf-8 всегда имеет обратный порядок байтов (сначала старший бит), а ucs может быть прямым порядком байтов или прямым порядком байтов, поэтому, если вы используйте его, вам, вероятно, понадобится установить «бомбу» (см. ниже) ».
Вы можете установить переменную 'fileencodings' в вашем .vimrc.
Это список кодировок символов, учитываемых при запуске редактирования существующего файла. При чтении файла Vim пытается использовать первую упомянутую кодировку символов. Если обнаружена ошибка, выполняется попытка следующей в списке. Когда обнаруживается работающая кодировка, устанавливается "fileencoding". Если все не удается, 'fileencoding' устанавливается в пустую строку, что означает, что используется значение 'encoding'.
Увидеть :help filencodings
Если вы часто работаете, например, с cp1252, вы можете добавить его туда:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9
Ответы:
TL; DR
Как заявил @Dennis, вы можете установить их оба в своем ~ / .vimrc, если вы всегда хотите работать
utf-8
.Подробнее
Из вики VIM о работе с юникодом
"
encoding
устанавливает, как vim должен представлять символы внутри . Utf-8 необходим для большинства разновидностей Unicode.""
fileencoding
устанавливает кодировку для конкретного файла (локально в буфер);: setglobal устанавливает значение по умолчанию. Также можно использовать пустое значение: оно по умолчанию такое же, как 'кодировка'. Или вы можете захотеть установить одну из кодировок ucs, Это может сделать один и тот же файл на диске больше или меньше в зависимости от вашего конкретного сочетания символов. Кроме того, IIUC, utf-8 всегда имеет обратный порядок байтов (сначала старший бит), а ucs может быть прямым порядком байтов или прямым порядком байтов, поэтому, если вы используйте его, вам, вероятно, понадобится установить «бомбу» (см. ниже) ».источник
vim -c "set encoding=utf-8" file.ext
.Вы также можете установить оба в своем,
~/.vimrc
если хотите всегда работать с utf-8.источник
Вы можете установить переменную 'fileencodings' в вашем .vimrc.
Увидеть
:help filencodings
Если вы часто работаете, например, с cp1252, вы можете добавить его туда:
источник