在vim中执行键映射时丢失的命令计数

在vim中执行键映射时丢失的命令计数,vim,paste,Vim,Paste,我在vimrc文件中有一个p的键映射,如下所示: noremap p:set pastep:set nopaste 此键映射的目的是确保vim外部的内容可以在粘贴模式下以其原始格式粘贴。并在粘贴完成后将其恢复为nopaste模式 但当我运行以下命令时: yy 5p p只执行一次,不执行5次。 看起来键映射中缺少计数 有没有办法在键映射中传递计数? 或者如何解决此问题?第一次计数会下降,因此以后无法使用。相反,我们将忽略并使用保存count,然后使用v:count1变量(如:set paste)

我在vimrc文件中有一个p的键映射,如下所示: noremap p:set pastep:set nopaste

此键映射的目的是确保vim外部的内容可以在粘贴模式下以其原始格式粘贴。并在粘贴完成后将其恢复为nopaste模式

但当我运行以下命令时:

yy
5p
p只执行一次,不执行5次。 看起来键映射中缺少计数

有没有办法在键映射中传递计数? 或者如何解决此问题?

第一次计数会下降,因此以后无法使用。相反,我们将忽略并使用保存count,然后使用v:count1变量(如:set paste)访问它。。。五:第一

但还有另一个问题:在第一个命令之后,count将丢失,因此我们希望将映射重写为单个命令。命令的链接可以用|完成,但在映射中我们应该编写而不是|

以下是最终映射:

:noremap p :<c-u>set paste <BAR> :exe "normal! " . v:count1 . "p" <BAR> :set nopaste<CR>
:exe正常!是一种从已计算字符串执行命令的奇特方法。

第一个命令会删除计数,因此以后不再可用。相反,我们将忽略并使用保存count,然后使用v:count1变量(如:set paste)访问它。。。五:第一

但还有另一个问题:在第一个命令之后,count将丢失,因此我们希望将映射重写为单个命令。命令的链接可以用|完成,但在映射中我们应该编写而不是|

以下是最终映射:

:noremap p :<c-u>set paste <BAR> :exe "normal! " . v:count1 . "p" <BAR> :set nopaste<CR>

:exe正常!是一种从计算字符串执行命令的奇特方法。

或者如何解决此问题?使用剪贴板支持获得一个合适的Vim,并摆脱该映射。或者如何解决该问题?使用剪贴板支持获得适当的Vim,并摆脱该映射。