В vim/nvim некоректные символы при открытии файла с разными кодировками
2023-10-20T12:35:00+05:00
linux# Для файлов с кодировкой crlf нечитабельные русские символы
Вот как это выглядит
Èãðû êà÷àòü îòñþäà
Вот как выглядит локаль
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE=C
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
Нашёл решение для vim и neovim в разных форматах vimscripts и lua
Редактируем конфиг файл neovim
nvim ~/.config/nvim/init.vim
Код в vimscripts
Самое важное в нём это set fileencodings=[значение кодировки] на который триггерится vim/neovim и преобразует некорректные символы в нормальный русский шрифт
set encoding=utf-8 | " Кодировка по дефолту
set termencoding=utf-8 | " Кодировка по дефолту
set fileformat=unix | " Формат файла по дефолту
set ffs=unix,dos,mac | " Формат файла, влияющий на окончания строк - будет перебирать в указанном порядке
set fileencodings=utf-8,cp1251 | " Список кодировок файлов для автоопределения
Код в lua (neovim)
vim.opt.encoding = "utf-8" -- Кодировка по дефолту
vim.opt.ffs = "unix,dos,mac" -- Формат файла, влияющий на окончания строк - будет перебирать в указанном порядке
vim.opt.fileencodings = "utf-8,cp1251" -- Список кодировок файлов для автоопределения
Теперь в Windows crlf текстовых файлов я смог нормально читать и редактировать файлы
А в nano вообще показываются одни ромбы с вопросом���
Я пока не мог найти решение, да и я не заинтересован в нём.
# Для файлов с кодировкой cp936 нечитабельные китайские символы
Вот как это выглядит
Для решения необходимо просто добавить в fileencodings=[значение кодировки]
после utf-8 кодировку cp936, в конце не срабатывает
Пример neovim с lua конфигом
...
vim.opt.fileencodings = "utf-8,cp936,cp1251" -- Список кодировок файлов для автоопределения
...
После добавления cp936, все символы стали отображаться как надо