В чем разница между этими двумя командами?
set encoding=utf-8set fileencoding=utf-8
Нужно ли мне устанавливать оба, когда я хочу использовать utf-8?
Кроме того, мне нужно установить кодирование файлов с помощью setили setglobal?
В чем разница между этими двумя командами?
set encoding=utf-8 set fileencoding=utf-8Нужно ли мне устанавливать оба, когда я хочу использовать utf-8?
Кроме того, мне нужно установить кодирование файлов с помощью setили setglobal?
Ответы:
В первом случае
set encoding=utf-8вы измените кодировку вывода, отображаемую в терминале.Во втором случае
set fileencoding=utf-8вы измените кодировку вывода записываемого файла .
Как заявил @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.
Вы можете установить переменную 'fileencodings' в вашем .vimrc.
Это список кодировок символов, учитываемых при запуске редактирования существующего файла. При чтении файла Vim пытается использовать первую упомянутую кодировку символов. Если обнаружена ошибка, выполняется попытка следующей в списке. Когда обнаруживается работающая кодировка, устанавливается "fileencoding". Если все не удается, 'fileencoding' устанавливается в пустую строку, что означает, что используется значение 'encoding'.
Увидеть :help filencodings
Если вы часто работаете, например, с cp1252, вы можете добавить его туда:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9