vim-markdown-runner och ett Notes-baserat arbetsflöde

Publicerad

(Dan Bridges) (16 jan 2020)

Jag skrev nyligen ett enkelt vim-plugin, vim-markdown-runner , för att komplettera mina markdown-anteckningar baserat projektets arbetsflöde. I det här inlägget vill jag gå in på några fler detaljer om detta arbetsflöde och visa hur enkelheten är förvånansvärt kraftfull.

vim-markdown-runner in action

Övergripande struktur

Jag lagrar alla mina anteckningsfiler i en enda rotkatalog i Dropbox. Detta gör att jag enkelt kan visa och redigera anteckningarna från en mobil enhet. Den här rotkatalogstrukturen speglar min hemkatalog, vilket gör att jag kan associera projektfilvägar till deras anteckningsfil. Till exempel om jag har ett projekt i ~/projects/side-projects/my-project finns den tillhörande anteckningsfilen på ~/Dropbox/notes/projects/side-projects/my-project.md.

Jag skapar sedan en symlink .notefile i den ursprungliga projektmappen som pekar på hela Dropbox-baserade sökvägen. Anledningen till att skapa symlink är dubbelt: (i) för att möjliggöra snabb visning av en fil från projektkatalogen, och (ii) så att vid redigering av en fil förblir vim kvar i projektmappen, så saker som ctrlp-sökning fortfarande fungerar som förväntat (istället för att av misstag söka i anteckningsmappen).

Jag lade till några funktioner och ett :Notes -kommando till mitt .vimrc för att skapa eller öppna tillhörande anteckningsfil för min nuvarande arbetskatalog.

Notes() gör tunga lyft. Om en .notefile redan finns öppnar den helt enkelt. Om det inte finns .notefile körs NotesInitNew() som kontrollerar om den associerade Dropbox-filen finns. Om filen inte finns i Dropbox ändå skapar den rätt katalogstruktur och skapar sedan en ny markdown-fil som redan är fylld med en titel baserat på det slutliga katalognamnet. Slutligen skapas .notefile symlink och öppnas sedan.

Inne i en anteckningsfil

Inuti en typisk anteckningsfil har jag vanliga listor med todos, slumpmässiga mötesanteckningar och andra rutinartiklar, men den verkliga kraften kommer från vim-markdown-runner som tillåter mig att ha interaktiva lekplatser, projektspecifika skript och en grundläggande API-klient som beskriver projektprojekt, ersätter Postman eller Paw .

Lekplatser

Under utvecklingen felsöker eller verifierar jag ofta en liten bit kod, med en enkel lekplats blir det mycket lättare.

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

Med vim-markdown-runner kan jag placera min markör i något av dessa kodblock och köra dem. Rätt språk / miljö kommer automatiskt att upptäckas och i fallet med Go utförs några ytterligare steg för att lägga till en main() och köra goimports .

Skript

Jag kommer ofta att ha projektspecifika skript som egentligen inte är värda att lägga i sina egna filer. Jag kan också köra dem med vim-markdown-runner:

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

Om inget språk anges i kodblocket kommer vim-markdown-runner att köra det med vad som helst $SHELL är inställt på.

API-klient

Inom webbutvecklingsprojekt har jag en Endpoints-sektion i min anteckningsfil, som en enkel ersättning för Postman och liknande. Det här är bara httpie -kommandon, men det låter mig enkelt katalogisera och köra om vanliga rutter:

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

Som du kan se finns det en mängd kraftfulla användningsfall som vim-markdown-runner hanterar. Det är också mycket konfigurerbart, så du bör kunna anpassa det efter dina egna behov.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *