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


163

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

13
힘내 시스템 충돌 후 작업을 복구하는 데 도움이되지 않습니다. 힘내도 * .swp 파일을 무시할 수 있습니다. = D
vmassuchetto



lol 누군가 6 년 동안 게시 한 후이 질문을 중복으로 심각하게 표시 했습니까?
hasen

답변:


79

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

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

set swapfile
set dir=~/tmp

또한보십시오

:help swap-file

4
음, vim이 너무 자주 충돌하지 않는다고 말하지 않는 한 메모장 ++을 사용하는 사람들은 필요하지 않았습니다!
hasen

8
아니, 나는 vim이 너무 자주 충돌한다는 것을 암시하지 않았다. 그러나 작업 환경의 경우 작업중인 일부 호스트에 대한 네트워크 연결이 매우 불안정하여 편집이 중단됩니다. 스왑 파일이 도움이됩니다.
user55400 2009

9
@ user55400은 GNU / Screen에 대해 들어 보셨습니까? (또는 tmux 또는이 일본 대안)
Elazar Leibovich

나는 이것을 Windows의 _vimrc 파일에 추가했는데 여전히 file ~ 파일을 얻습니다. 내가 제대로하고 있지 않습니까?
FilBot3

2
@noircc / tmp를 사용하지 않는 것이 좋습니다. 전체 시스템이 충돌하여 재부팅해야하는 경우 스왑 파일이 사라집니다.

57

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

set nobackup

5
Vim이 설치된 Windows 8.1에서이 작업을 수행했습니다. 스왑 파일이 여전히 존재합니다.
Shaun Luttin 2016 년

1
숀, 당신은 .vimrc에 "set noswapfile"을 추가해야 할뿐만 아니라, 원래 질문에 대한 편집에서 언급 된 것처럼 새로운 스왑 파일이 생성되는 것을 막을 수 있습니다.
얼 Zedd

무엇에 대한 :전과 접두사로 앉아 set키워드? 필요합니까? 댓글처럼 보이지 않습니다 ..
Stephane

@Stephane :접두어는 명령 모드에서 수행됨을 의미하지만 :vimrc를 작성할 때 필요하지 않습니다
TankorSmash

그건 정말 좋은 생각이 아닙니다. 이러한 파일을 temp / 폴더에 두는 것의 위는 이미 훨씬 낫습니다.
MonsieurMan

36

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

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

6
설정 undodir = C : \ WINDOWS \ Temp

이것은 나를 위해 작동하지 않았다-대신 set dir = $ TEMP를 사용해야했다
Frank Schmitt

10

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

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

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

장점 :

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

단점 :

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

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

    :let g:NoSwapSuck_CloseSwapfileOnWrite = 0
    

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

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


8

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

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

5

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

더하다:

set nobackup
set noswapfile
set noundofile

_vimrc 파일로.

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


0

내 우분투 .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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.