On Птн, 30 Июл 2004, Gossen Alexey wrote: > Добрый день господа > > Не поделится ли кто частью конфига в виме, где подвязываются клавиши из > русского режима клавиатуры. Чтобы не переключая раскладку дать команду > i, a, o, dd, и так далее. Нужны самые примитивные функции, выполняемые в > нормальном модусе (normal mode). > > Ах да, локаль ru_RU.UTF-8 > > Спасибо за внимание > > -- > Guten Tag, Alexey > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] >
следующий конфиг реализует необходимую функциональность при LANG=ru_RU.UTF-8,ru_RU.CP1251,ru_RU.KOI8-R, и переключает кодировки utf-8,cp1251,koi8-r,cp866(частично) по комбинациям F9u,w,k,d PS: отмаплены не все комбинации, кому что необходимо может добавить -- Thanks, Kostyukov Alexander ([EMAIL PROTECTED]) --------------------------------------------
" Config for vim " Author: Kostyukov Alexander " Sets set ignorecase set smartcase set shiftwidth=4 set nowrap set vb " Functions let g:FlagMap = 0 function Map(cmd,in,out) if a:cmd == 'map' execute a:cmd.' '.iconv(a:in,"8bit-koi8-r",&enc).' '.a:out elseif g:FlagMap == 1 execute a:cmd.' '.iconv(a:in,"8bit-koi8-r",&enc) endif endfunction function Mapper(cmd) call Map(a:cmd, 'ш', 'i') call Map(a:cmd, 'г', 'u') call Map(a:cmd, 'з', 'p') call Map(a:cmd, 'З', 'P') call Map(a:cmd, 'К', 'R') call Map(a:cmd, 'щ', 'o') call Map(a:cmd, 'Щ', 'O') call Map(a:cmd, 'ф', 'a') call Map(a:cmd, 'Ф', 'A') call Map(a:cmd, 'н', 'y') call Map(a:cmd, 'в', 'd') call Map(a:cmd, 'О', 'J') call Map(a:cmd, 'Жцй', ':wq') call Map(a:cmd, 'Жц', ':w') call Map(a:cmd, 'Жй', ':q') call Map(a:cmd, 'Ж', ':') call Map(a:cmd, '<F9>г',"<Esc>:call SetEnc('utf-8')<CR>") call Map(a:cmd, '<F9>л',"<Esc>:call SetEnc('8bit-koi8-r')<CR>") call Map(a:cmd, '<F9>ц',"<Esc>:call SetEnc('8bit-cp1251')<CR>") call Map(a:cmd, '<F9>в',"'<Esc>:call SetEnc('8bit-cp866')<CR>") let g:FlagMap = 1 endfunction function SetEnc(Enc) call Mapper('unmap') let &encoding = a:Enc let &fileencoding = a:Enc call Mapper('map') map <F9>k <Esc>:call SetEnc('8bit-koi8-r')<CR> map <F9>w <Esc>:call SetEnc('8bit-cp1251')<CR> map <F9>d <Esc>:call SetEnc('8bit-cp866')<CR> map <F9>u <Esc>:call SetEnc('utf-8')<CR> endfunction " Main section if v:lang == 'ru_RU.UTF-8' set termencoding=utf-8 elseif v:lang == 'ru_RU.CP1251' set termencoding=8bit-cp1251 else set termencoding=8bit-koi8-r endif call SetEnc(&termencoding)