Regex 在正常模式下传递数字键作为vim函数的参数

Regex 在正常模式下传递数字键作为vim函数的参数,regex,vim,Regex,Vim,我想查看输出消息: 1234 当我在vim的正常模式下输入1234时 我试着在这里写一些vim脚本 function! PrintNum(n) echo n endfunction nmap n<Enter> call PrintNum(n) 这里的n只是一个表示regex\d+的伪变量 如何在map命令中使用某种regex 注意,我也不确定是否应该使用nmap。这里是: function! PrintNum(n) echo a:n endfunction n

我想查看输出消息:

1234
当我在vim的正常模式下输入1234时

我试着在这里写一些vim脚本

function! PrintNum(n)
    echo n
endfunction

nmap n<Enter> call PrintNum(n)
这里的n只是一个表示regex\d+的伪变量

如何在map命令中使用某种regex

注意,我也不确定是否应该使用nmap。

这里是:

function! PrintNum(n)
    echo a:n
endfunction

nnoremap <silent> <Enter> :<C-u>call PrintNum(v:count)<CR>
解释 映射中没有虚拟变量;它的执行与键入的一样。但是,特殊变量v:count获取可以放在任何命令之前的数字。 在这里,我将其作为参数n传递到函数中,在函数内部引用为a:n,但我也可以在函数内部直接使用v:count。 默认情况下:命令将计数转换为一个范围,因为我们需要一个单独的:调用,所以我们通过删除该范围。 通过按Enter键结束映射命令行模式:。这样可以避免您短暂地看到映射的关键点。 ; 它使映射不受重映射和递归的影响。
是否可以在输入前读取两个数字,例如123 456?请提供更多背景信息;你的最终目标是什么?当一个问题只涉及一个小的技术步骤时,很难给出一个好的答案。如果你不告诉我们你为什么想要这个,很容易屈服于这个。那么,数字是用空格分隔的吗?这只是两个映射,一个用于将v:count保存到变量,然后我的映射使用保存的变量和新的v:count。完全可行,但对Vim来说非常奇怪。对不起,我只是觉得太复杂了,然后我选择先问一个简单的问题。我的最终目标是在函数中使用这两个数字。是的,请发布一个新问题,以及您试图解决的确切问题。我相信有更好的方法。。。