💪

Vim을 써보자 (feat: LazyVim)

Created
May 27, 2024 03:04 PM
설명
Vim을 쓰는 상남자가 되어봅시다.
Status
작성 완료
Tags
vim
IDE
nvim
Select
Etc
👀
Vim의 간략한 소개와 쓰게된 이유, 그리고 더 효율적이고 멋지게 사용하기 위한 설정을 정리했습니다. 기본적인 Vim 명령어와 같은 사용법은 다루지 않습니다.
우리 모두 Vim을 쓰는 상남자가 되어봅시다.
우리 모두 Vim을 쓰는 상남자가 되어봅시다.

Vim이란?

우선 vim은 ‘Vi IMproved’의 약자로 기존의 vi 편집기에서 기능이 많이 향상된 프로그램입니다.
vi(브이아이, /ˈviːˈaɪ/)는 Emacs와 함께 유닉스 환경에서 가장 많이 쓰이는 문서 편집기이다. 1976년에 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 만들었다. vi라는 이름은 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터(visual editor)라는 뜻에서 유래했다. 간결하면서도 강력한 기능으로 사용자가 많다. -위키피디아
저같은 경우는 학교에서 리눅스 수업때 자주 다루었던 기억이 있네요.

특징

1. 모드 기반 편집:
  • 일반 모드 (Normal Mode): 기본 모드로, 명령어를 입력하여 텍스트를 편집합니다.
  • 입력 모드 (Insert Mode): 텍스트를 입력할 수 있는 모드입니다.
  • 비주얼 모드 (Visual Mode): 텍스트의 블록을 선택하는 모드입니다.
  • 명령 모드 (Command Mode): 명령어를 실행할 수 있는 모드입니다 (일반 모드에서 :를 입력하여 진입).
  1. 강력한 텍스트 조작
      • Vim은 다양한 텍스트 조작 명령어를 제공하여 복잡한 편집 작업을 효율적으로 수행할 수 있습니다. 예를 들어, 여러 줄을 동시에 편집하거나 특정 패턴을 찾아 바꾸는 등의 작업이 가능합니다.
  1. 확장 가능성:
      • Vim은 다양한 플러그인을 통해 기능을 확장할 수 있습니다. Vim 스크립트나 다른 언어로 작성된 플러그인을 사용하여 자신만의 편집 환경을 구축할 수 있습니다.
  1. 고도로 커스터마이징 가능:
      • 사용자 설정 파일인 .vimrc를 통해 Vim의 동작을 세부적으로 설정할 수 있습니다. 키 매핑, 색상 테마, 플러그인 설정 등 다양한 커스터마이징 옵션을 제공합니다.
  1. 플랫폼 독립성:
      • Vim은 Unix 계열 운영체제뿐만 아니라 Windows, macOS 등 다양한 플랫폼에서 사용할 수 있습니다.
 
이런 특징들이 있는데 가장 중요하고 Vim을 많은 사람들이 쓰는 이유는 키보드로 모든걸 할 수 있다는 장점인 것 같습니다.
실제로도 익숙해 지기만 한다면 마우스를 사용하지 않고도 개발을 할 수 있고 손이 키보드에서 움직이지 않기 때문에 피로가 적고 명령어를 통해 효율적인 작업이 가능합니다.
그러면 소개와 특징은 여기까지 살펴보고 나는 왜 Vim을 쓰게 되었는지 적어보겠습니다.

왜 Vim을 사용하게 되셨나요?

1. 기분전환

notion image
저는 저의 작업환경을 이쁘게 만드는걸 좋아합니다.
예로 가장 맥을 구매하고 가장 먼저한일은 터미널꾸미기였습니다.
만족스러운 iterm 테마
만족스러운 iterm 테마
이렇게 해두면 기분이 좋습니다. 👍
또, IDE를 사용하면서 가끔씩 옷을 쇼핑하듯 테마를 살펴보곤 합니다.
내 vscode 테마
내 vscode 테마
내 webstorm 테마
내 webstorm 테마
이런 이유로 저에게 정말 이쁘고 멋져보였던 Vim은 군침이 돌지 않을 수 없었습니다.
notion image

2. 호기심

가끔 Youtube로 개발 관련 영상을 보다 보면 Vim을 사용하는 영상이 보이곤 합니다.
notion image
notion image
화면에 보이지 않는 마우스와 방향키가 아닌 h,j,k,l로 움직이는 커서, 명령어로 수행되는 편집기 기능, 파일 탐색조차 키보드로 해버리는 미지의 세계.
이 미지에서 비롯된 신비로움은 영상의 신뢰도가 높아지고 이 사람을 모름에도 완전 고수처럼 보이는 현상이 저의 호기심을 자극했습니다.
또, 실제로 뭔가 슉슉 입력되고 코드가 휙휙 편집되는 모습을 보면 익숙해지기만 한다면 정말 효율적일 것 같다는 생각도 덤이구요.
 
