vim-markdown-runner en een op Notes gebaseerde workflow

(Dan Bridges) (16 jan.2020)

Ik heb onlangs een eenvoudige vim-plug-in geschreven, vim-markdown-runner , als aanvulling op mijn notities op basis van project workflow. In dit bericht wil ik wat meer details over deze workflow bespreken en laten zien hoe de eenvoud ervan verrassend krachtig is.

vim-markdown-runner in actie

Algemene structuur

Ik bewaar al mijn notitiebestanden in een enkele hoofddirectory in Dropbox. Hierdoor kan ik de notities gemakkelijk vanaf een mobiel apparaat bekijken en bewerken. Deze root directory-structuur weerspiegelt mijn homedirectory, waardoor ik projectbestandspaden kan associëren met hun notitiebestand. Als ik bijvoorbeeld een project heb in ~/projects/side-projects/my-project, bevindt het bijbehorende notitiebestand zich op ~/Dropbox/notes/projects/side-projects/my-project.md.

Vervolgens maak ik een symlink .notefile in de oorspronkelijke projectmap die naar het volledige Dropbox-gebaseerde pad verwijst. De reden voor het maken van de symlink is tweeledig: (i) om een ​​bestand snel te kunnen bekijken vanuit de projectdirectory, en (ii) zodat bij het bewerken van een bestand vim in de projectmap blijft, dus dingen als ctrlp-zoeken werken nog steeds zoals verwacht (in plaats van per ongeluk in de notitiemap te zoeken).

Ik heb een paar functies en een :Notes commando toegevoegd aan mijn .vimrc om het bijbehorende notitiebestand voor mijn huidige werkdirectory te maken of te openen.

Notes() doet het zware werk. Als een .notefile al aanwezig is, wordt deze gewoon geopend. Als er geen .notefile is, wordt NotesInitNew() uitgevoerd die controleert of het bijbehorende Dropbox-bestand bestaat. Als het bestand nog niet bestaat in Dropbox, wordt de juiste directorystructuur gemaakt en vervolgens wordt een nieuw markdown-bestand gemaakt dat al is gevuld met een titel op basis van de uiteindelijke directorynaam. Ten slotte wordt de .notefile symlink gemaakt en vervolgens geopend.

In een notitiebestand

In een typisch notitiebestand heb ik de gebruikelijke lijsten met taken, willekeurige vergadernotities en andere routine-items, maar de echte kracht komt van vim-markdown-runner waarmee ik interactieve speelplaatsen heb, projectspecifieke scripts en een eenvoudige API-client met details over de routes van een project, ter vervanging van Postman of Paw .

Speeltuinen

Tijdens de ontwikkeling ben ik vaak bezig met het oplossen van problemen of het verifiëren van een klein stukje code, het hebben van een eenvoudige speeltuin vergemakkelijkt dit enorm.

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

Met vim-markdown-runner kan ik mijn cursor in elk van die codeblokken plaatsen en ze uitvoeren. De juiste taal / omgeving wordt automatisch gedetecteerd en in het geval van Go worden enkele aanvullende stappen uitgevoerd om een ​​main() toe te voegen en goimports uit te voeren .

Scripts

Ik heb vaak projectspecifieke scripts die het niet echt waard zijn om in hun eigen bestanden te plaatsen. Ik kan die ook met vim-markdown-runner uitvoeren:

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

Als er geen taal is gespecificeerd in het codeblok, zal vim-markdown-runner het uitvoeren met wat $SHELL ook is ingesteld.

API Client

Binnen webontwikkelingsprojecten heb ik een Endpoints-sectie in mijn notitiebestand, als een simpele vervanging voor Postman en dergelijke. Dit zijn slechts httpie -opdrachten, maar het stelt me ​​in staat om eenvoudig veelgebruikte routes te catalogiseren en opnieuw uit te voeren:

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

Zoals je kunt zien, zijn er een aantal krachtige use-cases die vim-markdown-runner afhandelt. Het is ook erg configureerbaar, dus u zou het aan uw eigen behoeften moeten kunnen aanpassen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *