我使用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'
则可行。
任何原因我不能在这样的重映射中使用插件的文本对象吗?
答案 0 :(得分:2)
nore
中的nnoremap
表示“执行此操作时不要尝试执行其他映射”。它使您的映射非递归。
由于您明确希望在映射中使用其他映射,因此必须递归:
nmap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>