Verwenden Sie argumentative.vim Sie Schleife durch jedes Argument. In jeder Schleife können Sie das Argument an ein Array anhängen und dann zur nächsten Argumentgrenze gehen.
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
Setzen Sie einfach Ihren Cursor auf dem v
in Leere im ersten Argument und führen :GetArguments
. Wenn Sie den Text dem Puffer hinzufügen möchten, verwenden Sie :put=GetArguments()
.
Hinweis: Ich habe keinen anderen Text als Ihren Testtext getestet. Möglicherweise müssen Sie es ändern, um Ihre Bedürfnisse zu erfüllen.
Ich bin der Autor des argumentative.vim Plugins, das bei der Manipulation von Argumenten/Parametern hilft. Argumentative bietet die folgenden:
- Neue Textobjekte,
i,
und a,
- Shift-Argumente über
>,
und <,
.
- Zum nächsten/vorherigen Argument Grenzen über
],
und [,
bzw.
Ich bin sicher, dass es andere Plugins gibt, die ähnliche Dinge zu tun.
ich endlich, indem ich meine eigenen Funktionen gelandet! +1 –
@Meninx, Vielleicht möchten Sie Ihre Funktionen in einem Beitrag teilen, um anderen mit ähnlichen Problemen zu helfen –
@Rincker Es ist eine einfache Funktion, die tatsächlich tat, was ich im Moment will, aber verbessert werden muss! –