Kann ich eine MySQL-Abfrage von Vim visuelle Auswahl mit Ausgabe in einem neuen Puffer ausführen

7

Gegeben eine Datei, die aus mehrzeiligen MySQL-Abfragen besteht, zB

%Vor%

Gibt es irgendeine Möglichkeit, eine Abfrage in Vim visuell auszuwählen, sie über MySQL zu puffern und die Abfrage zu sehen und einen neuen Puffer zu erzeugen?

Klarstellung: Ich möchte keine Tabellenausgabe, sondern etwas, das in vim weiterverarbeitet oder in eine Tabelle importiert werden kann (wie die tab-separierte Ausgabe, die Sie von mysql --batch erhalten). (Ubuntu Linux).

    
Ken 12.04.2012, 14:01
quelle

3 Antworten

20

Das Dbext -Plugin unterstützt dieses Verhalten.

Wählen Sie die SQL-Anweisung visuell aus, und führen Sie :DBExecRangeSQL aus, um sie auszuführen.

Das Ergebnis wird zu einem neuen Split am unteren Rand des aktuellen Ansichtsfensters zurückgegeben.

Es gibt viele und viele Optionen zum Steuern des Ausgabefensters. Siehe :help dbext für die glorreichen Details.

Update 1.Mai.2012

Version 15.0 des Plugins wurde mit dieser integrierten Funktionalität veröffentlicht.

Das default -t -Flag kann überschrieben werden

Standardeinstellung:

%Vor%

Überschrieben für Stapeleinstellung

%Vor%

Dbext codiert die Option -t für MySQL fest, aber wenn diese Zeile aus dbext.vim entfernt wird, in Zeile 2278 in DB_MYSQL_execSql (meiner aktuellen Version), können Sie die --batch und - übergeben -raw Optionen:

%Vor%

Um die tabellarische Ausgabe wiederherzustellen:

%Vor%

Ich habe das bei meiner Installation erfolgreich getestet.

    
Michael Berkowski 12.04.2012, 14:13
quelle
2

Danke an Michael und Zsolt Botykai, die dbext und andere vim-Plugins vorgeschlagen haben - sie scheinen jedoch keine rohe Ausgabe zu liefern.

Ich habe das Folgende in meine .vimrc eingefügt, inspiriert von Matias 'Antwort hier . Dies ist mein erster Versuch von vimscript, also avisiere mich ...

%Vor%

Wählen Sie die Abfrage visuell aus, drücken Sie F5 (oder: call Query ()), und das Ergebnis wird in einem neuen Puffer geöffnet.

Es setzt Linux voraus (mit mktemp) und bekommt Verbindungsdetails von .my.cnf

    
Ken 13.04.2012 10:40
quelle
1

Probieren Sie das dbext Plugin aus.

Aber es gibt einige andere für diese Aufgabe.

    
Zsolt Botykai 12.04.2012 14:13
quelle

Tags und Links