IT story

자식은 vim 임시 파일을 무시

hot-time 2020. 4. 23. 08:03
반응형

자식은 vim 임시 파일을 무시


git이 모든 디렉토리에서 (시스템 전체 또는 단일 프로젝트를 위해 로컬로) vim에 의해 생성 된 임시 파일을 무시하도록하는 올바른 방법은 무엇입니까?


Vim 임시 파일은 ~로 끝나므로 파일 .gitignore에 줄을 추가 할 수 있습니다

*~

Vim은 swp 및 swo 확장자를 가진 스왑 파일도 만듭니다. 그것들을 제거하려면 다음 줄을 사용하십시오.

*.swp
*.swo

이것은 단일 프로젝트의 모든 vim 임시 파일을 무시합니다.

전역 적으로 수행하려면 집에서 .gitignore 파일을 만들고 (다른 이름이나 위치를 지정할 수 있음) 다음 명령을 사용할 수 있습니다.

git config --global core.excludesfile ~/.gitignore

그런 다음 무시하려는 파일을 해당 파일에 추가하기 만하면됩니다.


또는 다음과 유사한 행을 .vimrc파일 에 추가하여 스왑 파일을 별도의 위치에 저장하도록 vim을 구성 할 수 있습니다 .

set backupdir=$TEMP//
set directory=$TEMP//

자세한 내용은이 vim 팁 을 참조하십시오.


이는 리포지토리가 아니라 사용자별로 만 수행해야하는 것입니다. Joe가 emacs를 사용하는 경우 emacs 백업 파일을 무시하고 싶지만 vi를 사용하는 Betty는 vi 백업 파일을 무시하려고합니다 (대부분의 경우 유사하지만 24,893 개의 공통 편집기가 있으며 꽤 좋습니다. 다양한 백업 확장 프로그램을 모두 무시하려고 우스운 일입니다.)

즉, 아무것도 넣지 마십시오 .gitignore나에 core.excludes에서 $GIT_DIR/config. $HOME/.gitconfig대신 nunopolonia가 제안한대로 정보를 입력 --global하십시오. "전역"은 시스템 별이 아니라 사용자 별을 의미합니다.

모든 사용자에 대해 시스템 전체에서 구성을 원한다면 (다른 사용자도) 다른 메커니즘이 필요합니다. 리포지토리를 초기화하기 전에 템플릿을 설정했을 수 있습니다.


또한 다음과 같은 파일을 무시하는 것이 좋습니다.

.*.swp
.*.swo

끝나는 파일이있을 수 있습니다. .swp


"git commit"전에 vim을 종료하십시오.

메이크업에 vim(백업 파일을 다른 폴더를 사용하는 /tmp예를 들어)

set bdir-=.
set bdir+=/tmp

vim에서 .swp 파일의 현재 폴더 사용을 중지하려면 :

set dir-=.
set dir+=/tmp

-=, +=vim은 bdir, dir에 대한 다른 기본값을 가지고 있기 때문에 일반적으로 사용하는 것이 좋으며 , 우리는 모든 것을 지우고 싶지 않습니다. bdir, dir 에 대한 자세한 내용은 vim help를 확인하십시오 .

:h bdir
:h dir

스왑 파일 확장자를 생성하는 실제 VIM 코드는 다음과 같습니다 .

/* 
 * Change the ".swp" extension to find another file that can be used. 
 * First decrement the last char: ".swo", ".swn", etc. 
 * If that still isn't enough decrement the last but one char: ".svz" 
 * Can happen when editing many "No Name" buffers. 
 */
if (fname[n - 1] == 'a')        /* ".s?a" */
{   
    if (fname[n - 2] == 'a')    /* ".saa": tried enough, give up */
    {   
        EMSG(_("E326: Too many swap files found"));
        vim_free(fname);
        fname = NULL;
        break;  
    }
    --fname[n - 2];             /* ".svz", ".suz", etc. */
    fname[n - 1] = 'z' + 1;
}
--fname[n - 1];                 /* ".swo", ".swn", etc. */

다음 형식의 스왑 파일이 생성됩니다.

[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]

VIM 용 github 자체 gitignore 파일에 포함 된 것은 거의 입니다.

다른 사람들이 올바르게 지적했듯이이 .gitignore는 .svg 이미지 파일과 .swf adobe 플래시 파일 도 무시 합니다.


나는 이것이 git vim에 의해 생성 된 임시 파일을 무시한다는 것을 알았다

[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
*.un~
Session.vim
.netrwhist
*~

여기 에서도 볼 수 있습니다 .


확실한,

프로젝트의 홈 디렉토리에 ".gitignore"를 생성해야하며

*.swp

그게 다야

하나의 명령으로

project-home-directory$ echo '*.swp' >> .gitignore

# VIM: Temperory files
*~

# VIM: Swap-files
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]

# VIM: Commands :cs, :ctags
tags
cscope.*

# VIM session
Session.vim

# VIM: netrw.vim: Network oriented reading, writing, browsing (eg: ftp scp) 
.netrwhist

스왑 파일의 이름은 일반적으로 확장자가 ".swp"인 편집중인 파일과 동일합니다.

  • 유닉스에서는 '.' 편집 된 파일과 동일한 디렉토리에 파일 이름을 교환하기 위해 앞에 붙습니다. 이렇게하면 스왑 파일이 디렉토리 목록에 표시되지 않습니다.
  • MS-DOS 시스템 및 'shortname'옵션이 켜져 있으면 '.' 원래 파일 이름에서 '_'로 바뀝니다.
  • 이 파일이 이미 존재하는 경우 (예 : 충돌에서 복구 할 때) 경고가 표시되고 ".swo", ".swn"등의 다른 확장자가 사용됩니다.
  • 기존 파일을 덮어 쓰지 않습니다.
  • 스왑 파일은 Vim이 파일 편집을 중지하자마자 삭제됩니다.

'.'의 대체 '_'는 MS-DOS 호환 파일 시스템 (예 : 크로스 도스, 멀티 도스)의 문제를 피하기 위해 수행됩니다.

http://vimdoc.sourceforge.net/htmldoc/recover.html

http://www.vim.org/scripts/script.php?script_id=1075


myy 경우 임시 파일은 이미 이전 작업으로 커밋되었으므로 .gitignore를 수정해도 커밋 된 파일에는 영향을 미치지 않습니다 ... git rm files_to_be_ignored --cache먼저 커밋 한 다음 완료해야합니다.


소스 제어를 사용중인 경우 vim 임시 파일은 매우 쓸모가 없습니다.
따라서 vim을 작성하지 않도록 구성 할 수 있습니다.

~ / .vimrc를 편집하고 다음 줄을 추가하십시오.

set nobackup
set noswapfile

참고 URL : https://stackoverflow.com/questions/4824188/git-ignore-vim-temporary-files

반응형