-
vim(neovim) editor를 사용하는 이유Concern & Opinion 2022. 8. 29. 15:01반응형
- vi 공부를 시작 한 이유...
나는 비전공자에 독학으로 프로그래밍 공부를 시작했다.
마케팅 회사에 다니면서 독학을 했기 때문에 회사에 2시간 일찍 출근해서 공부하고, 일이 끝나면 집에와서 새벽까지 공부를 했다.
아무것도 모르는 사람이 독학을 했을 때 가장 큰 문제는 아는게 없으니 길을 잡기 힘들다는 것이었다.
처음에는 프로그래머가 되기 위해서는 html, css, javascript, python, java, c, c++ , c# 다 할 줄 알아야한다고 생각했을 정도였다...
그래서 나보다 먼저 공부한 사람(선배)을 만나기 위해서 토이 프로젝트에 참여했다.
거기서 4년차 파이썬 백엔드 개발자가 vi를 사용하는 것을 봤고, 개발자는 결국에는 그렇게 해야하는 줄 알았고 또 멋있어보였다.
그래서 vi 사용법에 대해서 공부를 했고 지금은 회사 프로젝트는 webstorm 안에서 vim을 사용 중이며, 개인적인 프로젝트나 공부는 다 neovim + tmux를 사용하고 있다.
- 나의 첫 VIM
요즘은 유튜브니 뭐니 강의들도 많아서 사실 알아보고자 한다면 할 수 있을 것이다.
neovim configuration이라고 유튜브에 검색만 해봐도 굉장히 많이 나오는 것을 볼 수 있다.
또 설명도 잘해줘서 따라하기도 쉽다.
지금은 lua를 이용해 configuration을 작성해놓았다.
영상을 보면서 따라하다보면 완벽하게는 몰라도 대충 뭘 하고 싶은거구나... 알게 된다.
그만큼 언어자체가 쉽다!
Lua 전에 문제가 두 가지가 있었는데, vi를 처음해보는 만큼 손이 vi에 익숙하지 않다라는 점과 Linux command였다.
Linux command는 지금도 잘 모른다.
하지만 필요한 것들을 찾아가면서 그 때 그 때 하나씩 익히고 있다.
그렇게 모아온 것들이 꽤 된다.
vi의 경우에는 더 심각했다.
Linux처럼 하나 하나 알아가면 되는 일이 아니었다...
하나 하나 하다가 vi에서 빠져나오지도 못하고 헤매었으니 말이다...
그래서 이걸 먼저 연습했다.
- VI 공부의 시작
우선 마우스 자체를 치워버렸다.
그리고 머리로 외운다는 생각보다는 반복을 통해 운동처럼 몸에 익혀버린다는 생각을 했다.
내 검지 손가락이 J(ㅓ)에 위치하지 않는 것부터 익숙하지 않았다.
vi의 경우 상하좌우를 움직이기 위해서는 hjkl 순서로 손가락이 올라가야하는데, 키보드 위에 오돌토돌한 것이 올라와있는게 중지에서 느껴지니 그것부터 불편했다.
하지만 움직여봤다.
lorem ipsum으로 text.txt를 하나 만들고, 화면 옆에는 vim cheat-sheets를 켜놓고 계속 그 안에서 움직여보고, 또 스크롤도 해보고 삭제도 해보았다.
나에게 가장 도움이 되었던 방법을 공유해보자면
1. vimtutor
2. 김왼손의 왼손코딩
3. ... + 각종 vim관련 유튜브
정도 이다.
우선 처음에는 김왼손의 왼손코딩을 보았다.
아무래도 한국사람이 만든 한국 콘텐츠인만큼 처음에 받아들이기 좋을 것이라고 생각했다.
그리고 우선은 아무생각없이 따라했다.
그걸 두번 정도 처음부터 끝까지 반복한 것 같다.
두 번째로 vimtutor를 했는데 이걸로 큰 도움을 받았다.
Linux terminal에서 vimtutor를 치게 되면 나오는데 그걸 따라서 하다보면 생각보다 뭔가 빨리 알겠다는 느낌이 들었던 것 같다.
이 두 가지로 연습을 조금 하고 나서는 나머지는 유튜브에 나오는 vim 관련 영상들을 손 가는대로 다 보면서 익혔던 것 같다.
- 첫 NEOVIM의 사용
나는 neovim을 사용한다.
사실 단순히 기능만을 원한다면 vim을 이용해도 괜찮을 것이다.
나는 사실 vim이 오래된 것을 알았고, neovim을 사람들이 많이 사용하는 것 같아서 크게 생각하지 않고 다가갔지만, Neovim은 vim을 더 쉽게 유지 관리 할 수 있도록 빌드된 것이라고 한다.
플러그인 작성 시에도 더 나은 사용자 경험을 나타내며, 더 나은 GUI 생태계, 임베딩에 대해 글을 써놓은 사람들이 있었다.
그렇게 vi를 공부했던 것 처럼 유튜브를 통해서 처음으로 neovim을 설치하고 configuration을 설정해보았다.
- 프론트엔드 개발자가 굳이 vim 써야하나?
이런 이야기를 들은 적이 있다.
하지만 이는 선택사항이라고 생각된다.
사람들이 vscode를 사용하는 이유가 있을 것이고, webstorm을 사용하는 이유가 있을 것이다.
나 역시 굳이 왜 neovim을 사용해서 개발하느냐?! 라고 물어본다.
1. 예뻐서
2. 편해서
3. 가벼워서
4. 기능적 커스터마이징이 가능해서
라고 주로 대답한다.
우선 "예뻐서" 이다.
IDE는 개발자라면 매일 같이 하루 중 가장 오랫동안 바라보고 있어야하는 프로그램이다.
그런만큼 예쁘지 않으면 관심도 가지않고, 하고 싶은 마음도 들지 않을 것이다.
나는 내가 원하는 파일을 이렇게 여러개 켜놓고 작업을 할 수 있고, 무엇보다 충분한 커스터마이징으로 내가 원하는대로 나만의 에디터를 사용할 수 있다.
남들이 어떻게 보든 나는 이게 예쁘고 마음이 가면 코딩하기에도 더 좋다고 생각한다!
두 번째는 "편해서" 이다.
vim을 사용하던 사람이 갑자기 마우스와 키보드를 함께 사용하려고 하면 불편하게 느껴질 것이다.
나는 이제 vim으로 하는 것이 익숙해져서 webstorm, vscode에서도 ideavimrc를 설정해놓고 사용하고 있다.
나의 경우, 위의 이미지처럼 화면을 split 하기 위해서는 단순히 sv만 입력하면 된다!
그리고 파일 찾기를 통해서 파일을 찾아서 들어가면 바로 뿅! 나온다! 얼마나 편한가!!
특히 노트북을 들고 나가서 일을 하거나, 재택근무를 할 때는 매직패드를 안가져가도 되고, 일일이 손이 패드로 안가도 되서 좋다!
마우스로 손이 덜 간다는 것은 빠르다는 의미도 있지만, 진짜 덜 귀찮다!
세 번째는 "가벼워서"이다.
내 맥북만 그런가... M1 이상은 좀 괜찮으려나 모르겠다.
기분 탓일지도 모르겠지만 intel을 사용하고 있는 나는 webstorm을 사용할 때 배터리가 현저히 빨리 닳는다는 느낌을 받았다.
그런데 vim editor를 사용하면 깜빡하고 충전기 연결을 안했어도 꽤 오랜시간 배터리가 유지되는 현상을 느꼈다.
그러다보니 특히 밖에서 작업 하게 되면 어김없이 vim을 켜서 작업을 하게 되었던 것 같다.
마지막으로는 "기능적 커스터마이징이 가능해서" 이다.
vim(혹은 neovim 등)을 사용해보신 분들은 알겠지만, 플러그인을 다운 받아서 사용이 가능하다.
나의 경우에도 다양한 플러그인들을 사용하고 있는데 중요한 것은 내가 원하는 것만 골라서 내 입맛에 맞게 커스터마이징 할 수 있다는 점이다.
나의 neovim 폴더는 이렇게 되어있다.
그리고 플러그인이 있는 곳으로 들어가보면 아래와 같다.
그냥 이렇게만 봐도 많은데, 밑으로 스크롤 내려보면 한참 더 있다....
여러 유튜브나 구글링을 통해서 넣고넣고 하다보니 점점 많아져버렸다.
하지만 지금 있는 것들은 내가 원해서 넣은 것들이고 내가 원하는 키 매핑이 되어있다.
그래서 vim을 사용하게 되면 마우스를 사용하지 않고 개발이 가능하게 되었다.
- 마무리
vim은 꼭 사용하지 않아도 된다.
하지만 사용하게 된다면 보다 코딩이 빨라질 수 있을 것이고, 무엇보다 손이 덜 귀찮다고 느껴진다.
그리고 심지어 크롬을 이용한 웹서핑도 때로는 vim extension을 이용해 사용하게 될 정도가 된다.
그러니 vim을 시작하려는 분들이 있다면 너무 멀리까지 보고 언제 이걸 다 익히지? 라는 생각보다는 한번 경험만 해놓은 뒤 나에게 필요한 것들만 하나씩 먼저 익혀보라고 하고 싶다.
조금 해놓고 나면 나머지는 정말 익히기 쉬우니 말이다!
** 혹시 lua 베이스의 neovim을 사용해보고 싶다면 저의 config를 참고하셔도 좋습니다!
crayonzgrim dotfiles : https://github.com/crayonzgrim/dotfiles-public
반응형'Concern & Opinion' 카테고리의 다른 글
Error: listen EADDRINUSE: address already in use :::5000 (0) 2023.01.28 Firebase Error "Missing or insufficient permissions." 해결방법 (0) 2022.12.01 [토이프로젝트] #1 에듀도로(EDUDORO) (0) 2021.10.15 신입 프론트엔드 개발자의 고민과 고충 (0) 2021.08.27 자바스크립트는 비동기적인 처리? okky 사는 얘기 (0) 2021.07.21