VIM-кодировка и файловое кодирование utf-8

В чем разница между этими двумя?

  • set encoding=utf-8
  • set fileencoding=utf-8

Нужно ли устанавливать оба? Я хочу использовать utf-8. Кроме того, мне нужно установить fileencoding с помощью set или setglobal?

Ответ 1

TL; DR

В первом случае с set encoding=utf-8 вы измените выводную кодировку, которая показана в терминале.

Во втором случае с set fileencoding=utf-8 вы измените выходную кодировку файла , написанного.

Как указано в @Dennis, вы можете установить их оба в ~/.vimrc, если вы всегда хотите работать в utf-8.

Подробнее

Из wiki VIM о работе с unicode

"encoding устанавливает, как vim должен представлять символы внутри. Ут-8 необходим для большинства вариантов Unicode."

"fileencoding устанавливает кодировку для определенного файла (локальный для буфера);: setglobal устанавливает значение по умолчанию. Можно также использовать пустое значение: по умолчанию оно равно" encoding ". Или вы можете установить одно из кодировок ucs, он может сделать один и тот же файл на диске большим или меньшим в зависимости от вашего конкретного сочетания символов. Кроме того, IIUC, utf-8 всегда является big-endian (сначала бит), в то время как ucs может быть большим или маленьким, поэтому, если вы его используете, вам, вероятно, потребуется установить" bomb" (см. ниже).

Ответ 2

set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

Вы можете также установить оба в своем ~/.vimrc, если вы всегда хотите работать с utf-8.