[vim] Vim의 지속적인 실행 취소를 사용하십니까?

Vim 7.3의 새로운 기능 중 하나는 ‘지속적 실행 취소’로, 버퍼를 종료 할 때 실행 취소 트리를 파일에 저장할 수 있습니다.

안타깝게도 제대로 활성화하지 못했거나 잘못 사용하고있는 것 같습니다. 지금까지 시도한 내용은 다음과 같습니다.

~ / .vimrc에 다음을 추가했습니다.

set undofile                " Save undos after file closes
set undodir=$HOME/.vim/undo " where to save undo histories
set undolevels=1000         " How many undos
set undoreload=10000        " number of lines to save for undo

그 후에는 모든 파일을 열고 편집 한 다음 저장-닫을 수 있어야하며 다시 열면 마치 내가 떠나지 않은 것처럼 실행 취소 / 다시 실행할 수 있어야합니다. 불행히도 언두 파일이 작성되지 않았기 때문에 이것은 사실이 아닌 것 같습니다.

노트:

  1. 크림이없는 Vim 프로젝트에서 Vim 7.3을 사용하여 Win 7을 사용하고 있습니다. 지속적인 실행 취소가 적용됩니다.

  2. $ HOME / .vim / undo가 내 파일 시스템에 있습니다.



답변

존재하지 않는 경우 .vimrc생성하고 undodir영구 실행 취소를 활성화 하려면 이것을 넣으십시오 . Windows와 Linux 모두에서 테스트되었습니다.

" Put plugins and dictionaries in this dir (also on Windows)
let vimDir = '$HOME/.vim'
let &runtimepath.=','.vimDir

" Keep undo history across sessions by storing it in a file
if has('persistent_undo')
    let myUndoDir = expand(vimDir . '/undodir')
    " Create dirs
    call system('mkdir ' . vimDir)
    call system('mkdir ' . myUndoDir)
    let &undodir = myUndoDir
    set undofile
endif


답변

내 _gvimrc에서 이것을 시도했습니다.

" Persistent undo
try
    set undodir=C:\vim\undodir
    set undofile
catch
endtry

try-catch 브래킷을 삭제하면 광고 된대로 작동하기 시작했습니다.

" Persistent undo
set undodir=C:\vim\undodir
set undofile

디렉토리를 만들어야했습니다.


답변

$ HOME이 광고 된대로 작동하지 않는다고 생각합니다.

내 시스템에서 :echo $HOMEH를 보여줍니다 \하지만 : e $HOME/말한다 : ~/유효하지 않은 파일 이름을.

치료 여부를 확인하기 위해 절대 경로로 시도 할 수 있습니다.


답변

이제 예상대로 작동합니다 file.txt. Windows 7에서 Vim 7.4 버퍼를 연 :setlocal undofile다음 버퍼에 변경 사항을 저장하면 “undodir =”을보고 .file.txt.un~하기 때문에 실행 취소 파일 이 함께 생성 :set undodir?됩니다. 기본적으로-즉 수동으로 지정할 필요가 없습니다. 모델 :set undofile라인 에서도 가능 합니다.


답변