У функції 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 доступним.