VimL:通过Vim命令行的键接收输入调用函数

时间:2012-11-25 19:52:52

标签: vim vim-plugin

因此,由于标题,这可能不是一个明确的问题。但这是实际的解释:

我有这个自定义函数,我希望能够从命令行调用此函数,这已完成(:FunctionName arg),但现在我需要使此函数对某个映射作出反应。 / p>

因此,当用户按下< leader> cs 时,它会提示用户输入arg部分,映射这对我来说仍然有点不清楚,还有如何实现这个功能。这就是Surround脚本的功能,它允许您输入旧字符和新字符以替换它。

我需要这个用于我的第一个脚本,我正在制作BTW,它允许你以类似于Sublime Text的方式更改文件的语法。

感谢您的帮助!

1 个答案:

答案 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>