Вызовите функцию vimscript, у которой есть диапазон, используя локальные переменные, с помощью функции vimscript - PullRequest
4 голосов
/ 22 января 2012

Вот пример, с которым я работаю. Предполагается добавить шаблон в файл, а затем закомментировать эти строки, только что прочитанные с помощью функции плагина vim BlockComment. Цель состоит в том, чтобы отметить номер строки до того, как я прочитаю из файла и после того, как я закончу чтение из файла, чтобы я мог закомментировать диапазон только что вставленных строк. Однако у меня есть время, чтобы выяснить, какой синтаксис должен быть для обозначения этого диапазона. Закомментированная строка ниже - моя попытка вызвать функцию с заданным диапазоном, используя переменные. В комментируемой части есть синтаксическая ошибка, если я предоставлю диапазон жесткого кода, как показано ниже, работает скрипт ниже. Как мы можем поместить мой диапазон в качестве переменной в этом случае?

function! AddBoilerPlate()
    let s:beginLine = line(".")
    r /Users/danieljbrieckjr/myBolierPlate.txt
    exe "normal! joDate Created: " . strftime("%B %d, %Y")
    exe "normal! oLast Modified: " . strftime("%B %d, %Y")

    let s:endLine = line(".")

"--------------------------------------------------
"     s:beginLine, s:endLine call Comment()
"-------------------------------------------------- 

    1,3 call Comment()


endfunction

1 Ответ

11 голосов
/ 22 января 2012

В этой ситуации можно подготовить строку, содержащую целевую команду, и затем используйте :execute для запуска,

:exe s:beginLine.','.s:endLine 'call Comment()'
...