(sdk @ Понедельник, 18 Октября 2004, 7:07) писал(а):Я вот тоже бы не прочь, чтобы не было :цй, ...
Насколько я понял, при юникодной локали langmap не работает. Во всех режимах. При первом же переключении раскладки вводимые символы перестают восприниматься адекватно, например, по C^[ (или esc) почему-то запускается запись макроса :).
Решение нашлось половинчатое (работает только в иксах), пришлось использовать модифицированный keymap-файл russian-jcukenwin.vim, стянув переключатель из russian-phonetic_utf-8.vim.
Модификация russian-jcukenwin.vim:
Код: Выделить всё
$cat russian-jcukenwin.vim.diff
--- russian-jcukenwin.vim 2004-09-23 13:51:32.000000000 +1000
+++ rus_lat-jcukenwin.vim 2004-11-14 00:02:41.000000000 +0900
@@ -11,6 +11,10 @@
let b:keymap_name = "ru"
+noremap <S-Tab> :let &iminsert = ! &iminsert<CR>
+lnoremap <S-Tab> <C-^>
+noremap! <S-Tab> <C-^>
+
loadkeymap
~ Ё CYRILLIC CAPITAL LETTER IO
` ё CYRILLIC SMALL LETTER IO
Переключалка работает по S^Tab, кому как, а я уже привык. Копируем файл в ~/.vim/keymap под именем, скажем, rus_lat-jcukenwin.vim и добавляем в .vimrc биндинг:
Код: Выделить всё
map <у кого что, а у меня F4> :set keymap=rus_lat-jcukenwin
При нажатии на F4 включается русская раскладка, далее переключаемся по S^Tab.
Плюсы. Работает ВСЕ: команды, шорткаты (вроде C^[, C^p, wq, gq, etc), визуальный режим... Это плюсы.
Минусы. Работает только в иксах, (i.e., gvim/xvim/whatever, xterm/...), в консоли же комбинация S^T работает как обычный Tab. Почему именно эта комбинаиця? А просто ничего другого в голову не пришло :). Может кто покрасивее решение найдет.
Дополняйте, пинайте... ;)