使用插件文本对象重映射 yank 不起作用
remap with plugin text object yank not working
我安装了 textobjects-user 和 textobject-quotes 插件,使用 vim 8。这些让我可以处理多行字符串,所以我可以将光标放在多行引用字符串中, diq
删除或 yiq
猛拉。这些文本对象有效,所以我知道该插件有效。
我试图定义一个简单的键重映射,这样我就可以提取引用字符串的内容,在新的拆分中打开它,并去除多余的空格:
nnoremap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>
没用。如果我删除 yiq<CR>
并从键盘上执行此操作,则调用 <leader>Q
拆分和粘贴以及空白剥离工作。如果我将 yiq
更改为 yi'
它会起作用。
为什么我不能像这样在重映射中使用插件的文本对象?
nnoremap
中的nore
表示"don't try to execute other mappings while executing this one"。它使您的映射 非递归 .
由于您明确想在映射中使用另一个映射,因此它必须是 递归的:
nmap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>
我安装了 textobjects-user 和 textobject-quotes 插件,使用 vim 8。这些让我可以处理多行字符串,所以我可以将光标放在多行引用字符串中, diq
删除或 yiq
猛拉。这些文本对象有效,所以我知道该插件有效。
我试图定义一个简单的键重映射,这样我就可以提取引用字符串的内容,在新的拆分中打开它,并去除多余的空格:
nnoremap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>
没用。如果我删除 yiq<CR>
并从键盘上执行此操作,则调用 <leader>Q
拆分和粘贴以及空白剥离工作。如果我将 yiq
更改为 yi'
它会起作用。
为什么我不能像这样在重映射中使用插件的文本对象?
nnoremap
中的nore
表示"don't try to execute other mappings while executing this one"。它使您的映射 非递归 .
由于您明确想在映射中使用另一个映射,因此它必须是 递归的:
nmap <leader>Q yiq<CR>:vnew<CR>p:%s/^\s\+//<CR>