我想看输出消息:
1234
当我在vim的正常模式下输入1234<Enter>
时。
我试图在这里写一些vim脚本
function! PrintNum(n)
echo n
endfunction
nmap n<Enter> call PrintNum(n)
其中n
这里只是一个表示正则表达式\d+
的虚拟变量。
我如何在map命令中使用某种正则表达式?
请注意,我也不确定是否应该使用nmap
。
答案 0 :(得分:3)
这是:
function! PrintNum(n)
echo a:n
endfunction
nnoremap <silent> <Enter> :<C-u>call PrintNum(v:count)<CR>
v:count
获取可以在任何命令之前放置的数字。n
(内部引用为a:n
)传递给函数,但我也可以直接在函数内使用v:count
。:
命令会将计数转换为范围,因为我们需要单独的:call
,我们会通过<C-u>
删除此范围。<CR>
。 <silent>
可以避免您短暂地看到映射的密钥。:noremap
;它使映射不受重映射和递归的影响。