在`exec“规范中的Vimscript字符串中的Ctrl-E!”......

时间:2015-06-24 15:40:59

标签: string vim escaping

我想使用Ctrl-E to scroll一些(此处为10行)行。我希望这通常exec "norm! ...映射,如此

nnoremap <leader>e :<C-U>exec "norm! 10\<C-E>"<CR>
nnoremap <leader>y :<C-U>exec "norm! 10\<C-Y>"<CR>

如果按<leader>y,一切都按预期工作(我向上滚动10行)。但是,如果我按下<leader>e,我会收到以下错误(并且预计会向下滚动10行):

E114: Missing quote: "norm! 10\"
E15: Invalid expression: "norm! 10\"
Press ENTER or type command to continue

有谁知道如何解决这个问题?

编辑:我正在构建一个字符串并执行它的原因是我可以计算用表达式滚动的行数(这里是f())。

nnoremap <leader>e :<C-U>exec "norm! ". f() ." \<C-E>"<CR>

1 个答案:

答案 0 :(得分:0)

这样做:

nnoremap <leader>e :<C-u>exec "norm! 10<C-v><C-e>"<CR>
nnoremap <leader>y :<C-u>exec "norm! 10<C-v><C-y>"<CR>