Vim으로 개발하기 Vim을 사용하는 이유.
안녕하세요! 이번 한해도 마무리 잘하고 계신가요?
독일은 작년 크리스마스까지 코로나로 상당히 조용했었는데, 이번년도부터는 다시 크리스마크 마켓도 열리고
생기를 찾아가는 것같습니다. 오늘은 개발자라면 한번씩 들어보았던 Vim에 관해서 이야기 해보려합니다.
지금은 예전과 달리 UI의 발전으로 코드를 작성할때 키보드뿐만 아닌 마우스를 이용하여 코드 블록을 이리저리 자유자재로 옮겨가며 작업 할 수 있습니다. 하지만 이는 알게모르게 코드를 작성할때 손을 옮겨다니는 시간이 소비되기도하고, 실용적인 면이 Vim에 비하면 떨어지는게 사실입니다. Vim을 사용하게 되면 어떤 장점이 있는지 오늘 짧게 알아보고, 제가 자주 사용하는 키와 단축어들을 알아보도록 하겠습니다.
- Vim을 꼭 사용해야 할까?
- Vim의 장점?
- Vim 단축어.
- 마치며.
1. Vim을 꼭 사용해야 할까?
Vim을 꼭 사용해야하느냐에관한 질문은 당연히 아니요라고 대답 할 수 있지만, Vim을 한번쯤은 사용해보아야 할까? 라는 질문을 받는 다면 네라고 대답하겠습니다. Vim을 이용하면 코딩할때 이리저리 손을 옮겨다니는 시간을 크게 줄일 수 있고, 코드를 훨씬 빠르게 수정 할 수 있습니다. 한 단어를 지운다거나, 괄호 안의 내용을 지운다거나, 혹은 원하는 블록을 지운다거나 복사한다거나 등등 아주 실용적인 부분을 많이 사용 할 수 있는게 Vim입니다. Vim은 단축어가 많고 처음 사용하신다면 어떻게 코드를 작성하고 저장하는지 등등 어려운 부분이 많을 것입니다. 아무래도 Vim은 우리가 일반적으로 사용하는 텍스트 에디터들과는 약간 다릅니다.
크게 입력모드와 명령모드가 존재하고 명령모드에서는 코드를 작성 할 수 없습니다.
사실 Vim이 손에 익기전까지는 분명 마우스를 사용해서 코드를 작성하는 것 보다 시간이 더 걸릴 수 있습니다.
하지만 익숙해지기 시작하면 Vim의 진가를 느끼실 수 있을 것입니다.
저 또한 지금까지 그냥 일반적으로 키보드와 마우스를 이용하여 코드를 작성했습니다.
하지만 Vim을 배우고 난 후로 코드를 작성하거나 수정할 때 훨씬 빠르게 동작 할 수 있다는 것을 깨달았습니다.
2. Vim의 장점?
Vim을 사용하면 키보드만으로 모든 작업이 가능하기때문에 능률을 높일 수 있습니다.
가령 마우스로 수정하고자 하는 부분들을 클릭하거나 드래그 한 뒤 수정하는 번거로움이 Vim에서는 명령어를 통해서 손 쉽고 빠르게 수정가능합니다. Vim을 사용하면 좀 더 전문가 같이 보일 수 있습니다. 당연히 누군가에게 코딩하는 모습을 보여 줄 기회가 있을지 모르겠지만,
나름 Vim의 뽕이 있습니다. 혹여나 UI가 존재하지 않는 리눅스를 사용해야할 때 유용하게 사용될 수 있습니다.
3. Vim 단축어.
이번에는 제가 주로 사용하는 Vim의 단축키들을 알아보겠습니다.
빨간부분은 사용자가 변경 가능하다는 것을 의미합니다.
예를들어 3G는 3번째 줄로 이동하라는 뜻이지만 이는 244G가 될 수 도 43G가 될 수 도 있다는 뜻입니다.
Vim을 사용하게 되면 심지어 키보드의 방향키를 사용 할 일도 줄어듭니다.
h: 소문자 h는 현재 커서가 머무르는 줄에서 왼쪽으로 한칸 움직입니다.
l: 소문자 l은 현재 커서가 머무르는 줄에서 오른쪽을 한칸 움직입니다.
j: 소문자 j는 현재 커서가 머무르는 줄에서 한칸 아래로 움직입니다.
k: 소문자 k는 현재 커서가 머무르는 줄에서 한칸 위로 움직입니다.
H: 대문자 H는 코드의 맨 처음 줄로 이동합니다.
L: 대문자 L은 코드의 맨 아래 줄로 이동합니다.
M: 대문자 M은 코드의 중간 줄로 이동합니다.
{: 중괄호 {는 코드의 위에 비어있는 줄로 이동합니다.
}: 중괄호 }는 코드의 아래에 비어있는 줄로 이동합니다.
gg: gg는 코드의 맨 윗줄로 이동합니다.
G: G는 코드의 맨 아랫줄로 이동합니다.
3G: 숫자와 대문자 G를 이용하면 숫자에 해당하는 줄로 이동합니다.
i: 소문자 i는 가장 쉬운 입렵모드로 들어가는 방법 중 하나로 현재 깜빡이는 커서에서 왼쪽으로 이동하여 입력을 할 수 있도록 도와줍니다.
I: 대문자 I는 현재 커서가 있는 줄에서 가장 왼쪽 즉 가장 처음부분에서 입력을 할 수 있도록 도와줍니다.
a: 소문자 a는 소문자 i완 반대로 현재 깜빡이는 커서에서 오른쪽으로 한칸 이동하여 입력을 할 수 있도록 도와줍니다.
A: 대문자 A는 현재 커서가 있는 줄에서 가장 오른쪽 쪽 맨 끝에서부터 입력을 할 수 있도록 도와줍니다.
o: 소문자 o는 현재 커서가 있는 줄에서 밑으로 한칸을 새롭게 추가한 후 입력을 할 수 있도록 도와줍니다.
O: 대문자 O는 현재 커서가 있는 줄에서 위로 한칸을 새롭게 추가한 후 입력을 할 수 있도록 도와줍니다.
u:는 명령모드에서 컨트롤 + z와 같은 역할을 합니다. undo
w: w는 커서가 단어마다 움직일 수 있도록 도와주는 키입니다. 이때 단어의 첫알파벳에 커서가 머무르게됩니다.
e: e는 w와 같이 단어마다 커서를 움직일 수 있도록 도와주지만 단어의 맨 마지막 알파벳에 커서가 머무르게됩니다.
0: 숫자 0은 현재 커서가 머무르는 줄에서 가장 왼쪽 즉 가장 첫번째 부분으로 커서를 옮겨줍니다.
$:$는 반대로 현재 커서가 머무르는 줄에서 가장 오른쪽 즉 마지막 부분으로 커서를 옮겨줍니다.
dd: dd는 현재 커서가 머무르는 줄을 모두 지워줍니다.
yy: yy는 현재 커서가 머무르는 줄을 모두 복사해줍니다.
p: p는 복사된 정보를 붙여넣어줍니다.
cc: cc는 현재 커서가 머무르는 부분의 줄을 모두 잘라내기 해줍니다. 이 역시 p를 통해 붙여넣기 할 수 있습니다.
이 단축어들은 제가 실제로 자주 사용하는 단축어들입니다.
이제는 응용 버젼을 알아보겠습니다.
daw,dw: 는 현재 커서가 머무르는 단어를 지우는 명령어입니다.
caw,cw: 는 현재 커서가 머무르는 단어를 지우고 곧바로 입력모드로 들어가게 도와주는 명령어 입니다.
d3w, c3w: 는 현재 커서가 머무르는 단어로부터 숫자에 해당하는 단어를 지우는 명령어입니다.
di": 는 현재 커서가 머무르는 줄에서 " 따옴표안에 존재하는 코드들을 모두 지워줍니다.
di{: 위와 같이 현재 커서가 머무르는 줄에서 { 중괄호 안에 존재하는 코드들을 모두 지워줍니다.
df(: 현재 커서가 위치하는 부분부터 ( 소괄호 까지 코드를 지워줍니다.
dt(: 현재 커서가 위치하는 부분부터 ( 소괄호 전까지의 코드를 지워줍니다.
4. 마무리.
자 오늘은 짧게 Vim에 관해서 알아보았습니다.
요즘은 VSCode나 InteliJ와 같은 텍스트에디터 혹은 IDE에서 Extentions 혹은 Plugins로 Vim을 설치 하실 수 있습니다.
이는 기존 IDE의 강력한 기능들을 사용하면서 Vim까지 사용 가능하다는 뜻인데요.
혹여나 관심이 있으시다면 IDE에서 Vim을 추가로 설치하시는게 좋지 않을까 싶습니다.
오늘도 제 블로그를 방문해주셔서 감사합니다!
내일이면 크리스마스인데, 좋은 연휴보내시고 내년도 즐겁게 시작 할 수 있는 원동력을 만드시기 바라겠습니다.
감사합니다.
완벽한 준비란 없다, 완벽한 준비란 영원히 시작하지 않는 것과 같다.
Es gibt keine Perfekte Vorbereitung.
Perfekte Vorbereitung ist das Gleiche, wie nie anzufangen.
'[Developer] 초보 개발자' 카테고리의 다른 글
Typescript Type Assertion. as 키워드 사용하기 (6) | 2023.02.26 |
---|---|
타입스크립트 함수 작성 방법 (6) | 2023.02.22 |
UML 상태 다이어그램이란? State diagram이란? (7) | 2022.06.10 |
변수 함수 이름을 쉽게 지어보자. (2) | 2022.04.16 |
내가 사용하는 VScode extention 추천. 비주얼 스튜디오 코드 익스텐션 추천 파트 2 (2) | 2022.03.27 |