저는 텍스트 에디터로 nano를 쓰고 있었어요. 어어 잠깐만 그 횃불이랑 갈퀴 내려놓으시구요 이게 그럴수밖에 없는게 제가 쓰기에는 nano가 편했어요...ㅠ 컨트롤로 다 제어가 가능한게 그냥 notepad.exe같고 익숙하잖아요 그런데 어느날! 놋찌가 vim을 쓰는게 너무 멋있는거에요. 커밋 메시지도 vim으로 쓰고 Dockerfile도 vim으로 수정하고... 네... 그리고 IDE?라고 해야 하나? VSCode를 쓰고 있었는데, 힙하지 않잖아요? 그래서 저는 아예 Neovim을 쓰기로 마음먹었습니다 히히
Neovim은 확장성에 주안점을 둔 vim의 포크에요. 이렇게 두고 보면 계보가 복잡한데 vi와 호환되는 vim의 포크인 Neovim인거죠. 다양한 플러그인을 끼워넣어서 내 맘대로 만들 수 있는 텍스트에디터이자 IDE에요.
Lazyvim은 Neovim의 배포판이에요. Neovim은 NvChad, LunarVim같이 플러그인을 쉽게 깔아 쓸 수 있는 패키지 매니저와 자주 쓰이는 플러그인이 기본 탑재된 배포판이 있는데, 그 중 하나가 Lazyvim이에요.
우선은 Neovim이 먼저 깔려있어야 합니다. 리눅스 배포판마다 다를텐데, 저는 아치리눅스를 쓰고 있고 pacman으로 Neovim을 이미 설치한 상태에요. 그래서 Neovim의 Config경로가 ~/.config/nvim
으로 잡혀있을텐데, 여기 있는 설정파일들을 백업해줄거에요. 확장자 뒤에 .bak을 붙여서 백업파일이라는 걸 알 수 있게 하는 커맨드라인이랍니다.
# required
mv ~/.config/nvim{,.bak}
# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
그리고 Lazyvim은 에 저장되어있는 파일을 끌어다 쓰는 식으로 되어있어요. 그래서 Neovim의 Config 경로에
의 레포 주소를 클론할 거에요.
git clone https://github.com/LazyVim/starter ~/.config/nvim
클론한 레포의 .git 폴더를 삭제하고 (여기서 직접 git init
을 해서 Dotfiles를 만들 수 있음)
rm -rf ~/.config/nvim/.git
Neovim을 실행해주면?
nvim
플러그인들을 알아서 차차착 깔아줄거에요~!
초기 화면은 이렇게 생겼습니다. 저기서 오른쪽에 오렌지색으로 표시되어있는 단축키를 누르면 해당하는 메뉴로 가요.
아니 근데... 사람들 못 됐어 막 Neovim 커스터마이징 이빠이 먹이고 스플래쉬 스크린도 엄청 이쁜걸로 해놓고 막 자랑도 하는데 정작 그걸 어떻게 바꾸는지는 인터넷 깊숙히 찾아도 제대로 설명해준게 없는거에요 심지어 공식문서에도!! 그래서 제가 천방지축어리둥절빙글빙글돌아가면서 어케어케 했습니다...
지금 제 시작화면은 이렇구요... 밑에 메뉴가 좀 부족한 것 같아서 더 채워넣으려구요
이걸 어떻게 하냐면 일단은 Lazyvim의 폴더구조를 알 필요가 있어요
.
├── lua/
│ ├── plugins/
│ │ └── dashboard.lua <- 이게 중요함
│ └── config/
│ ├── lazy.lua
│ ├── options.lua
│ ├── keymaps.lua
│ └── autocmds.lua
├── lazyvim.json
├── lazy-lock.json
├── stylua.toml
├── README.md
├── LICENSE
└── init.lua
Lazyvim은 plugins
폴더 안에 있는 플러그인들을 자동으로 임포트할 수 있도록 설정되어 있어요. 그래서 plugins
폴더 안에 컨벤션에 맞게 dashboard.lua
라는 파일을 만들어줘요. 그리고 lua파일의 config들은 return
아래에 위치해있어야 하더라구요. 그리고 저 아스키 아트는 local logo
라는 변수 안에 넣어줘야 되어요. 그래서 제 dashboard.lua
를 살펴보면...
return {
{
"nvimdev/dashboard-nvim",
lazy = false,
opts = function()
local logo = [[
//여기에 아스키 아트를 입력해요
]]
logo = string.rep("\n", 8) .. logo .. "\n\n"
// ... 기타 설정들
}
}
이런 식이에요. 이렇게 하면? 내가 넣은 아스키 아트가 시작화면에도 뜬답니다~
많은 사람이 볼 것 같진 않지만, 제가 나중에 보기 위해서라도 적어놓는게 나을 것 같아서 이렇게 글을 써봤습니다. 이제 쓰면서 키 바인딩 같은거 추가를 하거나 해봐야죠...
근데 이걸로 뭐 만들어보려고 해도 아직 폴더 만드는 법도 몰라서 막혔어요ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ이게 맞나?