Function (g) Vim 7.x::可以诱使Vim允许小写用户定义的命令

Function (g) Vim 7.x::可以诱使Vim允许小写用户定义的命令,function,vim,naming-conventions,Function,Vim,Naming Conventions,并不是说打字很麻烦 :My_custom_foobar() 而不仅仅是 :my_custom_foobar() 但考虑到Vim的几乎所有其他方面都是如此可扩展,这让人感到奇怪。一些寻找答案的搜索结果并不多,但我知道这必须是可能的,而不必从源代码重新编译Vim。有人知道实现这一目标的方法吗?也许可以试试 nnoremap f:调用My_custom_foobar() 你必须一次完成一个功能。我不知道你会如何去做它的所有功能。我建议遵循惯例,键入函数名的大写字母。您可以使用:abbrev进行操

并不是说打字很麻烦

:My_custom_foobar()
而不仅仅是

:my_custom_foobar()
但考虑到Vim的几乎所有其他方面都是如此可扩展,这让人感到奇怪。一些寻找答案的搜索结果并不多,但我知道这必须是可能的,而不必从源代码重新编译Vim。有人知道实现这一目标的方法吗?

也许可以试试

nnoremap f:调用My_custom_foobar()

你必须一次完成一个功能。我不知道你会如何去做它的所有功能。我建议遵循惯例,键入函数名的大写字母。

您可以使用:abbrev进行操作,但实际上不推荐使用。您不能这样做的原因是:1)vi兼容性,2)未来扩展


第2点是一个更大的问题——如果您可以编写函数,那么无法保证您不会最终命名一个与内置函数冲突的函数,这是不允许的。在尝试加载函数时,最终会出现错误。

vimdoc说,原因是用户定义的函数和内置函数之间不会有太多冲突。内置的字母以小写字母开头(其中3个字母除外),因此不会出现混淆。看来这是一个有目的的限制。也许用P或L开始所有函数?就在冒号旁边,无论如何,你都要去轮班了。不过非常不雅观。是的,我知道这背后有一个合法的理由,我只是不太喜欢那个特定的设计决策(使用字母大小写作为避免名称空间冲突的黑客的语言和应用程序)。我敢肯定,除了我之外,还有人想改变这一切。谁在乎功能冲突呢?让我射自己的脚。。。我能想到的唯一一种不允许重新定义函数的语言是PHP>。
nnoremap <Leader>f :call My_custom_foobar()<CR>