vim-markdown-runner i przepływ pracy oparty na notatkach

(Dan Bridges) (16 stycznia 2020 r.)

Niedawno napisałem prostą wtyczkę vim, vim-markdown-runner , aby uzupełnić moje notatki ze zniżek na podstawie przepływ pracy w projekcie. W tym poście chciałbym omówić więcej szczegółów tego przepływu pracy i pokazać, jak jego prostota jest zaskakująco potężna.

vim-markdown-runner w akcji

Ogólna struktura

Przechowuję wszystkie moje pliki notatek w jednym katalog główny w Dropbox. Dzięki temu mogę łatwo przeglądać i edytować notatki z urządzenia mobilnego. Ta struktura katalogu głównego odzwierciedla mój katalog domowy, co pozwala mi powiązać ścieżki plików projektu z ich plikami notatek. Na przykład, jeśli mam projekt w ~/projects/side-projects/my-project, powiązany plik notatki znajduje się w ~/Dropbox/notes/projects/side-projects/my-project.md.

Następnie tworzę łącze symboliczne .notefile w oryginalnym folderze projektu, które wskazuje na pełną ścieżkę opartą na Dropbox. Powód tworzenia dowiązania symbolicznego jest dwojaki: (i) aby umożliwić szybkie przeglądanie pliku z katalogu projektu, oraz (ii) aby podczas edycji pliku vim pozostał w folderze projektu, więc takie rzeczy jak wyszukiwanie ctrlp nadal działają zgodnie z oczekiwaniami (zamiast przypadkowego przeszukiwania folderu notatek).

Dodałem kilka funkcji i polecenie :Notes do mojego .vimrc, aby utworzyć lub otworzyć powiązany plik notatki dla mojego bieżącego katalogu roboczego.

Notes() wykonuje ciężkie podnoszenie. Jeśli element .notefile jest już obecny, po prostu go otwiera. Jeśli nie ma .notefile, uruchamia NotesInitNew(), który sprawdza, czy powiązany plik Dropbox istnieje. Jeśli plik nie istnieje w Dropbox, ale tworzy poprawną strukturę katalogów, tworzy nowy plik promocji, który jest już wypełniony tytułem na podstawie ostatecznej nazwy katalogu. Na koniec tworzone jest łącze symboliczne .notefile, a następnie otwierane.

W pliku notatki

W typowym pliku notatki będę mieć zwykłe listy rzeczy do zrobienia, losowe notatki ze spotkań i inne rutynowe elementy, ale prawdziwa moc pochodzi z vim-markdown-runner, który pozwala mi mieć interaktywne place zabaw, skrypty specyficzne dla projektu i podstawowego klienta API opisującego trasy projektów, zastępując Postman lub Paw .

Place zabaw

Podczas programowania często rozwiązuję problemy lub weryfikuję mały fragment kodu, a prosty plac zabaw znacznie to ułatwia.

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

Dzięki vim-markdown-runner mogę umieścić kursor w jednym z tych bloków kodu i wykonać je. Poprawny język / środowisko zostanie automatycznie wykryty, aw przypadku Go zostaną wykonane dodatkowe czynności, aby dodać main() i uruchomić goimports .

Skrypty

Często będę mieć skrypty specyficzne dla projektu, których tak naprawdę nie warto umieszczać w swoich własnych plikach. Mogę je również uruchomić z vim-markdown-runner:

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

Jeśli żaden język nie jest określony w bloku kodu, vim-markdown-runner uruchomi go z cokolwiek $SHELL jest ustawione.

Klient API

W projektach tworzenia stron internetowych mam sekcję Endpoints w moim pliku notatki, jako prostą zamiennik dla Postmana i tym podobnych. To tylko polecenia httpie , ale pozwala mi to łatwo katalogować i ponownie uruchamiać typowe trasy:

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

Jak widać, istnieje wiele potężnych przypadków użycia, które obsługuje vim-markdown-runner. Jest również bardzo konfigurowalny, więc powinieneś być w stanie dostosować go do własnych potrzeb.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *