1

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

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

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

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

感谢你的帮助!

4

1 回答 1

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>
于 2012-11-25T20:09:13.233 回答