vim-markdown-runner e um fluxo de trabalho baseado em notas

(Dan Bridges) (16 de janeiro de 2020)

Recentemente escrevi um plugin simples do vim, vim-markdown-runner , para complementar minhas anotações com base fluxo de trabalho do projeto. Nesta postagem, quero entrar em mais alguns detalhes sobre esse fluxo de trabalho e mostrar como sua simplicidade é surpreendentemente poderosa.

vim-markdown-runner em ação

Estrutura geral

Eu armazeno todos os meus arquivos de notas em um único diretório raiz no Dropbox. Isso me permite visualizar e editar facilmente as notas de um dispositivo móvel. Essa estrutura de diretório raiz espelha meu diretório inicial, o que me permite associar caminhos de arquivo de projeto a seu arquivo de notas. Por exemplo, se eu tenho um projeto em ~/projects/side-projects/my-project, o arquivo de nota associado está localizado em ~/Dropbox/notes/projects/side-projects/my-project.md.

Eu então crio um link simbólico .notefile na pasta do projeto original que aponta para o caminho completo baseado no Dropbox. A razão para criar o link simbólico é dupla: (i) para permitir a visualização rápida de um arquivo de dentro do diretório do projeto, e (ii) para que, ao editar um arquivo, o vim permaneça na pasta do projeto, então coisas como pesquisa ctrlp ainda funcionam como esperado (em vez de pesquisar acidentalmente a pasta de notas).

Eu adicionei algumas funções e um comando :Notes ao meu .vimrc para criar ou abrir o arquivo de anotação associado para meu diretório de trabalho atual.

Notes() faz o trabalho pesado. Se um .notefile já estiver presente, ele simplesmente o abre. Se não houver um .notefile, ele executa NotesInitNew() que verifica se o arquivo Dropbox associado existe. Se o arquivo ainda não existir no Dropbox, ele criará a estrutura de diretório correta e, em seguida, criará um novo arquivo markdown já preenchido com um título baseado no nome do diretório final. Finalmente, o .notefile link simbólico é criado e aberto.

Dentro de um arquivo de nota

Dentro de um arquivo de nota típico, terei o listas usuais de tarefas, notas de reuniões aleatórias e outros itens de rotina, mas o verdadeiro poder vem do vim-markdown-runner que me permite ter playgrounds interativos, scripts específicos de projeto e um cliente API básico detalhando as rotas do projeto, substituindo Postman ou Paw .

Playgrounds

Durante o desenvolvimento, geralmente estou resolvendo problemas ou verificando um pequeno trecho de código, ter um playground simples facilita muito isso.

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

Com o vim-markdown-runner, posso colocar meu cursor em qualquer um desses blocos de código e executá-los. O idioma / ambiente correto será detectado automaticamente e, no caso do Go, algumas etapas adicionais são realizadas para adicionar um main() e executar goimports .

Scripts

Freqüentemente, terei scripts específicos para projetos que não valem a pena colocar em seus próprios arquivos. Também posso executar aqueles com vim-markdown-runner:

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

Se nenhum idioma for especificado no bloco de código vim-markdown-runner irá executá-lo com qualquer que seja o $SHELL definido.

Cliente API

Nos projetos de desenvolvimento da web, tenho uma seção Endpoints em meu arquivo de nota, como um simples substituto para Postman e similares. Esses são apenas comandos httpie , mas me permitem catalogar e executar novamente rotas comuns:

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

Como você pode ver, há uma variedade de casos de uso poderosos que o vim-markdown-runner gerencia. Também é muito configurável, portanto você deve ser capaz de ajustá-lo às suas próprias necessidades.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *