Использовать argumentative.vim Вы производите цикл, хотя каждый аргумент. В каждом цикле вы можете добавить аргумент к массиву, а затем перейти к следующей границе аргумента.
command! GetArguments echo GetArguments()
function! GetArguments()
let reg = @@
let arr = []
let view = winsaveview()
while getline('.')[col('.')-1] != ')'
normal yi,
call add(arr, @@)
normal ],
endwhile
let @@ = reg
call winrestview(view)
redraw!
return string(arr)
endfunction
Просто поместите курсор на v
в пустоте в первом аргументе и запустить :GetArguments
. Если вы хотите добавить текст в буфер, используйте :put=GetArguments()
.
Примечание: Я не тестировал ни один текст, отличный от тестового текста. Возможно, вам придется изменить его, чтобы удовлетворить ваши потребности.
Я являюсь автором плагина argumentative.vim, который работает, чтобы помочь в манипулировании параметрами/параметрами. Спорить обеспечивает следующее:
- Новые текстовые объекты,
i,
и a,
- Сдвиг аргументы через
>,
и <,
.
- Переход к следующей/предыдущей границе аргумента через
],
и [,
соответственно
Я уверен, что есть и другие плагины, которые там делают подобные вещи.
Я закончил тем, что делает свои собственные функции, наконец! +1 –
@Meninx, вы можете поделиться своими функциями в сообщении, чтобы помочь другим с аналогичными проблемами –
@Rincker Это простая функция, которая действительно на самом деле то, что я хочу в данный момент, но ее нужно улучшить! –