В vimscript-функции мне нужно назначить соответствующую строку переменной l:matched
после вызова, search()
и мне интересно, есть ли более короткий путь, чем то, что я сейчас делаю:
let l:pattern = '\v^Foo: \zs.*'
let l:line = search(l:pattern)
let l:line_text = getline(l:line)
let l:matched = matchstr(l:line, l:pattern)
В идеале я бы хотел что-то вроде
let l:matched = search_text(l:pattern)
не прибегая к getline()
. Есть ли такая функция vim, которую я не могу найти?
1
К сожалению, ответ - нет.
—
Сато Кацура
protip: локальные переменные по умолчанию внутри функций, так что вы, вероятно, можете отказаться от
—
Питер Ринкер
l:
объявления пространства имен.
в функции, которую вы, вероятно, можете сделать:
—
Кристиан Брабандт
:let @/="pattern" | norm! ygn
и иметь содержимое в регистре 0 доступным.