Как стать автором
Обновить

Комментарии 17

А можно все советы, как то оформить ввиде 1-2 страниц A4, чтобы на стеночку повесить типа шпорки по пользованию Vim.
Всё это уже давно сделано, погуглите по "Vim cheatsheet".
Как еще одно дополнение к данной фишке - в vim можно создавать свои меню и если добавить в .vimrc следующие строки:
set wildmenu
set wcm=<Tab>
menu Encoding.koi8-r :e ++enc=koi8-r ++ff=unix<CR>
menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos<CR>
menu Encoding.cp866 :e ++enc=cp866 ++ff=dos<CR>
menu Encoding.utf-8 :e ++enc=utf8 <CR>
menu Encoding.koi8-u :e ++enc=koi8-u ++ff=unix<CR>
map <F8> :emenu Encoding.<TAB>


То по нажатию F8 можно будет выбрать из меню, в какой кодировке редактировать текущий файл. По-моему, очень удобная фича.
Convert file encoding
set wildmenu
set wcm=
menu SetEnc.cp1251 :set fenc=cp1251
menu SetEnc.koi8-r :set fenc=koi8-r
menu SetEnc.cp866 :set fenc=ibm866
menu SetEnc.utf-8 :set fenc=utf-8
map :emenu SetEnc.


Ну, суть ясна :)
Блин. Поел парсер. Shift+F8 - конвертация.
Можно еще написать вот такой код в .vimrc, для авто включения unicode, если система его поддерживает (полезно при переносе одного и того же конфига на разные системы):

if has("multi_byte")
if &termencoding == ""
let &termencoding = &encoding
endif
set encoding=utf-8
setglobal fileencoding=utf-8 bomb
set fileencodings=utf-8,cp1251,koi8-r,latin1
set fileformats=dos,unix,mac
endif
:w ++enc=cp-1251, АФАИК, не поставит fileencoding, так что надо будет каждый раз писать этот опцион.

А если вы все проекты делате в 1251, но по случаю недавнего наступления 21 века решили понемногу переползать на UTF-8, то можно слить расширение localvimrc.vim и в корне своих современных проектов в файле .lvimrc вписать:

set fileencodings=utf-8,default
Для работы с кодировками есть полезный плагин "FencView.vim : Autodetect multiple encodings"
http://www.vim.org/scripts/script.php?script_id=1708
А как открыть файл в нужной кодировке прямо из терминала, а не из запущенного Vim?
Например так:
vim "+e ++enc=needed_enc" filename
Такая команда запустит вим, откроет файл, а после открытия переоткроет ещё раз в кодировке needed_enc. Немножко хак, но работает. Возможно существует и более красивое решение.
Как в windows настроить gvim на работу с utf-8? Что ли конвертировать все файлы документации?
Или как хотя бы сохранять файлы в utf?
Я ж вроде всё описал, что именно не понятно?

Устанавливаем в .vimrc set encoding=utf-8. Перезапускаем Vim или делаем :source path/to/.vimrc чтобы изменения применились.

Открываем файл, если кодировка определилась неверно, переоткрываем, указывая кодировку явно: :e ++enc=koi8-r

Меняем кодировку :set fileencoding=utf-8 (можно сократить до :set fenc=utf8)

Сохраняем :w
Когда поэксперементировав с командами, пересохранить в utf-8 мне удалось.
В .vimrc set encoding=utf-8 установил, и кодировку для файлов поставил utf-8. Все прекрасно работает, но gvim не понимает:

Так это в интерфейсе только косяки, файлы нормально открываются?

Похоже, что Language for non-Unicode programs поставлен на что-то некириллическое. Если не нужен русскоязычный интерфейс в gVim поставьте переменную окружения LANG=en. Ну или читать :help multilang.
Когда прописал set encoding=utf-8 то косяки только в интерфейсе. Но если не ставить utf-8 по-умолчанию, то каждый файл приходиться открывать явно указывая кодировку, и потом явно указывать в какой кодировке сохранять.

Русскоязычный интерфейс не нужен. Vim ругается на LANG=en в .vimrc, пойду читать multilang.
LANG=en надо в окружении выставлять. Если в .vimrc, то это будет выглядеть как :let $LANG=en, только делать это нужно как можно ближе к началу файла.

Про автоматическое определение кодировок читать :help 'fileencodings'.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории