[vim] vim이 임시 파일을 생성 (및 남기지) 못하게하는 방법은 무엇입니까?

vim은 왜 <filename>~파일을 생성 합니까? 비활성화하는 방법이 있습니까?

백업 (또는 다른 것) 인 경우 git을 사용합니다.

또한이 .<filename.with.path.hints>.swp파일들도 마찬가지입니다.

vim에게 그것들을 만들지 말거나 최소한 그 이후에는 정리하지 말라고 어떻게 말합니까?

편집하다

으악, 중복 :

Vim이 ~ 확장자를 가진 파일을 저장하는 이유는 무엇입니까?

나는 거기에서 rogeriopvl의 대답 을 채택 했습니다.

완전 사본 :

set nobackup       "no backup files
set nowritebackup  "only in case you don't want a backup file while editing
set noswapfile     "no swap files



답변

스왑 파일을 계속 사용하는 것이 좋습니다 (Vim이 충돌하는 경우).

스왑 파일이 저장된 디렉토리를 설정하면 일반 디렉토리가 복잡해지지 않습니다.

set swapfile
set dir=~/tmp

또한보십시오

:help swap-file


답변

이것을 .vimrc 구성 파일에 넣으십시오.

set nobackup


답변

; Windows 사용자가 임시 디렉토리로 돌아 가기

set backup
set backupdir=C:\WINDOWS\Temp
set backupskip=C:\WINDOWS\Temp\*
set directory=C:\WINDOWS\Temp
set writebackup


답변

버퍼에 저장되지 않은 변경 사항이 포함되어있을 때 스왑 파일 만 활성화하는 “noswapsuck”이라는 플러그인을 만들었습니다. 변경 사항이 저장되면 스왑 파일이 지워집니다. 따라서 디스크의 파일과 동일한 내용을 포함하는 스왑 파일이 제거됩니다.

여기에서 얻으십시오 : noswapsuck.vim

그것은 나를 위해 잘 작동했지만 전에는 그것을 공개하지 않았으므로 피드백을 환영합니다.

장점 :

  • 디스크에 남아있는 유일한 스왑 파일은 실제로 파일과 다른 중요한 스왑 파일입니다!

단점 :

  • 버퍼에 스왑 파일이 있으면 파일을 처음 열 때 감지되지 않습니다. swapfile버퍼를 편집하기 시작할 때 활성화 된 경우에만 감지됩니다 . 귀찮게 늦었고 방해 할 것입니다. (해결됨 : 버퍼를 열 때 swapfile옵션을 일시적으로 다시 켜서 기존 스왑 파일 을 확인합니다.)

  • 디스크 쓰기 (예 : 저전력 또는 네트워크를 통해 마운트 된 파일 또는 큰 파일 편집)를 최소화하려는 환경에서 작업하는 경우 모든 스왑 파일을 계속 제거하고 다시 만드는 것이 이상적이지 않습니다. 저장하고 편집하십시오. 이러한 상황에서는 다음을 수행 할 수 있습니다.

    :let g:NoSwapSuck_CloseSwapfileOnWrite = 0
    

    이것은 쓰기 후에 스왑 파일을 유지하지만 버퍼가 포커스를 잃을 때 여전히 스왑 파일을 제거합니다.

그건 그렇고, 나는 당신이 복구 한 버퍼가 기존 파일보다 최신인지 또는 동일한 지 확인하기 :DiffAgainstFileOnDisk위해을 누른 후에 매우 유용한 또 다른 작은 플러그인을 가지고 있습니다 (r)ecover.


답변

Windows에서 _vimrc에 다음 행을 추가하십시오.

" store backup, undo, and swap files in temp directory
set directory=$HOME/temp//
set backupdir=$HOME/temp//
set undodir=$HOME/temp//


답변

이 답변은 Windows 10에서 gVim 사용에 적용됩니다. 다른 운영 체제에서도 동일한 결과를 보장 할 수 없습니다.

더하다:

set nobackup
set noswapfile
set noundofile

_vimrc 파일로.

참고 : 이것은 질문에 대한 직접적인 대답이며 (Windows 10의 경우) 가장 안전한 방법은 아니지만 (다른 답변을 읽으십시오), 이것은 내 경우 가장 빠른 해결책입니다.


답변

내 우분투 .vimrc 에이 설정이 있습니다. 프로젝트 파일에 스왑 파일이 없습니다.

set undofile
set undolevels=1000         " How many undos
set undoreload=10000        " number of lines to save for undo

set backup                        " enable backups
set swapfile                      " enable swaps
set undodir=$HOME/.vim/tmp/undo     " undo files
set backupdir=$HOME/.vim/tmp/backup " backups
set directory=$HOME/.vim/tmp/swap   " swap files

" Make those folders automatically if they don't already exist.
if !isdirectory(expand(&undodir))
    call mkdir(expand(&undodir), "p")
endif
if !isdirectory(expand(&backupdir))
    call mkdir(expand(&backupdir), "p")
endif
if !isdirectory(expand(&directory))
    call mkdir(expand(&directory), "p")
endif