vim: 하루 동안 파일에 적용된 모든 변경 사항을 추적하는 방법

vim: 하루 동안 파일에 적용된 모든 변경 사항을 추적하는 방법

하루 동안 파일에 적용된 모든 변경 사항을 추적할 수 있도록 vim(텍스트 편집기)을 설정하는 방법을 아는 사람이 있습니까? 실수로 서브루틴을 수정하여 초기 상태(하루 시작과 같은)로 되돌리고 싶을 때 필요합니다.

저는 보통 svn을 사용하여 최신 버전의 소스 코드를 글로벌 저장소에 저장합니다. 하지만 때로는 두 개의 svn 커밋 사이의 코드 상태로 돌아가야 할 때도 있습니다.

고쳐 쓰다:

~할 수 있게 하다지속적인 실행 취소예를 들어 실행 취소 디렉토리를 생성 ~/.vim/undodir하고다음 설정.vimrc파일을 입력하세요 :

set undodir=~/.vim/undodir
set undofile
set undolevels=1000
set undoreload=10000

답변1

값이 충분히 크면 'undolevel'Vim은 하루 동안의 변경 사항을 취소할 수 있어야 합니다. Vim을 중간에 종료하는 경우 Vim도 활성화해야 합니다.지속적인 실행 취소옵션을 설정하여 'undofile'.

Vim은 실행 취소 명령의 순차적 목록뿐만 아니라 실제로 모든 변경 사항의 트리도 캡처합니다. 또한 실행 취소(cp. :help undo-branches)를 위한 여러 명령이 있습니다.

:earlier 12h

좋은 후보입니다.

비슷한 플러그인이 있습니다군도그리고실행 취소 트리, 실행 취소 트리를 시각화하고 탐색을 허용합니다.

실행 취소 트리를 탐색하는 것이 너무 번거롭다면(예: 하루 종일 많은 변경을 하기 때문에) 내 것과 같은 가벼운 버전 제어 시스템(Subversion 외에)을 추가할 수도 있습니다.백업 플러그인 작성, 특정 시간에 백업을 명시적으로 생성합니다.

답변2

몇 년 동안 저는 vi편집 중인 파일을 저장하기 위해 스크립트 래퍼를 사용해 왔습니다. 너무 많은 백업 파일을 얻지 않도록 최대 하루에 한 번 이 작업을 수행합니다.

다음은 제가 사용하는 스크립트의 간단한 버전입니다. 아마도 여러분에게도 효과가 있을 것입니다. 다음을 실행하는 대신 (백업과 함께 vi)을 vi실행할 수 있습니다 .vib

vib() {
    local DATE=$(date +'%Y-%m-%d') FILE BACK
    for FILE in "$@"
    do
        BACK="$FILE.$DATE"
        test ! -f "$BACK" && cp -p "$FILE" "$BACK"
    done
    vi "$@"
    for FILE in "$@"
    do
        BACK="$FILE.$DATE"
        cmp -s "$FILE" "$BACK" && rm -f "$BACK"
    done
}

이는 .bash_profile함수 선언에 배치하거나 제거하고 실행 파일에 배치할 수 있습니다./usr/local/bin/vib

관련 정보