vim-markdown-runner og en Notes Based Workflow

(Dan Bridges) (16. jan 2020)

Jeg skrev nylig et enkelt vim-plugin, vim-markdown-runner , for å utfylle mine markdown-notater basert prosjekt arbeidsflyt. I dette innlegget vil jeg gå inn på noen flere detaljer om denne arbeidsflyten og vise hvordan enkelheten er overraskende kraftig.

vim-markdown-runner in action

Overordnet struktur

Jeg lagrer alle notatfilene mine i en enkelt rotkatalog i Dropbox. Dette lar meg enkelt se og redigere notatene fra en mobil enhet. Denne rotkatalogstrukturen speiler hjemmekatalogen min, som lar meg knytte prosjektfilbaner til notatfilen. For eksempel hvis jeg har et prosjekt i ~/projects/side-projects/my-project, er den tilhørende notatfilen plassert på ~/Dropbox/notes/projects/side-projects/my-project.md.

Jeg oppretter deretter en symlink .notefile i den opprinnelige prosjektmappen som peker til den fullstendige Dropbox-baserte banen. Årsaken til å opprette symlink er todelt: (i) for å muliggjøre rask visning av en fil fra prosjektkatalogen, og (ii) slik at når du redigerer en fil, forblir vim i prosjektmappen, slik at ting som ctrlp-søk fortsatt fungerer som forventet (i stedet for ved et uhell å søke i notatmappen).

Jeg la til noen funksjoner og en :Notes kommando til .vimrc for å opprette eller åpne den tilknyttede notatfilen for min nåværende arbeidskatalog.

Notes() løfter tungt. Hvis en .notefile allerede er til stede, åpnes den bare. Hvis det ikke er .notefile, kjører den NotesInitNew() som sjekker om den tilknyttede Dropbox-filen eksisterer. Hvis filen ikke eksisterer i Dropbox ennå, skaper den riktig katalogstruktur, og oppretter en ny markdown-fil som allerede er fylt med en tittel basert på det endelige katalognavnet. Til slutt opprettes .notefile symlink og åpnes.

Inne i en notatfil

Inne i en typisk notatfil vil jeg ha vanlige lister over todos, tilfeldige møtenotater og andre rutinemessige ting, men den virkelige kraften kommer fra vim-markdown-runner som lar meg ha interaktive lekeplasser, prosjektspesifikke skript og en grunnleggende API-klient som beskriver en prosjektrute, erstatter Postman eller Paw .

Lekeplasser

Under utviklingen feilsøker jeg ofte eller verifiserer et lite stykke kode, det å ha en enkel lekeplass letter dette veldig.

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

Med vim-markdown-runner kan jeg plassere markøren min i en av disse kodeblokkene og utføre dem. Rett språk / miljø oppdages automatisk, og i tilfelle Go utføres det flere trinn for å legge til en main() og kjøre goimports .

Skripter

Jeg vil ofte ha prosjektspesifikke skript som det egentlig ikke er verdt å legge inn sine egne filer. Jeg kan også kjøre de med vim-markdown-runner:

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

Hvis det ikke er spesifisert noe språk i kodeblokken, vil vim-markdown-runner kjøre den med uansett hva $SHELL er satt til.

API-klient

Innen webutviklingsprosjekter har jeg en Endpoints-seksjon i notatfilen min, som en enkel erstatning for Postmann og lignende. Dette er bare httpie -kommandoer, men det lar meg enkelt katalogisere og kjøre vanlige ruter på nytt:

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

Som du kan se, er det en rekke kraftige brukstilfeller som vim-markdown-runner håndterer. Den er også veldig konfigurerbar, så du bør kunne tilpasse den til dine egne behov.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *