Command mode - undo / redo
리눅스에서는 이전에 실행하였던 명령을 다시 되돌리거나 다시 수행할 수 있는 데 이것을 undo / redo 라고 한다.
종류 |
기능 |
|
u |
마지막 명령을 취소 |
|
U |
해당 라인 전체에 대한 수정사항을 모두 취소 |
|
ctrl + r |
u를 통해서 취소했던 명령을 다시 수행 |
|
. |
이전에 수행했던 명령을 다시 반복 |
<사용예시>
다음과 같은 상황에서 5dd 명령을 입력해서 63~67 라인의 내용을 삭제하겠다.
다음과 같이 63~67 라인의 내용이 삭제된 것을 확인할 수 있다. 이 상태에서 u 명령을 입력하면,
다음과 같이 마지막으로 입력했던 5dd 명령이 취소되어 파일의 내용들이 원래대로 돌아온 것을 확인할 수 있다. u명령의 경우에는 vim에서 지원하는 강력한 기능중 하나인데 우리가 흔히 사용하는 ms 오피스와 같은 문서작업 프로그램들은 이전의 상태로 다시 복원하는 것에 대해서 한계점이 있지만 vim의 경우에는 따로 저장하지 않았다면 문서을 열었을 때부터 한 모든 작업들을 처음부터 끝까지 취소할 수 있다. vim은 문서를 연 시점부터 이뤄지는 모든 명령에 대해서 기록을 보관하기 때문에 가능한 것이다. 그래서 u 명령은 특별한 제한없이 자신이 파일을 연 순간부터 내린 모든 명령에 대한 내용들을 취소하는 것이 가능하다.
그리고 만약 여기서 이전에 수행했던 5dd 명령을 다시한 번 수행하고 싶다면 redo 명령인 ctrl + r을 입력하면,
다음과 같이 이전에 취소했던 5dd 명령이 다시 수행된 것을 확인할 수 있다. redo는 뭔가를 취소했을 떄에만 사용이 가능하며 취소한 적이 없다면 취소의 취소라는 개념은 없기 때문에 해당 명령어를 입력해도 동작하지 않는다.
이번에는 U가 어떻게 동작하는 지 알아보기 위해서 다음의 문장을 수정해 보도록 하겠다.
위에서 121번 라인 코드의 내용을 다음과 같이 수정해 보겠다.
Grape -> Water Melon / 10000 -> 15000 으로 수정하였다.
그런데 여기서 U 명령을 입력하게 되면
다음과 같이 수정하기 전의 문장으로 다시 되돌아오는 것을 확인할 수 있다. 그리고 추가적으로 기억해두어야 할 것은 U 명령에는 redo를 사용할 수 없다는 점을 기억해 두어야 한다.
마지막으로 " . " 이다. 이를 입력하면 사용자가 이전에 수행했던 명령을 그대로 다시한 번 수행해주는 데 이를 확인해보면 다음과 같다.
다음과 같은 상황에서 dd를 사용해서 115번 라인을 지워보도록 하겠다. 그렇게 되면
다음과 같이 기존의 115번 라인의 내용이 삭제된 것을 확인할 수 있다. 그리고 여기서 " . "를 입력하면
다음과 같이 이전에 수행했던 dd 명령이 다시한 번 수행된 것을 확인할 수 있다. " . "는 횟수에 제한없이 이전에 사용했던 명령을 편리하게 다시 수행할 수 있다.
'Tools > Vim' 카테고리의 다른 글
Command mode - 커서이동 (0) | 2021.02.06 |
---|---|
Command mode - 내용변경 명령 (0) | 2021.02.06 |
Command Mode - 복사/지우기/붙여넣기 명령 (0) | 2021.02.06 |
Command Mode -> Insert(Edit)모드로 진입하는 명령 (0) | 2021.02.05 |
Vim 이란 무엇인가? (0) | 2021.02.04 |
댓글
이 글 공유하기
다른 글
-
Command mode - 커서이동
Command mode - 커서이동
2021.02.06 -
Command mode - 내용변경 명령
Command mode - 내용변경 명령
2021.02.06 -
Command Mode - 복사/지우기/붙여넣기 명령
Command Mode - 복사/지우기/붙여넣기 명령
2021.02.06 -
Command Mode -> Insert(Edit)모드로 진입하는 명령
Command Mode -> Insert(Edit)모드로 진입하는 명령
2021.02.05