이렇게 Vim을 도전하게된 이유를 적어보았는데요.
“뭐야 쓰려는 이유가 기분 좋은거랑 멋져보이는 것 뿐이야?” 라고 생각하실 수 있는데, 사실 맞습니다.
굉장히 공감이 가는 영상이 하나 있는데 보는걸 추천드립니다.
이제는 Vim을 어떻게 써야 멋지게 쓸 수 있는지 알아보겠습니다.

Vim을 그냥 쓸수는 없지

자 그러면 Vim을 써볼까요?
notion image
notion image
?
네 그렇습니다.
Vim의 특징에서도 보았겠지만 Vim은 플러그인을 통한 확장과, 고도로 커스터마이징이 가능합니다.
이건 다시말해 이미 추상화가 많이 되어있는 기타 IDE와는 다르게 Vim에선 우리가 원하는 만큼의 기능을 사용하기 위해선 직접 설정을 해주어야 합니다.
하지만 언제나 인간은 방법을 찾는 법.

Neovim

notion image
 
2014년에 기존 Vim의 철학과 기능을 계승하면서 Vim의 기반 코드를 현대화하고 잘 문서화된 API로 재구성 했고 lua라는 언어로 설정을 작성하고 플러그인을 개발할 수 있도록 만들었습니다.
이런 이유로 Neovim은 매우 번성한 플러그인 생태계를 가질 수 있었는데요.
물론 Nvim을 사용하더라도 멋지게 쓰려면 설정은 필수입니다.
notion image

여러 Neovim 베포판

플러그인을 쉽게 추가할 수 있고 설정이 편리하다해도 귀찮은 작업이 남은건 어쩔 수 없습니다.
이런 불편함을 해소하기 위해 사람들은 미리 설정이 완료된 여러가지 베포판을 만들었는데요.
LazyVim, LunarVim, AstroVim, NVChad 등 많은 베포판이 나와있습니다.
그러면 우리는 어떤 베포판을 선택해야 할까요?

LazyVim

이런 선택에 도움을 받았던 영상인데요.
여러 NeoVim 베포판을 몇가지 항목으로 점수를 매겨 비교해보는 영상입니다.
Video preview
이 영상에서 가장 좋은 점수를 받은 베포판은 LazyVim이였는데요.
LazyVim의 장점은 다음과 같습니다.
  1. 설치가 쉽다.
  1. 키 바인딩을 찾기가 쉽다.
    1. notion image
      스페이스바를 누르면 leader가 켜지게 되는데요. 여기에서 어떤 키카 무슨 작업을 하는지 쉽게 알 수 있습니다.
  1. 플러그인을 추가하기 쉽다.
    1. notion image
      nvim 설정에 들어가서 lua 파일을 만들고 설치하고자 하는 플러그인을 설정과 함께 적어주면 자동으로 설치를 해줍니다.
이런 장점들과 함께 플러그인을 관리할 수 있는 LazyVim Dashboard와 Git을 위한 LazyGit도 포함되어 있으니 아주 편리하게 사용이 가능합니다.
notion image
notion image

추가적인 설정

LazyVim을 설치하고 그대로 사용할 수도 있지만, 몇가지 설정을 해준다면 더 멋지고 편리하게 사용할 수 있습니다.
제가 따라한 설정은 이 설정인데요.
Video preview
기본적인 typescript, tailwindcss lsp 플러그인 설정과 작업을 도와줄 telescope, nvim-treesitter 등 여러 플러그인의 설정이 포함되어있습니다.
어느정도 익숙해 진다면 설정을 직접 바꿀 수도 있구요.
아래는 위 영상을 따라한 제 lazyvim 설정입니다.
아직은 위 영상과 다른점이라고는 멀티 커서 편집을 도와주는 vim-visual-multi 플러그인을 설치한 것 뿐이네요.
my-lazyvim-setup
dev-dong-suUpdated Jun 4, 2024

마무리

이렇게 Vim에 대한 간략한 소개와 편리하고 멋지게 쓰려면 어떤걸 써야하는지 알아보았습니다.
처음에는 Vim을 다루는게 정말 어색하고 어려웠지만 쓰다보니 조금은 적응한 것 같습니다.
자기 전이나 시간날 때 Vim관련한 팁 영상도 보고 여러가지 조작법 관련한 영상도 살펴보는게 도움이 되었던 것 같습니다. (아직 진짜 고인물들 처럼 사용하려면 한참 멀었지만)
단순 멋져보이고 호기심에 사용하기 시작했지만 확실히 키보드만 사용해야 하는 색다른 Vim만의 매력이 있는 것 같습니다.
여러분도 지금 사용하는 IDE가 질리고 뭔가 색다른 경험이 하고 싶다면 Vim을 사용해 보는걸 추천드립니다!