vim-markdown-Läufer und ein Notes-basierter Workflow

Veröffentlicht

(Dan Bridges) (16. Januar 2020)

Ich habe kürzlich ein einfaches Vim-Plugin geschrieben, Vim-Markdown-Runner , um meine Markdown-Notizen zu ergänzen Projektworkflow. In diesem Beitrag möchte ich auf einige weitere Details zu diesem Workflow eingehen und zeigen, wie überraschend einfach er ist.

vim-markdown-runder in Aktion

Gesamtstruktur

Ich speichere alle meine Notizdateien in einer einzigen Stammverzeichnis in Dropbox. Auf diese Weise kann ich die Notizen einfach von einem mobilen Gerät aus anzeigen und bearbeiten. Diese Stammverzeichnisstruktur spiegelt mein Ausgangsverzeichnis wider, sodass ich Projektnotizpfade mit ihrer Notizdatei verknüpfen kann. Wenn ich beispielsweise ein Projekt in ~/projects/side-projects/my-project habe, befindet sich die zugehörige Notizdatei unter ~/Dropbox/notes/projects/side-projects/my-project.md.

Ich erstelle dann Ein Symlink .notefile im ursprünglichen Projektordner, der auf den vollständigen Dropbox-basierten Pfad verweist. Der Grund für das Erstellen des Symlinks ist zweierlei: (i) um eine schnelle Anzeige einer Datei aus dem Projektverzeichnis heraus zu ermöglichen, und (ii) damit beim Bearbeiten einer Datei vim im Projektordner verbleibt, sodass Dinge wie die Strg-Suche weiterhin funktionieren wie erwartet (anstatt versehentlich den Notizenordner zu durchsuchen).

Ich habe meinem .vimrc:Notes -Befehl hinzugefügt / div> zum Erstellen oder Öffnen der zugehörigen Notizdatei für mein aktuelles Arbeitsverzeichnis.

Notes() erledigt das schwere Heben. Wenn bereits eine .notefile vorhanden ist, wird diese einfach geöffnet. Wenn keine .notefile vorhanden ist, wird NotesInitNew() ausgeführt, um zu überprüfen, ob die zugehörige Dropbox-Datei vorhanden ist. Wenn die Datei noch nicht in Dropbox vorhanden ist, wird die richtige Verzeichnisstruktur erstellt. Anschließend wird eine neue Markdown-Datei erstellt, die bereits mit einem Titel gefüllt ist, der auf dem endgültigen Verzeichnisnamen basiert. Schließlich wird der Symlink .notefile erstellt und dann geöffnet.

In einer Notendatei

In einer typischen Notendatei habe ich die Übliche Listen mit Aufgaben, zufälligen Besprechungsnotizen und anderen Routineelementen, aber die wahre Stärke kommt von vim-markdown-runder, der es mir ermöglicht, interaktive Spielplätze, projektspezifische Skripte und einen grundlegenden API-Client zu haben, der die Projektrouten detailliert und Postman oder Paw ersetzt

Spielplätze

Während der Entwicklung behebe oder überprüfe ich häufig einen kleinen Code. Ein einfacher Spielplatz erleichtert dies erheblich.

## Playground```go
fmt.Println(os.Getwd())
``````python
import pandas as pd
print(pd.read\_csv("data.csv"))
```

Mit vim-markdown-running kann ich meinen Cursor in einen dieser Codeblöcke setzen und ausführen. Die richtige Sprache / Umgebung wird automatisch erkannt, und im Fall von Go werden einige zusätzliche Schritte ausgeführt, um eine main() hinzuzufügen und goimports auszuführen .

Skripte

Ich habe oft projektspezifische Skripte, die es nicht wirklich wert sind, in ihre eigenen Dateien eingefügt zu werden. Ich kann diese auch mit vim-markdown-running ausführen:

## Scripts```
get\_name() {
echo "Dan"
}echo "You are $(get\_name)"
```

Wenn im Codeblock keine Sprache angegeben ist, wird sie von vim-markdown-running ausgeführt Was auch immer $SHELL ist.

API-Client

In Webentwicklungsprojekten habe ich einfach einen Endpunktabschnitt in meiner Notizdatei Ersatz für Postbote und dergleichen. Dies sind nur httpie -Befehle, aber es ermöglicht mir, allgemeine Routen einfach zu katalogisieren und erneut auszuführen:

## Endpoints```
http localhost:3000/api/todos
``````
http POST localhost:3000/api/todos title=Stuff
```...etc

Wie Sie sehen, gibt es eine Vielzahl leistungsstarker Anwendungsfälle, die von vim-markdown-running behandelt werden. Es ist auch sehr konfigurierbar, sodass Sie es an Ihre eigenen Bedürfnisse anpassen können sollten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.