Allgemeine Einführung
VimLM ist ein Vim-Plugin, das einen Code-Assistenten bereitstellt, der durch das native LLM (Large Language Model) gesteuert wird. Indem es mit dem nativen LLM-Modell durch Vim-Befehle interagiert, erhält es automatisch den Code-Kontext, um den Nutzern bei der Code-Bearbeitung in Vim zu helfen. Inspiriert von GitHub Copilot und Cursor, integriert VimLM kontextbezogenes Code-Verständnis, Code-Zusammenfassung und KI-unterstützte Funktionalität direkt in den Vim-Workflow. VimLM unterstützt eine breite Palette von MLX-kompatiblen Modellen mit intuitiver Tastenbindung und Split-Screen-Antwort, wodurch sichergestellt wird, dass die Benutzer in Offline-Umgebungen ohne API-Aufrufe oder Datenlecks sicher arbeiten können.
Funktionsliste
- modellunabhängigMLX: Verwendung eines beliebigen MLX-kompatiblen Modells über die Konfigurationsdatei
- Vim Native BenutzererfahrungIntuitive Tastenkombinationen und Split-Screen-Reaktion
- tiefes kontextuelles VerständnisCode-Kontext aus der aktuellen Datei, visuellen Auswahlen, referenzierten Dateien und der Projektverzeichnisstruktur abrufen
- Dialogkodierung: Iterative Optimierung durch nachfolgende Abfragen
- Offline-SicherheitVollständige Offline-Nutzung, keine API-Aufrufe oder Datenverluste erforderlich
- Code-Extraktion und ErsetzungEinfügen: Fügt einen Codeblock aus der Antwort in den Auswahlbereich ein.
- Externer Kontext Ergänzungen: Fügen Sie eine externe Datei oder einen externen Ordner mit dem Befehl !include in den Kontext ein.
- Erstellung von ProjektdateienGenerieren von Projektdateien mit dem Befehl !deploy.
- Die Antwort wird weiterhin generiert: Setzen Sie die Erzeugung der unterbrochenen Antwort mit dem Befehl !continue fort.
- Fortsetzung des Themas: Fortsetzen des aktuellen Threads mit dem Befehl !followup.
Hilfe verwenden
Ablauf der Installation
- Stellen Sie sicher, dass Python 3.12.8 auf Ihrem System installiert ist.
- Installieren Sie VimLM mit pip:
pip install vimlm
Grundlegende Verwendung
- Vom Normalmodus::
- Presse
Strg-l
Fügt dem Kontext die aktuelle Zeile und Datei hinzu. - Beispiel-Hinweis: "Regulärer Ausdruck zum Entfernen von HTML-Tags aus item.content".
- Presse
- Vom visuellen Modus::
- Wählen Sie den Codeblock aus und drücken Sie
Strg-l
Fügt den ausgewählten Block und die aktuelle Datei zum Kontext hinzu. - Beispieltipp: "Konvertieren Sie diesen Code in die async/await-Syntax".
- Wählen Sie den Codeblock aus und drücken Sie
- Nachfassender Dialog::
- Presse
Strg-j
: Fortsetzung des aktuellen Themas. - Beispiel für eine Folgemaßnahme: "Wechsel zu Manifest V3".
- Presse
- Code-Extraktion und Ersetzung::
- Presse
Strg-p
Einfügen: Fügt einen Codeblock aus der Antwort in den zuletzt ausgewählten Bereich (normaler Modus) oder den aktiven Auswahlbereich (visueller Modus) ein. - Beispiel-Workflow: Wählen Sie ein Stück Code im visuellen Modus aus, drücken Sie die
Strg-l
bei der Aufforderung "Konvertiere diesen Code in die async/await-Syntax", und drücken Sie dann dieStrg-p
Ersetzen Sie den ausgewählten Code.
- Presse
- Inline-Befehl::
!include
: Externen Kontext hinzufügen.- Beispiel: "AJAXify this application !include ~/scrap/hypermedia-applications.summ.md".
!deploy
Generieren Sie die Projektdatei.- Beispiel: "REST-API-Endpunkt erstellen !deploy . /api".
!weiter
: Generieren Sie weiterhin Antworten.- Beispiel: "Zusammenfassung !include large-file.txt !continue 5000".
!Weiterverfolgung
: Fortsetzung des aktuellen Themas.- Beispiel: "Eine Chrome-Erweiterung erstellen".
Detaillierte Vorgehensweise
- Hinzufügen von Kontext::
- Im Normalmodus drücken Sie
Strg-l
Fügt dem Kontext die aktuelle Zeile und Datei hinzu. - Wählen Sie im visuellen Modus den Codeblock aus und drücken Sie die
Strg-l
Fügt den ausgewählten Block und die aktuelle Datei zum Kontext hinzu.
- Im Normalmodus drücken Sie
- Code generieren::
- Drücken Sie im Normalmodus oder im visuellen Modus
Strg-l
Aufforderung zur Codegenerierung. - Presse
Strg-p
Fügen Sie den generierten Code in den Auswahlbereich ein.
- Drücken Sie im Normalmodus oder im visuellen Modus
- Nachfassender Dialog::
- Presse
Strg-j
Setzen Sie den aktuellen Thread zur iterativen Optimierung fort.
- Presse
- Hinzufügen eines externen Kontexts::
- ausnutzen
!include
um dem Kontext eine externe Datei oder einen externen Ordner hinzuzufügen. - Beispiel: "AJAXify this application !include ~/scrap/hypermedia-applications.summ.md".
- ausnutzen
- Projektdateien generieren::
- ausnutzen
!deploy
Befehl, um die Projektdatei zu erzeugen. - Beispiel: "REST-API-Endpunkt erstellen !deploy . /api".
- ausnutzen
- Fortsetzung der Erstellung der Antwort::
- ausnutzen
!weiter
Befehl weiterhin die unterbrochene Antwort erzeugt. - Beispiel: "Zusammenfassung !include large-file.txt !continue 5000".
- ausnutzen
- Fortsetzung des Themas::
- ausnutzen
!Weiterverfolgung
um den aktuellen Thread fortzusetzen. - Beispiel: "Eine Chrome-Erweiterung erstellen".
- ausnutzen