vim-markdown-runner 및 메모 기반 워크 플로

(Dan Bridges) (2020 년 1 월 16 일)

최근에 간단한 vim 플러그인 vim-markdown-runner 를 작성하여 프로젝트 워크 플로우. 이 게시물에서는이 워크 플로에 대해 몇 가지 더 자세히 살펴보고 그 단순성이 놀랍도록 강력한 방법을 보여 드리고자합니다.

vim-markdown-runner 실행

전체 구조

모든 메모 파일을 하나의 Dropbox의 루트 디렉터리. 이를 통해 모바일 장치에서 메모를 쉽게보고 편집 할 수 있습니다. 이 루트 디렉토리 구조는 내 홈 디렉토리를 미러링하므로 프로젝트 파일 경로를 노트 파일과 연결할 수 있습니다. 예를 들어 ~/projects/side-projects/my-project에 프로젝트가있는 경우 관련 메모 파일은 ~/Dropbox/notes/projects/side-projects/my-project.md에 있습니다.

그런 다음 생성합니다. 전체 Dropbox 기반 경로를 가리키는 원본 프로젝트 폴더의 심볼릭 링크 .notefile 심볼릭 링크를 생성하는 이유는 (i) 프로젝트 디렉토리 내에서 파일을 빠르게 볼 수 있도록하고 (ii) 파일을 편집 할 때 vim이 프로젝트 폴더에 남아 있으므로 ctrlp 검색과 같은 작업이 계속 작동합니다. 예상대로 (실수로 메모 폴더를 검색하는 대신)

.vimrc<에 몇 가지 기능과 :Notes 명령을 추가했습니다. / div> 현재 작업 디렉토리에 대한 관련 메모 파일을 만들거나 엽니 다.

Notes()는 무거운 작업을 수행합니다. .notefile가 이미 있으면 간단히 엽니 다. .notefile가 없으면 연결된 Dropbox 파일이 있는지 확인하는 NotesInitNew()를 실행합니다. 파일이 Dropbox에 아직 존재하지 않는 경우 올바른 디렉터리 구조를 만든 다음 최종 디렉터리 이름을 기반으로 제목이 이미 채워진 새 마크 다운 파일을 만듭니다. 마지막으로 .notefile 심볼릭 링크가 생성 된 다음 열립니다.

노트 파일 내부

일반적인 노트 파일 내부에는 일반적인 할 일 목록, 무작위 회의 메모 및 기타 일상적인 항목이 있지만 진정한 힘은 Vim-markdown-runner에서 비롯됩니다.이를 통해 대화 형 플레이 그라운드, 프로젝트 별 스크립트 및 프로젝트 경로를 자세히 설명하는 기본 API 클라이언트가 Postman 또는 Paw를 대체합니다. .

Playgrounds

개발하는 동안 저는 종종 작은 코드의 문제를 해결하거나 확인합니다. 간단한 플레이 그라운드가 있으면이 작업이 크게 쉬워집니다.

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

vim-markdown-runner를 사용하면 해당 코드 블록 중 하나에 커서를 놓고 실행할 수 있습니다. 올바른 언어 / 환경이 자동으로 감지되고 Go의 경우 main()를 추가하고 goimports를 실행하기위한 몇 가지 추가 단계가 수행됩니다. .

스크립트

저는 종종 자체 파일에 넣을 가치가없는 프로젝트 특정 스크립트를 가지고 있습니다. vim-markdown-runner로도 실행할 수 있습니다.

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

코드 블록에 언어가 지정되어 있지 않으면 vim-markdown-runner가 함께 실행합니다. $SHELL가 설정되어 있습니다.

API 클라이언트

웹 개발 프로젝트 내에서 메모 파일에 Endpoints 섹션이 있습니다. Postman 등을 대체합니다. 다음은 httpie 명령이지만 공통 경로를 쉽게 분류하고 다시 실행할 수 있습니다.

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

보시다시피 vim-markdown-runner가 처리하는 다양한 강력한 사용 사례가 있습니다. 또한 매우 구성 가능하므로 필요에 맞게 조정할 수 있어야합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다