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).
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.
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:
Um die tabellarische Ausgabe wiederherzustellen:
%Vor%Ich habe das bei meiner Installation erfolgreich getestet.
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