this question과 비슷하게 vim에서 실행 취소 된 모든 변경 사항을 다시 실행하라는 명령이 있습니까? 현재 내가 알고있는 모든 것은 1000<C-R>
또는 그와 비슷한 것으로 많은 변경 사항을 다시 실행하기가 쉽지만 성 가시고 오히려 임의적입니다.모든 실행 취소 변경 다시 실행
답변
이 모든 최신 변화까지 변경 재실행 :exec 'undo' undotree()['seq_last']
을보십시오.
당신은 Ctrl 키 + 변화 + R처럼 뭔가에 매핑하십시오. 당신의 vimrc 파일에 장소이 :
undo {N}
실행 취소 트리에서 n 번째 변화에 점프
nnoremap <C-S-R> :exec 'undo' undotree()['seq_last']<CR>
설명.
undotree()
은 실행 취소 트리의 상태로 사전을 반환하는 함수입니다.
undotree()['seq_last']
은 사전에서 seq_last
키를 찾습니다. The highest undo sequence number used.
:exec
우리의 표현의 문자열을 평가 : :help undotree
에서
우리는 seq_last
와 관련된 값입니다 참조하십시오. 예를 들어, undotree()['seq_last']
이 42
을 반환한다고 가정 해 봅시다. 이 예제의 표현식은 undo 42
일 것이므로 42 번째 변경 사항이 적용됩니다.
빔은 직선 실행 취소 시퀀스가 아닌 실행 취소 분기를가집니다. 이것은 명심하는 것이 중요합니다. 최신 텍스트 상태로 가려면 9999g+
(9999
은 임의의 높은 숫자 임)을 사용할 수 있습니다. 또는 :later 1d
을 사용할 수 있습니다.
(어느 정도까지) 실행 취소 브랜치를 이해합니다. 그러나이 경우 원하는 것은 현재 브랜치 ('9999u'의 결과)에서 최신 상태에 도달하는 방법입니다. 임의의 번호를 선택하십시오. –
전혀 작동하지 않아 오류 메시지가 나타나지 않아 당황 스러웠지만, 실수로 'vi'에서 작업하고 있다는 것을 알았습니다. 그것은'vim'에서 완벽하게 작동합니다. –