Определение / расположение пользовательской функции VIM - PullRequest
3 голосов
/ 27 сентября 2010

У меня проблема с основной функцией VIM: (Я попытался поискать в Google и не могу найти ответ)

  1. Как мне перечислить все пользовательские функции (я сделал: функция и не могу найти свою пользовательскую функцию)
  2. Как получить определение функции в списке пользовательских функций (или где они хранятся).

Спасибо за вашу помощь

Ответы [ 2 ]

8 голосов
/ 27 сентября 2010

Предположим, ваша функция называется MyFunction, тогда у меня работает следующее:

:verbose function My<tab>

(для я имею в виду фактически нажать вкладку)

если ваша функция загружена в vim, она должна отображаться там, и вы можете увидеть, где она была определена.

2 голосов
/ 27 сентября 2010

Если вы не можете найти свою пользовательскую функцию в выводе function без аргументов, то это, вероятно, анонимная функция, объявленная так:

let g:dict={}
function g:dict.f()
    echo "here"
endfunction

В этом случае единственный способ получить его определение - это использовать function g:dict.f (добавьте verbose, поскольку @skeept предложил узнать, где оно определено). Обратите внимание, что вы не можете использовать завершение табуляции здесь и не можете получить список всех анонимных функций.

Вместо g:dict.f в function g:dict.f вы можете использовать function {N}, где N - любое выражение, которое возвращает номер анонимной функции, например function {substitute(string(g:dict.f), '^.*\(\d\+\).*$', '\1', '')}. Или просто function {242}, если все, что вы получаете, это ошибка типа Error detected while processing function 243..242: и вы хотите увидеть определение функции 242.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...