2017년 11월 23일 목요일

Vim의 확장 기능; 이동

시작하며....


Vim의 기본 이동은 이전 강좌에서 이야기를 드렸습니다.

그렇지만 이동이 단순히 상하 좌우 였으니 빠르게 이동하기에는 어려웠을 거예요.

위로 5칸을 이동 하기 위해서는 k를 5번이나 눌러야 했으니까요.

이번에는 조금더 빠르게 이동하기 위한 추가 명령어를 배워 보도록 하겠습니다.


단어(word, WORD) 이동


단어 단위로 이동하는 방법을 가장 먼저 알려 드릴게요.

명령어 자체는 어렵지 않습니다.

그런데 여기서 알아야 하는 게 word와 WORD라는 개념이 있어요.

단순히 적혀 있는 내용만 보면...

대문자와 소문자로 같은 의미이긴 하지만 Vim에서는 다른 의미로 사용 된다는 거죠.


  • WORD : White space(스페이스바, 탭, 엔터)로 나누어진 모든 글자들의 모임
  • word : White space로 나누어진 글자, 숫자와 underscores 또는모든 글자들의 모임


음... 영어의 내용을 번역하려니 어렵네요.ㅎㅎ

그냥 예제로 진행할게요.

ex) vim에서 word/WORD는 다른 의미입니다. 
위의 문장을 WORD와 word로 나눠지면 다음과 같아요. 
  • WORD : vim에서, word/WORD는, 다른, 의미입니다.
  • word : vim, 에서, word, /, WORD, 는, 다른, 의미입니다, .

위 처럼 WORD는 스페이스바나 tab, 엔터로 나뉜 덩어리를 말하는 거예요.

쉽게 나눌 수 있지요.

하지만 word는 WORD에서 같은 분류 끼리 또 나뉘죠.

글자는 같은 글자끼리, 숫자는 숫자끼리, 도형은 도형끼리요.

뭔가 많이 어렵지요.;;;

그럼 그냥 WORD만 알고 계세요. ㅎㅎ

그러다가 더 알고 싶다면 word에 대해 알아 가면 되지요.

그럼 이런 word/WORD의 이동에 대한 명령어를 보겠습니다.


  • w : 다음 word의 맨 앞으로 이동
  • W : 다음 WORD의 맨 앞으로 이동
  • e : 다음 word의 맨 뒤로 이동
  • E : 다음 WORD의 맨 뒤로 이동
  • b : 이전 word의 맨 앞으로 이동
  • B : 이전 WORD의 맨 앞으로 이동
  • ge : 이전 word의 맨 뒤로 이동
  • gE : 이전 WORD의 맨 뒤로 이동


단어 이동의 명령어는 위에 8가지가 모두입니다.

처음 부터 8개를 모두 알고 사용하기는 어려운 거 같아요.

그래서 저도 대부분 사용하는 명령어는 w, b 정도가 되더라고요.

언제나 이야기했듯..

우선은 편하게 사용하다가 조금 더 활용이 필요하면 그 때 알아 가도 돼요. ^^


문장, 문단의 이동


사실 저도 이 명령어는 자주 사용하는 편은 아니에요.

문서 편집으로 사용하기보다는 프로그램할 때 사용하니까 그런 거 같아요.

그래도 알면 혹시나 사용하시는 분들이 있을지 몰라서 적도록 하겠습니다.


  • ( : 문장의 맨 앞으로 이동
  • ) : 문장의 맨 뒤로 이동
  • { : 문단의 맨 앞으로 이동
  • } : 문단의 맨 뒤로 이동


어렵지는 않지요??


라인에서의 이동


한 라인에서 맨 뒤로, 맨 앞으로 이동하는 방법입니다.


  • ^ : 라인의 맨 앞으로 이동
  • $ : 라인의 맨 뒤로 이동


간단하니 후룩~ 지나갈게요.

다음에 매크로 할 때 다시 한번 나오기도 하고요.^^


라인의 이동



  • gg : 첫 줄로 이동
  • G : 마지막 줄로 이동
  • (숫자)gg 또는 (숫자)G: 입력한 숫자의 줄로 이동


