Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
nmap <unique> Ж :call ChangeLayout(':')<CR>:Жцй(:wq) вы получите кукиш. Если же по нажатию Ж переключить раскладку, то вы получите как раз :wq и успешно сохранитесь и закроете окно. Этим же объясняется выделяющийся маппинг «Ж» — сайлент отключен, чтобы фокус остался в коммандной строке и вы успешно продолжили ввод команды.let g:rusmode_autotoggle_insertleave=1<Plug>ISurround::inoremap <Plug>Isurround <Nop>
:imap <C-g>S <Plug>Isurround
:set langmap=YI,IY
:execute "normal i\<C-g>S"
:1print
<Plug>ISurroundТем, что если nmap'ить все символы, то при попытке сделать Жцй(:wq) вы получите кукиш.решается таким же набором привязок для командного режима, это не является принципиально неустранимой проблемой старого способа;
nmap в вашем случае не надо использовать (Learn vimscript the hard way, глава 5: Strict mapping). Для такой задачи вообще‐то nore обычно вреден, но в вашем коде без nore хуже.normal! (с восклицательным знаком).normal вообще, хоть с, хоть без восклицательного знака;nmap на nnoremap и execute("normal…") на call feedkeys(a:key, "t"), либо использовать <expr>:function s:ChangeLayout(key)
call system('osascript -e "tell application \"System Events\" to key code 49 using command down"')
return a:key
endfunction
nmap <expr> <unique> й <SID>ChangeLayout('q')
nnoremap Y :echom "I am HERE"<CR>. И попробуйте её использовать с вашим кодом.gg) или операторы (вроде yy). Поместить все символы после <CR> с или без <silent> является куда как лучшей идеей, чем использовать :normal в функции: эффект от :normal на этих командах слабо отличается от того, из‐за чего вы использовали исключительный случай для :. Разве что убирать <silent> не обязательно. Замечу что исключительный случай для : в функции не выполняет ровным счётом никакой полезной работы.очень полезно. спасибо! :)
Rusmode — решение проблемы с русской раскладкой