(Dan Bridges) (16 gennaio 2020)
Di recente ho scritto un semplice plug-in vim, vim-markdown-runner , per completare le mie note di ribasso basate flusso di lavoro del progetto. In questo post voglio entrare in qualche dettaglio in più su questo flusso di lavoro e mostrare come la sua semplicità sia sorprendentemente potente.

Struttura generale
Memorizzo tutti i file delle mie note in un unico directory principale in Dropbox. Ciò mi consente di visualizzare e modificare facilmente le note da un dispositivo mobile. Questa struttura della directory principale rispecchia la mia directory home, che mi consente di associare i percorsi dei file di progetto al loro file di note. Ad esempio, se ho un progetto in ~/projects/side-projects/my-project
il file della nota associato si trova in ~/Dropbox/notes/projects/side-projects/my-project.md
.
Quindi creo un collegamento simbolico .notefile
nella cartella del progetto originale che punta al percorso completo basato su Dropbox. Il motivo per la creazione del collegamento simbolico è duplice: (i) per consentire la visualizzazione rapida di un file dalla directory del progetto e (ii) in modo che durante la modifica di un file vim rimanga nella cartella del progetto, quindi cose come la ricerca ctrlp funzionano ancora come previsto (invece di cercare accidentalmente nella cartella delle note).
Ho aggiunto alcune funzioni e un comando :Notes
al mio .vimrc
per creare o aprire il file della nota associato per la mia directory di lavoro corrente.
Notes()
fa il lavoro pesante. Se un .notefile
è già presente, lo apre semplicemente. Se non è presente un .notefile
viene eseguito NotesInitNew()
che controlla se il file Dropbox associato esiste. Se il file non esiste ancora in Dropbox, crea la struttura di directory corretta, quindi crea un nuovo file markdown già popolato con un titolo basato sul nome della directory finale. Infine, viene creato il collegamento simbolico .notefile
, quindi aperto.
Allinterno di un file di note
Allinterno di un tipico file di note avrò il soliti elenchi di cose da fare, note di riunioni casuali e altri elementi di routine, ma il vero potere viene da vim-markdown-runner che mi consente di avere parchi giochi interattivi, script specifici del progetto e un client API di base che dettaglia i percorsi di un progetto, sostituendo Postman o Paw .
Playgrounds
Durante lo sviluppo spesso risolvo problemi o verifico un piccolo pezzo di codice, avere un semplice playground lo facilita enormemente.
## Playground```go
fmt.Println(os.Getwd())
``````python
import pandas as pd
print(pd.read\_csv("data.csv"))
```
Con vim-markdown-runner posso posizionare il cursore in uno di questi blocchi di codice ed eseguirli. La lingua / lambiente corretti verranno rilevati automaticamente e, nel caso di Go, vengono eseguiti alcuni passaggi aggiuntivi per aggiungere un main()
ed eseguire goimports
.
Script
Spesso avrò script specifici del progetto che non vale davvero la pena inserire nei propri file. Posso eseguirli anche con vim-markdown-runner:
## Scripts```
get\_name() {
echo "Dan"
}echo "You are $(get\_name)"
```
Se nessuna lingua è specificata nel blocco di codice, vim-markdown-runner la eseguirà con qualunque sia $SHELL
è impostato.
API Client
Allinterno dei progetti di sviluppo web ho una sezione Endpoint nel mio file di note, come semplice sostituto per Postman e simili. Questi sono solo comandi httpie , ma mi consentono di catalogare e rieseguire facilmente percorsi comuni:
## Endpoints```
http localhost:3000/api/todos
``````
http POST localhost:3000/api/todos title=Stuff
```...etc
Come puoi vedere ci sono una varietà di potenti casi duso gestiti da vim-markdown-runner. È anche molto configurabile, quindi dovresti essere in grado di adattarlo alle tue esigenze.