gg와 G는 간단하지요??

문서의 첫 줄, 마지막 줄로 이동하는 명령어에요.

세번 째에 말한 숫자는 말 그대로 숫자를 입력 하는 거예요.

100이면 100이라고 키보드라고 입력한 후에 gg 또는 G를 입력 하는거죠.

그럼 100줄로 이동을 해요.

goto의 약자 인거 같아요.


Scroll UP/DOWN


보통 키보드에는 Pg UP, Pg Down 이라는 키보드가 있어요.

말 그대로 하나의 Page를 올라 가거나 내려 가는 거죠.

그런데 Vim에서는 오른손이 최대 엔터까지만 가야 편함을 느끼게 되요.

해당 키를 누른다고 많이 움직인다면 Vim을 사용하는 이유가 없어지게 되지요.

그리고 당연히 그에 해당되는 명령어가 있고요.^^


  • CTRL + f : Page Down과 동일
  • CTRL + b : Page Up과 동일
  • CTRL + d : Scroll을 반만 내림
  • CTRL + u : Scroll을 반만 올림

우선 위의 명령어를 입력 하면 Scroll이 이동 되는데...

Ctrl + f를 누르면 Scroll이 움직이는게 아니라 "찾기" 창이 나오지요??

그건 다른 이유가 있는데 일단 이건 다른 장에 설명해 드릴게요.^^

우선 위와 같은 명령어로 Scroll을 이동 할 수 있다는 것만 기억해 두세요~



점프 모션


jump라고 하니까 무얼 이야기하는지 잘 모르겠지요?? ^^

간단하게 설명해 드리면 우리가 찾기나 gg로 커서를 갑자기 이동할 수 있잖아요?

그렇게 이동을 했을 때 이전에 위치한 커서의 좌표가 jumplist 라는 곳에 저장이 돼요.


  • :jumps


위 처럼 명령어를 적어 보세요.

그럼 지금까지 커서의 이동 경로가 나오게 되죠.


  • Ctrl + o : 이전 jumplist로 이동
  • Ctrl + i : Ctrl + o 로 이동한 역방향으로 이동


위의 말이 어렵다면.. 일단 한번 눌러 보세요. ^^

그럼 제가 무슨 말을 하는지 아실 수 있을 거예요.

사실 이 Jump 명령이 개발 할 때 가장 중요하다고 생각해요.

나중에 나오겠지만 함수에서 함수의 정의로 이동 하고 특정 String을 검색하여 그리로 이동할 수 있어요.

그런데 Jump 명령어를 모르면 도저히 다시 돌아오기 어렵겠지요.

일단 이건 그 때 다시 이야기 나누기로 해요.


숫자 후 명령어


여기서 처음으로 (숫자)gg라는 명령을 보셨어요.

그런데 숫자 다음에 명령어(Normal Mode에서 입력 가능한 명령어)를 입력해 보세요.

예를 들어 10j를 눌러 보세요.

j는 아래로 이동인데 10이 이전에 눌렸다고 10칸 아래로 내려가져요.

다른 명령어 들도 똑같이 숫자를 입력한 후에 명령어를 입력하면 숫자 만큼 반복되어 진다는걸 알 수 있을거예요.

지금까지 배웠던 명령어와 숫자를 잘 활용 하시면 더 빠른 이동을 하실 수 있을거예요.^^


마치며....


간단하게 끝날거 같았는데 또 길게 글을 적네요.

사실 위에 언급한 명령어 이외에도 상당히 많은 이동 명령어 들이 있어요.

하지만.. 필요한걸 아는게 더 중요하니까 일단 제가 주로 사용하는 명령어를 나열해 보았습니다.

일단 다음 장은 Help를 이용해서 원하는 명령어를 찾는 연습을 해 볼게요.

오늘은 그림이 하나도 없었는데..

Help 할 때는 그림이 많을거 같은 생각이 드네요.

글 하나 쓰는데 시간이 더 걸릴까 두렵습니다...;;;;;

그래도 오늘도 감사합니다.


댓글 없음:

댓글 쓰기