왜 Vim을...?
코드 자동완성, 스마트 IDE가 넘쳐나는 요즘 세상에 Vim을 왜 쓰지? 라는 생각이 들 수도 있다. 유용한 Extension이 넘쳐나고 사용하기 쉬운 Vscode, 강력한 디버깅 툴을 제공해주는 Jetbrains IDE 등등 많은데 말이다.
하지만 백준같은 온라인 저지 문제를 해결할 때는 그런 강력한 툴보다 가벼움, 효율성이 가장 중요하다고 본다.
나도 처음엔 세 가지 모드를 왔다갔다 하는 것도 헷갈리고, 줄 간 이동도 버거웠다.
하지만 적응이 조금씩 되면서 코딩할 때 마우스가 얼마나 효율성을 떨어뜨리는지에 대해 알게 되었다.
그리고 가장 중요하다고 할 수 있는 장점이
코딩할 때 간지 난다
"아 저는 Vim 쓰는데요?" 를 사용할 수 있다
Vim 시작하기
우선 Vim 공식 사이트에 접속해서 본인 OS에 맞게 설치한다.
설치 후, 터미널에서 다음과 같은 커맨드로 열 수 있다.
vim main.c
다음으로는 vim의 각종 설정들을 정할 수 있는 vimrc파일을 설정해야 한다.
open ~/.vimrc
본인의 입맛에 맞게 설정하면 되지만, 필자가 사용하는 기본적인 설정은 다음과 같다.
set number "줄 번호 매기기
syntax enable "Syntax Highlighting
set vb t_vb= "잘못 입력했을 때 나는 삑 소리 끄기
filetype plugin indent on "파일 유형에 따라 들여쓰기 자동
set autoindent "새로운 줄을 현재 줄의 들여쓰기에 맞게
set expandtab "탭 문자를 스페이스로 변환
set ts=4 "탭 크기 = 4 스페이스
set bg=dark "다크모드
set backspace=indent,eol,start "백스페이스 백스페이스답게 만들기
set si "스마트 들여쓰기
set encoding=utf-8 "한국어 인코딩
set fileencoding=utf-8 "파일 한국어 인코딩
set nocursorline "글자 선택 커서
아니면 이분처럼 설정해도 된다.
다음으로는 가장 중요한 단축키들을 배워야 하는데....
꽤 복잡해 보이지만 계속 써보면 금방 적응된다....!
여기서 꽤나 잘 설명해주셔서 속성으로 한시간 정도 공부하면 잘 사용할 수 있다.
관련 터미널 Alias 설정하기
백준 문제를 풀려 할 때, 터미널에서 바로 파일을 열고, 컴파일 & 실행하기 위한 단축키를 지정하면 좋다.
open ~/.zshrc
zshrc 파일에 다음 라인 추가
alias 단축어='단축어가 할 행동'
저장 후 터미널에서 다음 라인 실행
source ~/.zshrc
1) vimpy, vimc, vimcpp로 파일을 열고, 문제를 푼다.
2) runpy, runc, runcpp로 파일을 컴파일 & 실행한다
3) 문제를 잘 풀었으면 copypy, copyc, copycpp 로 파일을 복사해 제출한다.
Python
alias vimpy='vim 파일디렉토리'
alias runpy='python3 파일디렉토리'
alias copypy='cat 파일디렉토리 | pbcopy'
C
alias vimc='vim 파일디렉토리'
alias runc='gcc 파일디렉토리 -o execute && ./execute'
alias copyc='cat 파일디렉토리 | pbcopy'
C++
alias vimcpp='vim 파일디렉토리'
alias runcpp='g++ -std=c++11 -o executecpp 파일디렉토리 && ./executecpp'
alias copycpp='cat 파일디렉토리 | pbcopy'
이제 백준 풀때 메모리 2기가씩 잡아먹는 Vscode 켜지 말고,
효율성 높은 Vim과 본인에게 최적화된 커맨드를 사용하면서 빠르게 문제 풀어봐요 :O
지나가다가 vim 영업하는글을 보고 반가운 마음에 댓글을 남깁니다! Neovim을 쓰시는 경우 competitest.nvim이라는 플러그인으로 여러개의 테스트케이스를 관리할 수 있습니다 👀👀 https://github.com/xeluxee/competitest.nvim
흑흑 vi은 너무 어려워요