프로그래밍/Vim

[Vim] 복사(Copy), 붙여넣기(Paste), 삭제(Delete), 실행취소(Undo)

Peter Ahn 2017. 3. 6. 14:07
반응형

안녕하세요 피터입니다.

오늘은 문서 편집시 필수 기능이라고 할 수 있는 복사, 붙여넣기, 삭제, 실행취소 기능에 대해서 설명드리겠습니다. 


Vim 의 편집 기능

코딩을 포함해서 문서 작업을 하다 보면 이전에 썼던 내용을 재사용해야 하는 일이 비일비재하게 일어납니다. 

매번 같은 문장을 타이핑하기에는 에너지와 시간이 많이 낭비되죠. 

그래서 대부분의 문서 편집기에는 일명 복붙이라고 칭하는 복사, 붙여넣기 기능이 존재합니다. 

여러 행을 한번에 삭제하는 기능도 필수적이구요. 

또한 작업을 하다가 실수로 잘못 지우거나 덮어쓰는 경우 이전 상태로 돌아가는 기능이 필요할 때가 많습니다. 

실행취소 기능 또한 대부분의 문서 편집기에 포함되어 있습니다. 

(심지어 이런 기능은 메모장에도 있습니다)


그런데 텍스트 에디터계의 조상뻘인 vim 에 이런 기능이 없을리가 없겠죠?

지금부터 하나하나 살펴보겠습니다.


1. 복사

vim에서 복사는 일반모드에서 y 또는 yy 명령을 사용해서 합니다. 

y는 '뽑아내다' 라는 뜻을 가진 yank 에서 따온 것이죠. 

일반모드에서 사용되는 대부분의 명령들은 반복수를 지정할 수 있습니다. 

예를 들어 5yy 이렇게 입력하면 현재 행 기준 5행을 복사하는 것이죠. 

 명령어

 설명

 y

 레지스터에 복사. 

 yy

 현재 행을 레지스터에 복사.

 :y

 Y


2. 붙여넣기

복사 또는 잘라내기로 레지스터에 저장한 내용을 일반모드에서 p 키를 이용해서 붙여넣을 수 있습니다.

 명령어

 설명

 p

 현재 행에 붙여넣기.  개행 문자가 포함된 경우에는 현재 행의 아래에 붙여넣기.

 :pu

 P

 현재 행의 위쪽에 붙여넣기.


3. 삭제 (잘라내기)

일반적인 문서 편집기에서 내용을 삭제할 때는 키보드의 Delete 키를 사용합니다. 

vim 에서도 마찬가지로 입력모드에서 Delete 키를 이용해서 삭제할 수 있습니다. 

일반모드에서 x 키를 이용해서 한글자씩 삭제할 수도 있습니다. 

그런데 엄밀하게 말하면 vim에서 삭제만 수행하는 기능은 없습니다. 

모든 '삭제' 기능이 삭제한 내용을 레지스터에 기록하는 '잘라내기'로 동작하기 때문입니다.

 명령어

 설명

 x

 커서에 위치한 문자 삭제.

 dd

 현재 행 삭제

 :d

 D

 현재 컬럼 위치에서 현재 행의 끝부분 까지 삭제  

 d$

 J

 아래 행을 현재 행의 끝에 붙임 (아래 행의 앞부분 공백은 제거됨)


4. 실행취소

vim에서는 매우 강력한 실행취소 기능을 제공합니다.

일반모드에서 u 명령을 통해 직전 명령을 취소할 수 있는데요. u 명령을 계속해서 사용하면 해당 문서를 처음 열었던 상태까지 돌아갈 수 있습니다. 

이 상태에서 Ctrl+R 명령으로 최근 상태까지 다시 복귀가 가능하기 때문에 편집하다가 실수로 잘못 편집하거나 이전 상태를 확인하고 다시 편집하려고 할 때 유용하게 사용할 수 있습니다. 

 명령어

 설명

 u

 undo 기능. 바로 직전 명령 취소. (이전 상태로 돌아감)

 Ctrl+R

 redo 기능. 바로 직전에 취소했던(undo) 명령 되돌림.


-Peter의 우아한 프로그래밍

여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 남겨주시면 감사하겠습니다.

반응형