因此,由于标题,这可能不是一个明确的问题。但这是实际的解释:
我有这个自定义函数,我希望能够从命令行调用此函数,这已完成(:FunctionName arg
),但现在我需要使此函数对某个映射作出反应。 / p>
因此,当用户按下< leader> cs 时,它会提示用户输入arg部分,映射这对我来说仍然有点不清楚,还有如何实现这个功能。这就是Surround脚本的功能,它允许您输入旧字符和新字符以替换它。
我需要这个用于我的第一个脚本,我正在制作BTW,它允许你以类似于Sublime Text的方式更改文件的语法。
感谢您的帮助!
答案 0 :(得分:2)
最简单的方法是从映射中删除结束<CR>
,以便它只进入命令行模式并使用自定义命令填充命令行:
:nnoremap <Leader>cs :FunctionName<Space>
然后您可以输入arg
并使用 Enter 触发命令。
或者,您可以通过input()
(以及getchar()
的单个字符查询用户输入;显而易见,不是吗?!),如下所示:
function! FunctionNameWithQuery()
let arg = input('arg: ')
execute 'FunctionName' arg
endfunction
nnoremap <Leader>cs :call FunctionNameWithQuery()<CR>