Исправление сопоставления
Ваше сопоставление не работает, потому что оно использует :noremap
.Правильно избегать переназначения (через часть nore
команды) в максимально возможной степени, но, поскольку вы вызываете там отображение ys
Surround.vim, нет (простого) способа обойти это:
nmap <C-J> ysiw}lysiw{
Альтернатива surround.vim
Это двойное окружение неудобно и фактически не нужно, потому что плагин позволяет определять пользовательские замены в соответствии с :help surround-customizing
.
.следующее определяет новую замену на d
(для "double"; 100 = char2nr('d')
);с его помощью вы можете добавить двойные кудри к слову через ysiwd
:
let g:surround_100 = "{{ \r }}"
Чтобы определить отображение только для определенных типов файлов, замените g:
на b:
.Тогда я бы рекомендовал поместить это значение в ~/.vim/ftplugin/{filetype}_whatever.vim
(или {filetype}/whatever.vim
; ср. :help ftplugin-name
) вместо определения лотов :autocmd FileType {filetype} ...
;он чище и лучше масштабируется;требует, чтобы у вас было :filetype plugin on
, однако.
Другие ваши вопросы
Плагинround.vim также предлагает режим вставки <C-g>s
mapping.Я бы рекомендовал против отображений режима вставки для этих видов правок;это против модели на основе режима Vim, и там доступно только несколько (и неудобных комбинаций клавиш с Ctrl или Alt ).
Чтобы вставить шаблон,простое картирование сделает.Вы можете поместить курсор между добавленными курсорами с помощью специальных клавиш <Left>
:
:nnoremap <C-g>d a{{ }}<Left><Left><Left>
:inoremap <C-g>d {{ }}<Left><Left><Left>