2011-01-17 10 views
7

Wenn ich den folgenden Code zu löschen:Der schnellste Weg, um ein Funktionsargument in Vim

foo->call(bar, baz->widget); 

Mit Cursor auf "b" in "baz" oder auf "w" in "Widget", wie würde ich schnell das Argument am Cursor löschen?

foo->call(bar); 

Es kann ein beliebiges Argument sein (zuerst, zuletzt oder in der Mitte).

Antwort

5

Zum ersten Argumente, diese Tastenkombination geht Klammer zu öffnen, und löscht alles auf das nächste Komma, darunter auch den Raum, nachdem es:

T(df,x

Für ein mittleres Argument, diese Tasten- Kombination geht zum vorherigen Komma, und löscht sie und alles bis zum nächsten Komma:

F,dt,

Für das letzte Argument, diese Tastenkombination geht an die Pre vious Komma, und löscht sie und alles bis zur schließenden Klammer:

F,dt)

- oder -

Sie können Ihr eigenes Makro schreiben, um diese Art der Sache zu tun. Ein ähnliches Beispiel ist here.

+1

'B' Sie zurück zum Anfang der baz nimmt, nicht zurück zum Komma, und wenn kein Platz ist, würde es zu weit gehen. Fast, obwohl! – Cascabel

+0

Dies bricht mit 'foo-> Aufruf (bar, baz-> widget());' –

+0

@Jefromi: Meine Antwort aktualisiert, danke! – Chetan

10

Mit meiner omap-param plugin geben Sie einfach di, oder da, ein.

Es wird nicht von anderen Klammern belästigt. Zum Beispiel wird in f(a+g(42, "string")), foobar) von "a" nach "g" da,foobar in f Anruf gerade verlassen.

+0

Der Link ist kaputt, könnten Sie ihn aktualisieren? –

+0

Natürlich. Es ist gebündelt mit [lh-cpp] (https://github.com/LucHermitte/lh-cpp). –

2

targets.vim ist ein weiteres Plugin, das aa und ia bietet (das Verhalten der eingebauten Text-Objekte auch Fixes fehlt standardmäßig vergleichen Diskussion über TextObjectify)

Verwandte Themen