vim-markdown-runner y un flujo de trabajo basado en notas

Publicado el

(Dan Bridges) (16 de enero de 2020)

Recientemente escribí un complemento vim simple, vim-markdown-runner , para complementar mis notas de rebajas basadas flujo de trabajo del proyecto. En esta publicación, quiero entrar en algunos detalles más sobre este flujo de trabajo y mostrar cómo su simplicidad es sorprendentemente poderosa.

vim-markdown-runner en acción

Estructura general

Guardo todos mis archivos de notas en un solo directorio raíz en Dropbox. Esto me permite ver y editar fácilmente las notas desde un dispositivo móvil. Esta estructura de directorio raíz refleja mi directorio de inicio, lo que me permite asociar rutas de archivo de proyecto con su archivo de notas. Por ejemplo, si tengo un proyecto en ~/projects/side-projects/my-project, el archivo de notas asociado se encuentra en ~/Dropbox/notes/projects/side-projects/my-project.md.

Luego creo un enlace simbólico .notefile en la carpeta del proyecto original que apunta a la ruta completa basada en Dropbox. La razón para crear el enlace simbólico es doble: (i) para permitir una visualización rápida de un archivo desde el directorio del proyecto, y (ii) para que al editar un archivo, vim permanezca en la carpeta del proyecto, por lo que cosas como la búsqueda ctrlp aún funcionan como se esperaba (en lugar de buscar accidentalmente en la carpeta de notas).

Agregué algunas funciones y un comando :Notes a mi .vimrc para crear o abrir el archivo de notas asociado para mi directorio de trabajo actual.

Notes() hace el trabajo pesado. Si un .notefile ya está presente, simplemente lo abre. Si no hay un .notefile, ejecuta NotesInitNew() que comprueba si existe el archivo de Dropbox asociado. Si el archivo aún no existe en Dropbox, crea la estructura de directorio correcta y luego crea un nuevo archivo de rebajas ya poblado con un título basado en el nombre del directorio final. Finalmente, se crea el enlace simbólico .notefile y luego se abre.

Dentro de un archivo de nota

Dentro de un archivo de nota típico tendré el listas habituales de todos, notas de reuniones aleatorias y otros elementos de rutina, pero el verdadero poder proviene de vim-markdown-runner, que me permite tener áreas de juego interactivas, scripts específicos de proyectos y un cliente API básico que detalla las rutas de un proyecto, reemplazando a Postman o Paw .

Patios de juegos

Durante el desarrollo, a menudo soluciono problemas o verifico un pequeño fragmento de código, tener un área de juegos simple facilita enormemente esto.

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

Con vim-markdown-runner puedo colocar mi cursor en cualquiera de esos bloques de código y ejecutarlos. El idioma / entorno correcto se detectará automáticamente y, en el caso de Go, se realizarán algunos pasos adicionales para agregar un main() y ejecutar goimports .

Scripts

A menudo tendré scripts específicos del proyecto que realmente no vale la pena poner en sus propios archivos. También puedo ejecutar aquellos con vim-markdown-runner:

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

Si no se especifica ningún idioma en el bloque de código, vim-markdown-runner lo ejecutará con lo que sea que $SHELL esté configurado.

API Client

Dentro de los proyectos de desarrollo web, tengo una sección Endpoints en mi archivo de notas, como un simple reemplazo de cartero y similares. Estos son solo comandos httpie , pero me permiten catalogar y volver a ejecutar fácilmente rutas comunes:

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

Como puede ver, hay una variedad de casos de uso poderosos que maneja vim-markdown-runner. También es muy configurable, por lo que debería poder ajustarlo a sus propias necesidades.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *