43P by kodingwarrior 2023-08-11 | favorite | 댓글 11개

녹화영상 : https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
부록 : https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/

2023-06-03 제2회 엑셀콘에서 "Neovim으로 생산성 퀀텀점프하기" 라는 주제로 발표했었는데, 뒤늦게나마 여기에도 공유합니다.


발표내용 요약

Neovim을 쓰는 것 만으로 어떻게 생산성이 올라갔는가?

  • VSCode, Notion, RoamResearch, GitKraken 등의 번갈아가면서 사용하다가 Neovim으로 통합하면서 불필요한 인지부하가 줄었음
  • macOS, archilinux 번갈아가면서 사용하는데도 불구하고, 어디서든 일관성있는 개발환경을 유지할 수 있음 (dotfiles)
  • 기기의 성능 때문에 걱정할 일이 없어졌음.
    • Before : AndroidStudio, VSCode, RoamResearch 등등 여러개의 어플리케이션을 띄우면서 작업하느라 쓰레싱이 빈번하게 일어났음. 소스코드를 타이핑하는데도 시간이 오래 걸림 / After : 비행기 이륙소리 자체도 들리지 않음. 메모리 점유율도 굉장히 낮은 편임.

생산성을 올리기 위한 3가지 Step

  1. 생산성 개선은 내가 어떤 행위에서 불필요하게 시간을 소모하는지 분석하는 메타인지에서 시작할 것.
  2. 일단 내가 사용하는 도구에 익숙해진다.
  3. 내가 어떤 작업을 반복적으로 하는지 살펴보고 반복된 작업을 하는데 드는 시간을 줄이는 활용방법이 있는지 찾아본다. (ex. 템플릿, 플러그인, 매크로, 스니펫, …)
  4. 2의 과정에서 나에게 맞는 것을 선택해서 체화한다.

분량상 설명하지 못했던 내용들은 블로그에 부록으로 정리했습니다.

  • AstroNvim, LazyNvim 을 비롯한 Neovim 초심자들을 위한 스타터킷
  • neovim 전용 tree-sitter 플러그인
  • 자동완성 기능을 제공해주는 nvim-cmp

Vim을 잘 사용하고 싶은 사람들을 위한 디스코드 커뮤니티(vim.kr) 도 운영하고 있으니, 많은 관심 부탁드립니다 :)

https://github.com/github/copilot.vim

저는 vsc copilot을 너무 잘 사용하고 있어서 찾아보았더니 Neovim Copilot Plugin도 있네요. 해볼까 고민했었는데, 한번 Neovim 해봐야겠습니다.

첫 이직한 회사에서 vim + tmux 리눅스 서버에 리모트로 붙어서 개발 하더라구요.
이 환경에서 리모트 페어 프로그래밍이 가능해서 인상 깊었습니다. (코드 수정이 즉각 반영되고, 터미널도 공유)

리모트 서버에 있는 dotfiles(.vimrc, .bashrc)로 vim에 본격 입문하게 되었어요.
샘플이 있어서 마음 편하게 입문할 수 있었던 기억이 나서 본문 dotfile 이야기에 공감 됩니다 ㅎ

저도 NVIm에서 vscode로 넘어왔는데, 이글을 보니 다시 넘어가고싶네요.ㅎ

텍스트 에디터 이야기라 참 기쁘네요. 결국 다 텍스트를 다루는 일이란 것을 받아들이면 나의 텍스트 환경에 신경쓰는게 부담스럽지 않습니다. 저는 작년부터 이맥스를 쓰기 시작했는데 정말 키보드로 다할 수 있게 되더군요. 0번으로 말씀하신 것 처럼 불필요한 시간을 많이 줄이게 되었습니다. vim.kr 흥하시길!!

영상에서 제가 놓친건가 싶어 질문드립니다. Notion을 neovim으로 대체하셨다는 말이, neovim에서 wiki 시스템을 구축하셔서 그걸 쓴다는 말인지, Notion을 neovim에서 조작하는 라이브러리가 있다는 말인지 궁금합니다. 질문 의도는, 회사에서 사용하는 Notion도 neovim에서 조작 가능한지 알고 싶습니다.

당연히 Notion을 조작하거나 그러진 않았습니다.

Notion에서 API 를 지원한다면 neovim에서 조작하는게 이론적으로 가능하긴 하겠습니다만, 아직까지는 그런 시도를 보진 않았습니다.

회사에서 사용하는 notion이 neovim에서 조작이 가능한지는 정책적인 문제가 있을 것 같아서 확답하기는 어렵네요.

Notion 에서 API 를 제공하고 있지만 현실적으로 여러가지 제약사항이 떠올라서 구현이 멈춰있는 상태였는데 좋은 솔루션이 있나 싶었습니다. 답변 감사합니다 :D

wiki 시스템을 구축했다에 가깝습니다. telekasten.nvim 이라는 플러그인이 제 요구사항에 100% 이상 만족하는 수준으로 어지간한 기능은 다 가지고 있구요.

템플릿 기능도 제법 준수했습니다. 내부문서 관리하는 기능도 준수하구요.

개인적으로 좋아했던 기능 중 하나인 그래프 시각화도 force-graph 라는 라이브러리로 직접 깎았습니다

참고가 될 것 같아서 관련 소스코드 링크도 남겨봅니다.

https://github.com/kodingwarrior/kodingwarrior.github.io/… -- 그래프 시각화에 필요한 정점(문서)/간선(내부링크) 데이터 생성
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- force-graph 기반으로 시각화

저도 neovim 쓰고 새로운 세상을 만났습니다. 그래서 주변 개발자분들께 함 무봐라 시전했는데 아무도 안넘어오더군요. neovim을 쓰면서 개발 환경을 구축하는데에 필요한 것들을 더 자세히 알게되었어요. 한국 빔 커뮤니티가 있는것도 몰랐네요 찾아가보겠습니다 너무 반가워요!

회바회 팀바팀이겠지만... 의외로 개발환경 구성에 흥미가 없는 사람이 많지요..

Vim 잘 쓰려면 결국 zsh, tmux를 같이 써야 되는 것 같아요.
이맥스와는 다르게 수염은 없어도 되어서 다행 입니다.