Vim에서 변경 트리를 어떻게 사용합니까


14

내가 중단 한 변경 분기를 검색 할 수 있습니까? 예를 들어,을 사용하여 여러 작업을 취소 u한 다음 삽입 모드를 변경하고 있습니다. 그러나 나는이 변화를 원치 않는다는 것을 깨달았습니다. 실행을 취소하기 전에 처음에 있던 곳으로 돌아갑니다.

이러한 변경 사항이 영원히 손실됩니까?

답변:


12

실행 취소 트리를 탐색하려면 Gundo 플러그인 을 사용하는 것이 가장 좋습니다 . 이렇게하면 실행 취소 트리 내의 다른 브랜치로 이동하기위한 특수 바인딩과 트리의 각 노드간에 변경된 내용을 정확하게 보여주는 미리보기 창이있는 새 분할 창이 생성됩니다.


다른 선택은 UndoTree입니다.
musicmatze

12

이와 같은 간단한 경우에는을 누르기 만하면 g-됩니다.

본질적으로 이것이하는 일은 u선형으로 ( u/ 와 같은)가 아니라 변경 목록을 시간순으로 ( 실제 변경으로 처리) 통과하는 것 <C-r>입니다.

예를 들어 몇 줄을 삽입하고을 누르면 다음 g-과 같이됩니다.

데모


애니메이션 GIF는 어떻게 만들었습니까?
guido

4
@guido 나는라는 사용자 지정 도구를 사용 mkcast을 .
Doorknob

2

아니요, 트리에서 앞뒤로 이동할 수 없습니다. 가장 좋은 방법은이 작업에 플러그인을 사용하는 것입니다.

또 다른 플러그인은 Undotree 입니다. 이처럼 도 일원 하지만 약간의 차이 :

  1. 순수한 vimscript 구현과 python과 같은 타사 라이브러리가 필요하지 않으며 성능에 대해 걱정하지 마십시오 .vim이 이것을 처리하는 것은 그리 큰 일이 아닙니다. 유일한 의존성은 항상 vim과 함께 제공되는 'diff'도구이며 'diff'가 없어도이 스크립트의 대부분의 기능을 계속 사용할 수 있습니다.
  2. 실시간 업데이트 취소 트리. 변경하면 실행 취소 트리가 동시에 업데이트됩니다.
  3. 현재 체인지 셋, 다음 리두 체인지 셋, 저장된 체인지 셋 등 여러 유용한 마크
  4. 상대 타임 스탬프와 절대 타임 스탬프간에 전환합니다.
  5. 실시간 업데이트 실행 취소 창.
  6. 실행 취소 기록을 지우는 기능.
  7. 더 사용자 정의 할 수 있습니다.

4
이 답변이 doorknob의 게시물에 의해 직접 반증되지 않습니까?
Caleb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.