Насколько я понимаю, правило о заглавных именах функций предназначено для избежания конфликтов со встроенными функциями vim. Нет возможности конфликта со скриптовыми локальными функциями, поэтому кажется разумным, что ограничение не будет применяться к ним, так как вы всегда должны ставить перед ними префикс с квалификатором пространства имен.
ZyX исправил меня в комментариях, указав, что, вопреки более раннему пересмотру этого ответа, vim не позволяет объявлять функции области буфера. Вы можете объявить глобальную функцию с именем, подобным b:function_name
или в этом отношении _:function_name
, но это сбивает с толку и, вероятно, ужасная идея по причинам, указанным в комментариях .
Функции, объявленные в словаре, не должны начинаться с заглавной буквы.
Буферные области видимости Funcrefs и, по-видимому, другие Funcrefs за пределами глобальной области действия или области действия уровня («локальные» Funcrefs) не нуждаются в заглавных буквах. Но они в любом случае имеют ограниченную полезность, поскольку Funcref должен ссылаться либо на глобальную функцию, либо на область действия скрипта (последняя синтаксически неудобна) или на функцию словаря; в последнем случае вы должны назвать его с call(funcref, args, dict)
.
Но, в любом случае, вы ищете документацию, поэтому я сделал :helpgrep capital
и нашел эти самородки мудрости:
E704 : Переменная Funcref должна начинаться с заглавной буквы, "s:", "w:", "t:" или "b:".
E124 : «Определить новую функцию по имени {имя}. Имя должно состоять из буквенно-цифровых символов и '_' и должно начинаться с заглавной буквы или "s:" (см. Выше). »Указатель« см. Выше »относится к разделам user-functions и local-function , которые предоставляют более подробную информацию, но не упоминают ничего о не заглавных буквах script-scope функции. user-functions
упоминает, что Имя функции должно начинаться с заглавной буквы, чтобы избежать путаницы со встроенными функциями.
Может быть, строгое правило всегда начинать имя функции с заглавной буквы было справедливо до появления других областей, из которых область видимости скрипта, по-видимому, была первой или, по крайней мере, первой, способной включать объявления функций. Я предполагаю, что части руководства, которые утверждают такое правило, просто не были обновлены, чтобы отразить состояние современного vim.