Яка різниця між цими двома командами?
set encoding=utf-8
set 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 про роботу з unicode
" encoding
встановлює, як vim повинен представляти символи внутрішньо . Utf-8 необхідний для більшості ароматів Unicode."
" fileencoding
встановлює кодування для певного файлу (локальний до буфера);: setglobal встановлює значення за замовчуванням. Також може використовуватися порожнє значення: воно за замовчуванням відповідає тому ж, що і" кодування ". Або ви можете встановити одне з кодувань ucs, Це може зробити той самий файл диска більшим або меншим, залежно від конкретного набору символів. Також, IIUC, utf-8 завжди є великим ендіаном (перший біт), тоді як ucs можуть бути big-endian або little-endian, тому якщо ви використовуйте його, можливо, вам буде потрібно встановити "бомба" (див. нижче). "
vim -c "set encoding=utf-8" file.ext
.
Ви можете встановити змінну 'fileencodings' у своєму .vimrc.
Це список кодувань символів, що враховується під час редагування наявного файлу. Коли файл читається, Vim намагається використовувати перше згадане кодування символів. Якщо виявлена помилка, спробується наступна у списку. Коли знайдено кодування, яке працює, на нього встановлюється "fileencoding". Якщо все не вдалося, 'fileencoding' встановлюється порожнім рядком, що означає значення 'кодування'.
Побачити :help filencodings
Якщо ви часто працюєте з, наприклад, cp1252, можете додати його туди:
set fileencodings=ucs-bom,utf-8,cp1252,default,latin9