Ich versuche, vim in meinen Hauptarbeitsablauf zu integrieren. Ein wichtiger Knackpunkt für mich war das interaktive Bearbeiten und Ausführen von Programmen / Skripten.
Zum Beispiel, weil ich derzeit in test.py
vimme %Vor% Ohne vim zu verlassen, wie würde ich:
a) führe das ganze Skript aus, ohne vim zu verlassen
b) laufe einfach "print ('hallo')"
Kommentatoren und die andere Antwort haben gezeigt, wie man eine Datei von vim aus ausführt. Aber sie beschönigten einige wirklich mächtige Möglichkeiten. Ich möchte erklären, wie einige von denen genauer arbeiten.
Die einfachste Möglichkeit, ein Python-Skript in vim auszuführen, besteht darin, einfach den Python-Interpreter für die Datei aufzurufen, z. B.
%Vor%oder, wie ich es vorziehe, um sicherzustellen, dass es keine ungespeicherten Änderungen gibt,
%Vor% Aber es ist nicht einmal notwendig, eine Datei zu haben, um ein Python-Skript in vim auszuführen. Der Grund dafür ist, dass :w
! = Save! :w
bedeutet write . Wenn kein Argument angegeben wird, wird zufällig in die Datei geschrieben, die Sie bearbeiten. Sie können > jedoch in STDOUT, in eine andere Datei oder sogar in ein anderes Programm schreiben. Wenn Sie also Ihren Puffer als Python-Code ausführen möchten, ohne eine Datei zum Speichern und Ausführen zu haben, können Sie einfach Folgendes tun:
Dies bedeutet Schreiben den aktuellen Puffer in das externe Programm "python". Dies sendet buchstäblich den Inhalt Ihres Puffers direkt an Python.
Hier wird es jetzt wirklich cool. In vim ist :w
ein "ex-Befehl", z. ein Befehl, den Sie über die vim-Befehlszeile ausführen, die ursprünglich aus ex stammt, einem sehr alten zeilenbasierten Unix-Text Editor. Das Tolle an ex-Befehlen ist, dass sie, da sie alle linienbasiert sind, direkt angeben können, auf welche Zeilen der Befehl angewendet werden soll. Zum Beispiel:
schreibt nur Zeile zwei in die Datei "myfile.txt". Sie können sogar einen Bereich, z.
%Vor%schreibt die Zeilen 2-7 in "myfile.txt". Dies bedeutet, dass wir mit Ihrem Beispiel
ausführen können %Vor%um nur
auszuführen %Vor%Um dies bequemer zu machen, können Sie den visuellen Modus verwenden, um jede Zeile auszuwählen, die Sie ausführen möchten, die automatisch den richtigen Bereich für Sie ausfüllt. Dies wird aussehen wie
%Vor%Um das bequemer zu machen, würde ich empfehlen, etwas wie
hinzuzufügen %Vor% zu deinem .vimrc
. Dann können Sie visuell auswählen, was Sie wollen, und es als Python-Code ausführen, indem Sie
(Ersetze \
mit allem, was du als Anführer eingerichtet hast). Du könntest auch
oder
%Vor%abhängig davon, ob Sie in eine Datei speichern möchten oder nicht.
Sie können ein Programm von vim ausführen, indem Sie :!
, d. h. :!python3 %
verwenden, um Ihr aktuelles Skript auszuführen.
Wenn Sie einen Schlüssel an ihn binden möchten, wäre ein weiterer einfacher Weg, makeprg
auf Ihre ausführbare Python-Datei zu setzen: :set makeprg=python3
und binden Sie dann einen Schlüssel an :make<cr>
. In diesem Fall würde ich autocmds einrichten, die den makeprg
abhängig vom Dateityp umschalten.
Wenn Sie eine einfache Anweisung ausführen möchten, können Sie Pythons -c
switch verwenden:
:!python3 -c 'print("Hello world")'
, oder Sie könnten einfach :!python3
ohne Argumente ausführen, die in eine REPL fallen gelassen werden, ohne Vim zu verlassen.
Erstellen Sie eine Funktion für einen Bereich, wie in diese Frage:
%Vor%Erstellen Sie ein Mapping für den visuellen Modus:
%Vor% Dann können Sie einen Bereich auswählen und Control - F6 drücken. Der Zeilenbereich wird von python
ausgeführt. Das Ergebnis wird im Befehlsbereich angezeigt.
Tags und Links vim