Intro
Vim이 에디터로서 기능을 하려면 Command를 통해 입력 모드로 들어가야 한다. 이때 매우 많은 방법이 있는데 이번 포스트에서 소개할 예정이다. 너무 많은 종류의 명령어에 겁먹지 않아도 된다. 미리 하나만 기억하도록 하자. Vim 초보자는 i(insert) 키만 기억하자!
Insert Mode Command
Vim의 가장 큰 장점은 키보드로 모든 걸 할 수 있는 것이다. 즉, 마우스가 없는 상황을 가정해야 왜 이렇게 많은 명령어가 존재하는지 이해할 수 있다. 그 말은 다르게 표현하면 일반적인 에디터에서는 상상할 수 없는 명령어들이 Vim에서는 존재한다. 우선 살펴보도록 하자.
Command | Description |
a | 커서 위치 다음 칸부터 입력 |
A | 커서 행의 맨 마지막부터 입력 |
i | 커서의 위치에 입력 |
I | 커서 행의 맨 앞에서부터 입력 |
o | 커서의 다음 행에 입력 |
O | 커서의 이전 행에 입력 |
s | 커서 위치의 한 글자를 지우고 입력 |
cc | 커서 위치의 한 행을 지우고 입력 |
이렇게 봐서는 이해하기 쉽지 않을 것이다. 아래 우리의 친구 'hello.c'에서 명령어를 입력했을 때 어떤 변화가 있는지 살펴보며 이해하도록 하자.
Example
간단하게 아래 예시에서는 현재 위치를 [C](Current)로 표시했다. 이 상황에서 각각 명령어를 입력했을 때 어디서부터 Editing이 시작되는지 [Command]를 통해 나타냈다.
- Original Code
//Original
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
- Current Cursor
//Original
#include <iostream>
int main()
{
std::cout << "Hello[C] World!" << std::endl;
return 0;
}
- [a]
//Original
#include <iostream>
int main()
{
std::cout << "Hello [a]World!" << std::endl;
return 0;
}
- [A]
//Original
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;[A]
return 0;
}
- [i]
//Original
#include <iostream>
int main()
{
std::cout << "Hello[i] World!" << std::endl;
return 0;
}
- [I]
//Original
#include <iostream>
int main()
{
[I]std::cout << "Hello World!" << std::endl;
return 0;
}
- [o]
//Original
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
[o]
return 0;
}
- [O]
//Original
#include <iostream>
int main()
{
[O]
std::cout << "Hello World!" << std::endl;
return 0;
}
- [s]
//Original
#include <iostream>
int main()
{
std::cout << "Hello[s]World!" << std::endl;
return 0;
}
- [cc]
//Original
#include <iostream>
int main()
{
[cc]
return 0;
}
Next
이번 포스트에서는 Vim이 에디터로서 기능할 수 있도록 입력 모드로 진입하게 해주는 명령어들에 대해 알아봤다. 사실 다른 에디터들과 다르게 너무 명령어가 많고, 이 기능들이 왜 필요한지 잘 모를 것이다. 그 이유는 간단하다. 키보드가 없을 때 마우스의 역할을 대체하기 위해 최대한 많은 기능들을 명령어로서 가지고 있는 것이다. 그러니 Vim을 처음 접하는 우리는 우선 i(insert)만 기억하자.
그런데 하나 궁금증이 생길 것이다. 커서는 어떻게 움직이는데? 다시 한번 말하지만 마우스가 없는 상황이다. 물론 키보드에 방향키로 이동할 수 있으나 Vim에는 다른 mapping 역시 존재한다. 잠시 쉬어갈 겸 다음 포스트에서는 이동 명령어를 살펴보자.