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 백업 파일을 무시하고 싶을 것입니다. 다양한 백업 확장 프로그램을 모두 무시하려고 우스운 일입니다.)
즉, 아무것도 넣지 마십시오 .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 플래시 파일 도 무시 합니다.