我想使用:execute normal "commandstring"
技术在映射中构建命令行。但我不能在映射中做到这一点,因为vim会立即将“”解释为按键。所以这不起作用:
nnoremap <leader>jj :execute "normal :tabnew foo.txt\<cr>"<cr>
我试图双倍地逃避反斜杠,没有效果:
nnoremap <leader>jj :execute "normal :tabnew foo.txt\\<cr>"<cr>
现在vim在反斜杠中键入,然后将其解释为按键。
出于什么方式?
答案 0 :(得分:3)
这确实很棘手。您必须将<
字符转义为<lt>
,以便<cr>
不会被解析为特殊键符号:
nnoremap <leader>jj :execute "normal :tabnew foo.txt\<lt>cr>"<cr>
请注意,您的示例不需要任何此操作; :normal :...<CR>
与...
nnoremap <leader>jj :tabnew foo.txt<cr>