使用插件文本对象重新映射不起作用



我使用 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'它就可以工作。

有什么理由我不能在这样的重映射中使用插件的文本对象吗?

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

由于您明确希望在映射中使用另一个映射,因此它必须是递归的

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

最新更新