使用插件文本对象重新映射不能正常工作

时间:2018-05-24 03:50:32

标签: vim remap

我使用vim 8安装了textobjects-user和textobject-quotes插件。这些让我使用多行字符串,所以我可以将光标放在多行引用的字符串中,并diq删除或yiq猛拉。这些文本对象有效,所以我知道这个插件有效。

我尝试定义一个简单的密钥重映射,这样我就可以抓取带引号的字符串的内容,在新的分割中打开它,并删除多余的空格:

nnoremap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>

它不起作用。如果我删除yiq<CR>并从键盘执行此操作,则调用<leader>Q拆分和粘贴以及空白剥离工作。如果我将yiq更改为yi'则可行。

任何原因我不能在这样的重映射中使用插件的文本对象吗?

1 个答案:

答案 0 :(得分:2)

nore中的nnoremap表示“执行此操作时不要尝试执行其他映射”。它使您的映射非递归

由于您明确希望在映射中使用其他映射,因此必须递归

nmap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>