vim-markdown-runner et un flux de travail basé sur les notes

(Dan Bridges) (16 janvier 2020)

Jai récemment écrit un simple plugin vim, vim-markdown-runner , pour compléter mes notes de démarques basées sur flux de travail du projet. Dans cet article, je veux entrer dans quelques détails supplémentaires sur ce flux de travail et montrer à quel point sa simplicité est étonnamment puissante.

vim-markdown-runner en action

Structure globale

Je stocke tous mes fichiers de notes dans un seul répertoire racine dans Dropbox. Cela me permet dafficher et de modifier facilement les notes à partir dun appareil mobile. Cette structure de répertoire racine reflète mon répertoire personnel, ce qui me permet dassocier des chemins de fichiers de projet à leur fichier de notes. Par exemple, si jai un projet dans ~/projects/side-projects/my-project, le fichier de note associé se trouve à ~/Dropbox/notes/projects/side-projects/my-project.md.

Je crée ensuite un lien symbolique .notefile dans le dossier du projet dorigine qui pointe vers le chemin complet basé sur Dropbox. La raison de la création du lien symbolique est double: (i) pour permettre la visualisation rapide dun fichier à partir du répertoire du projet, et (ii) pour que lors de lédition dun fichier, vim reste dans le dossier du projet, donc des choses comme la recherche ctrlp fonctionnent toujours comme prévu (au lieu de chercher accidentellement dans le dossier notes).

Jai ajouté quelques fonctions et une commande :Notes à mon .vimrc pour créer ou ouvrir le fichier de notes associé pour mon répertoire de travail actuel.

Notes() fait le gros du travail. Si un .notefile est déjà présent, il louvre simplement. Sil ny a pas de .notefile, il exécute NotesInitNew() qui vérifie si le fichier Dropbox associé existe. Si le fichier n’existe pas encore dans Dropbox, il crée la structure de répertoire correcte, puis crée un nouveau fichier de démarque déjà rempli avec un titre basé sur le nom du répertoire final. Enfin, le lien symbolique .notefile est créé, puis ouvert.

Dans un fichier de notes

Dans un fichier de notes typique, jaurai le listes habituelles de tâches, notes de réunion aléatoires et autres éléments de routine, mais le vrai pouvoir vient de vim-markdown-runner qui me permet davoir des terrains de jeux interactifs, des scripts spécifiques à un projet et un client API de base détaillant les itinéraires dun projet, remplaçant Postman ou Paw .

Terrains de jeux

Pendant le développement, je dépanne ou vérifie souvent un petit morceau de code, avoir un simple terrain de jeu facilite grandement cela.

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

Avec vim-markdown-runner, je peux placer mon curseur dans lun de ces blocs de code et les exécuter. La langue / lenvironnement corrects seront automatiquement détectés, et dans le cas de Go, certaines étapes supplémentaires sont effectuées pour ajouter un main() et exécuter goimports .

Scripts

Jaurai souvent des scripts spécifiques à un projet qui ne valent pas vraiment la peine dêtre placés dans leurs propres fichiers. Je peux également exécuter ceux avec vim-markdown-runner:

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

Si aucune langue nest spécifiée dans le bloc de code, vim-markdown-runner lexécutera avec tout ce que $SHELL est défini sur.

Client API

Dans les projets de développement Web, jai une section Endpoints dans mon fichier de notes, comme un simple remplacement pour Postman et similaires. Ce ne sont que des commandes httpie , mais cela me permet de cataloguer et de réexécuter facilement des itinéraires courants:

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

Comme vous pouvez le voir, il existe une variété de cas dutilisation puissants que vim-markdown-runner gère. Il est également très configurable, vous devriez donc pouvoir lajuster à vos propres besoins.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *