vim-markdown-runner og en Notes-baseret workflow

(Dan Bridges) (16. jan 2020)

Jeg skrev for nylig et simpelt vim-plugin, vim-markdown-runner , som supplement til mine markdown-noter baseret projekt workflow. I dette indlæg vil jeg gå ind på nogle få flere detaljer om denne arbejdsgang og vise, hvordan dens enkelhed er overraskende stærk.

vim-markdown-runner i aktion

Overordnet struktur

Jeg gemmer alle mine note-filer i en enkelt rodmappe i Dropbox. Dette giver mig mulighed for let at se og redigere noterne fra en mobilenhed. Denne rodmappestruktur afspejler min hjemmekatalog, som giver mig mulighed for at knytte projektfilstier til deres note-fil. For eksempel hvis jeg har et projekt i ~/projects/side-projects/my-project er den tilknyttede note-fil placeret på ~/Dropbox/notes/projects/side-projects/my-project.md.

Jeg opretter derefter et symlink .notefile i den originale projektmappe, der peger på den fulde Dropbox-baserede sti. Årsagen til oprettelsen af ​​symlinket er dobbelt: (i) for at give mulighed for hurtig visning af en fil fra projektmappen, og (ii), så når redigering af en fil forbliver vim i projektmappen, så ting som ctrlp-søgning stadig fungerer som forventet (i stedet for ved et uheld at søge i notesmappen).

Jeg tilføjede et par funktioner og en :Notes kommando til min .vimrc for at oprette eller åbne den tilknyttede note-fil til min nuværende arbejdsmappe.

Notes() løfter det tunge. Hvis en .notefile allerede er til stede, åbnes den simpelthen. Hvis der ikke er en .notefile, kører den NotesInitNew(), som kontrollerer, om den tilknyttede Dropbox-fil findes. Hvis filen ikke findes i Dropbox, opretter den den korrekte katalogstruktur, og opretter derefter en ny markdown-fil, der allerede er udfyldt med en titel baseret på det endelige katalognavn. Endelig oprettes .notefile symlink og åbnes derefter.

Inde i en note-fil

Inde i en typisk note-fil har jeg sædvanlige lister over todos, tilfældige møderotater og andre rutinemæssige emner, men den sande kraft kommer fra vim-markdown-runner, som giver mig mulighed for at have interaktive legepladser, projektspecifikke scripts og en grundlæggende API-klient, der beskriver en projektrute, der erstatter Postman eller Paw .

Legepladser

Under udviklingen foretager jeg ofte fejlfinding eller verificering af et lille stykke kode, idet en simpel legeplads letter dette meget.

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

Med vim-markdown-runner kan jeg placere min markør i en af ​​disse kodeblokke og udføre dem. Det korrekte sprog / miljø registreres automatisk, og i tilfælde af Go udføres der yderligere trin for at tilføje en main() og køre goimports .

Scripts

Jeg vil ofte have projektspecifikke scripts, der ikke rigtig er værd at lægge i deres egne filer. Jeg kan også køre dem med vim-markdown-runner:

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

Hvis der ikke er angivet noget sprog i kodeblokken, kører vim-markdown-runner det med uanset hvad $SHELL er indstillet til.

API-klient

Inden for webudviklingsprojekter har jeg en Endpoints-sektion i min notatfil som en simpel erstatning for Postbrevet og lignende. Dette er bare httpie kommandoer, men det giver mig mulighed for let at katalogisere og genkøre fælles ruter:

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

Som du kan se, er der en række kraftfulde brugssager, som vim-markdown-runner håndterer. Det er også meget konfigurerbart, så du skal være i stand til at tilpasse det til dine egne behov.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *