2017-03-13 3 views
1

Wenn ich einen Puffer von einer externen Quelle lese, ist dem aktuellen Puffer kein Dateiname zugeordnet. Das ist in Ordnung, aber was ist, wenn statt es in eine Datei auf der Festplatte zu schreiben, ich es stattdessen an einen Webservice senden möchte?Wie kann ich ändern, was Vim macht, wenn ich (versuche) den Puffer zu schreiben?

Kann ich irgendwie in was einhaken :w tut, und, je nach Dateityp, ändern wie schreibt es den Puffer?

In diesem Fall ist es recht einfach, eine REST-API zu verwenden, um den Inhalt einer Pesudo-Datei auf unserem CMS abzurufen. aber jetzt möchte ich eine Möglichkeit, eine PUT Anfrage zurück an die API senden, anstatt zu versuchen, es auf die Festplatte zu schreiben.

Idealerweise würde sich die Lösung in die niedrigstmögliche Ebene einklinken, so dass :up und :x auch den gewünschten Effekt haben.

+0

ist es nicht besser, einen anderen Befehl zu verwenden, um die Anfrage zu posten. Dies ist besser als integrierte Funktionen zu ändern. –

+0

Ich denke auch, es ist besser, einen neuen Befehl zu erstellen, um dies zu versuchen. Dieses Verhalten sollte nicht mit dem "Schreiben der Datei" verbunden sein, da Sie eindeutig nicht versuchen, die Datei zu schreiben. – rgoliveira

+0

@rgoliveira Aber ich möchte eine transparente Schnittstelle zwischen meinem Muskelgedächtnis und dem Zeug, das ich gerade bearbeite. Es macht mir nichts aus, dass ich * technisch * die Datei nicht schreibe; soweit ich und mein Muskelgedächtnis betroffen sind, bedeutet ': w', speichern, nicht schreiben. – Altreus

Antwort

2

Sie können hierfür den Autocommand BufWriteCmd verwenden. Die Erwartung von der Funktion, die Sie von diesem Befehl aufrufen, ist, dass sie "schreibt" (was in Ihrem Fall einen API-Aufruf macht, um sie an einen Dienst zu senden) und dann das Flag 'modified' aktualisiert, um anzuzeigen, dass die Datei gespeichert wurde (normalerweise Modified wäre zuerst wahr, aber Ihre Funktion würde es dann am Ende auf false setzen, wenn es erfolgreich zum Service gepostet wurde.)

Verwandte Themen