Um problema que vejo é que noremap mapeia o valor do lado esquerdo para o valor do lado direito sem remapear . Basicamente, o lado direito é sempre considerado apenas como mapeamentos internos.
Você pode usar map em vez de noremap ou pode usar os mapeamentos originais no lado esquerdo. Isso parece funcionar bem para mim:
noremap <C-S-d> y0O<ESC>pjly$kgp'[
Por acaso, aqui está como eu duplico linhas, só assim você pode ter uma abordagem diferente para pensar:
nnoremap zj mz"yyy"yP'z
nnoremap zk mz"yyy"yP'zk
Os passos para a duplicação são:
- Salve a posição atual na marca
zcommz - Copie a linha para o
yregister com"yyy - Cole a linha acima com
"yP - Ir para a posição original com
'z
Para mim, isso mantém a posição do cursor no lugar certo.