[vim] VIM의 실행 취소 트리는 어떻게 사용됩니까?

이 답변 은 말합니다 :

Vim의 실행 취소 / 재실행 시스템은 무적입니다. 무언가를 입력하고, 취소하고, 다른 것을 입력하면, Vim은 스택 대신 실행 취소 트리를 사용하기 때문에 가장 먼저 입력 한 것을 되돌릴 수 있습니다. 거의 모든 다른 프로그램에서 가장 먼저 입력 한 내용이이 상황에서 손실됩니다.

이것이 내가 처음 듣는 것입니다. 나무를 따라 어떻게 역 추적 할 수 있습니까?



답변

:h undo-redo모든 명령과 사용법을 나열하는 도 참조하십시오 .

실행 취소 트리를 탐색하는 방법에는 두 가지가 있습니다. 하나는 “시간을 거슬러 올라가는 것”입니다. g+그리고 g-트리의 모든 노드를 시간순 또는 역 시간순으로 순회합니다 (실행 취소 분기 사이에서 임의로 g-건너 뛸 수 있기 때문에 약간 혼란 스러울 수 있지만 충분히 길면 항상 필요한 곳으로 갈 수 있습니다) 결국). :earlier그리고 :later같은 시간 기술자 걸릴 7m또는 1h; 다시 이것은 취소 분기 사이에서 임의로 이동할 수 있습니다.

다른 방법은 :undo nwhere nis a action of a action을 사용하여 트리의 특정 노드로 이동하는 것입니다 . (텍스트 추가, 삭제, 교체 등 모든 작업은 순차적으로 번호가 매겨집니다.)를 통해 실행 취소 트리의 잎에서 작업 수를 조회 할 수 있습니다 :undolist. 이렇게하면 가지 사이를 쉽게 이동할 수 있습니다. 그런 다음 사용할 수 있습니다 uCtrl-R이동 및 해당 분기 아래에.

Vim 도움말에 좋은 예가 있습니다. 이것이 어떻게 작동하는지 알아내는 가장 좋은 방법은 약간 가지고 노는 것입니다.


답변

파티에 조금 늦었지만 Vim 용 실행 취소 트리 시각화 플러그인을 작성했다고 언급했습니다 .http : //bitbucket.org/sjl/gundo.vim/

개인적으로 나는 이런 식으로 나무를 그리는 것이 내가 이해할 수있는 유일한 방법이라는 것을 알았습니다.


답변

이 페이지는 당신이 알아야 할 모든 것을 설명합니다 :

http://vimdoc.sourceforge.net/htmldoc/usr_32.html


답변

vim을 사용하는 경우 다음을 사용하여 실행 취소 트리를 탐색 할 수 있습니다.

  • u: (실행 취소) 실행 취소 트리에서 뒤로 이동
  • Ctrl+R: (다시 실행) 실행 취소 트리에서 앞으로 이동

문서를 제 시간에 가져 오거나 앞으로 가져 오는 다른 방법 :

  • :earlier 15m: 15 분 뒤로 이동
  • :later 15m: 15 분 안에 앞쪽으로 이동

답변

이 질문에 대한 답변을 받았지만 예를 추가 할 것이라고 생각했습니다.

새 파일을 작성하고 다음을 입력하십시오.

this is a line

undol실행 취소 트리가 표시됩니다. 이 시점에서 당신은 아무것도 취소하지 않았습니다

:undol

number changes  when               saved
     1       1  14:50:36

이제 ESC를 누르고 행을 다음과 같이 수정하십시오.

this is a old line

일반 모드로 전환하고 u (실행 취소)를 누르면 “이전”이 제거됩니다. 를 체크 undol하면이 시점에서 여전히 하나의 브랜치가 있습니다.

이제 줄을 수정하여 다음과 같이 말합니다.

this is a new line

이제 :undol보여줍니다 :

number changes  when               saved
     2       2  87 seconds ago
     3       2  3 seconds ago

다음을 입력하여 첫 번째 지점으로 전환 할 수 있습니다

:u 2

이 번호와 연결된 지점의 끝을 이동합니다 2. 당신이이 분기를 따라 이동할 수 g+g-. 이 시점 g+에서 아무것도하지 않을 것입니다 (당신은 잎에 있습니다). g-“이전” 을 누르면 제거됩니다 (첫 번째 실행 취소 트리를 통과하고 있음). “이전”을 제거 g-하고 g+다시 누르면 다시 “이전”이 다시 실행됩니다.

입력하면

:u 3

두 번째 실행 취소 분기의 리프로 이동하면 다음과 같이 표시됩니다.

this is a new line


답변

이 중 많은 부분이 여기에 요약되어 있습니다.

http://vim.wikia.com/wiki/Using_undo_branches


답변

gundo.vim을 사용하는 것 외에도 언급 g+하고 싶습니다.g-