2012-04-09 23 views
4

Ich speichere oft :w und Commit zu SVN svn commit -m "Ticket 351" als zwei Operationen. Gibt es eine Möglichkeit, sie in einem einzigen Vorgang zu kombinieren, so dass ich nur :geben Sie, wenn die Notwendigkeit auftritt? Ich möchte keinen Schlüssel zuordnen, da ich manchmal die Commit-Nachricht ändern muss.VIM: Führen Sie zwei Aktionen auf einmal

Danke.

+1

Denken Sie daran, '@:' der letzte Befehl zu wiederholen, wahrscheinlich schneller – sehe

Antwort

6

Verwenden | als Befehlsseparator (siehe :help :bar):

:w|!svn commit -m foo 
+0

Vielen Dank, ist es genau der Separator ist, dass ich erforderlich. So naiv, dass ich den Begriff nicht kannte. Vielen Dank! – dotancohen

+0

Es wäre nett, diese Antwort als "akzeptiert" zu markieren – user907860

+0

@caligula: Ja, ich konnte die Antwort nicht für ein paar Minuten als akzeptiert markieren. Ich habe es jetzt getan! – dotancohen

2

Sie auch eine Funktion schreiben konnte. Z.B. etwas wie;

function! Commit(msg) 

    write 

    let response = system('svn commit -m "' . a:msg . '"') 

    echo response 

endfunction 

Dann später:

:call Commit('ticket 1234') 
+0

Danke, das werde ich mir überlegen. – dotancohen

1

@JoshLee gibt die wörtliche Antwort. Warum ist eine Tastaturbindung für Sie nicht akzeptabel?

nnoremap <Leader>s :w<bar>!svn commit -m<space> 

noch lassen Sie Ihre Nachricht begehen schreiben, bevor Sie die Eingabetaste drücken ...

+0

Danke, das ist eine großartige Idee. – dotancohen

Verwandte Themen