IT/Linux

[vi 명령어] 되돌리기

Terriermon 2021. 2. 17. 17:48

Undo 되돌리기

 

윈도우 환경에서는 쉽게 사용하는

 

ctrl + z: 되돌리기

ctrl + y: 앞으로

 

 

 

리눅스 환경에서 사용하는 vi 편집기도 되돌리기를 지원한다.

 

- 관련 명령어는 명령 모드(esc)에서 사용 가능

 

u: 입력모드 시작 시점까지 모두 되돌리기

U: 바로 전에 입력한 것 되돌리기 (입력 모드가 같은 줄에서 끝나야 함)

ctrl + r: 되돌리기 취소 (앞으로)

 

 


 

 

이렇게만 보면 헷갈린다. 따라서 예시로 다시 설명한다.

 

처음 vi test로 아무것도 없는 화면에서 시작한다.

 

 

1. 한 번의 입력모드로 한 번에 적었을 때

Hi

Hello

- u: 입력모드 시작 전 상태로 돌아감. 빈 화면

- U: 반응 없음. Hi Hello 형태 그대로 유지

- ctrl + r

   > u 이후: 다시 Hi Hello가 나타남

   > U 이후: U의 반응이 없기 때문에 ctlr + r도 그대로 유지

 

u 후에 U를 해도 U는 반응이 없다. 이런 경우 u만 입력되므로 모든 글자가 삭제된다.

 

 

1-1. 한 번의 입력 모드로 한 번에 적었을 때(한 줄)

Hi

- u: 이전 상태로 돌아간다.

- U: 이전 상태로 돌아간다.

  > 입력 모드가 한 줄에서 끝났기 때문에 이전 상태로 되돌릴 수 있다.

 

 

2. 두 번의 입력 모드로 적었을 때

Hi			//입력모드 종료 후 다시 시작

Hello

- u: Hello만 지워진다. 되돌리는 단위가 입력모드이므로 새로 시작한 입력모드의 부분이 사라진다.

- U: Hello만 지워진다. 단, 입력모드가 Hello줄에서 시작해야 한다.

- ctrl+r: u 작업만 취소한다. U를 사용했을 경우, ctrl + r로 앞 작업을 불러올 수 없다.

 

만약, U를 사용해서 되돌렸다면 다시 U를 사용해서 취소하면 된다.

 

 

 

결론

 

- 바로 전 작업을 취소하고 싶다면 U 사용

- 입력모드를 눌렀던 시점으로 되돌리고 싶다면(보통 입력모드로 연속 입력 하니까 큰 단위들을 되돌리고 싶을 때) u와 ctrl + r을 적절히 이용