after / 디렉토리는 언제 사용합니까?


14

나는 마지막 말을 다른 소스에 의해 오버라이드 (override)하지 않아야 물건을 넣을 수있는 장소 이해하지만, 말에 뭔가를 넣어시기를 결정하는 방법에 대한 불분명 해요 ~/.vim/after/ftplugin/보다는 ~/.vim/ftplugin/.

사람들이 일반적으로 원치 않는 행동을 관찰 한 경우 ~/.vim/ftplugin/에만 물건을 사용 하고 물건을 ~/.vim/after/ftplugin/옮기는가?

답변:


20

일반적으로 플러그인을 추가하거나 표준 플러그인을 자신의 플러그인으로 바꾸 려면 ~/.vim/plugin또는 로 이동 ~/.vim/ftplugin합니다. 대신 기존 플러그인의 기능을 유지하면서 추가하거나 추가 한 설정 만 변경하려는 경우 플러그인은 ~/.vim/after/plugin또는 로 이동 ~/.vim/after/ftplugin합니다.


어떤 이유로 나는 항상 Vim이 runtimepath를 검색하고 검색된 첫 번째 일치를 검색하는 대신 검색 기준과 일치하는 각 파일을 소싱한다고 가정했습니다. 애프터 디렉토리에있는 것들과 같은 종류의 사운드는 "in-addition-to"처리와 같은 종류를 얻지 만, 다른 모든 것이 Unix PATH 변수와 같이 취급 될 것입니다.
ivan

5
Vim 검색 기준과 일치하는 각 파일을 소스로 작성하지만 올바르게 작성된 플러그인은 양식 맨 위에 테스트가 있습니다 if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1. 첫 번째 "wins"및 동일한 이름의 후속 플러그인이로드 된 플러그인은 finish명령을 통해 일찍 종료 됩니다. 그게 당신의 플러그인 방법은 ~/.vim/plugin디렉토리, 예를 들어,에서 플러그인을 방지 할 수 있습니다 $VIMRUNTIME/plugin완전히로드되지. 이 테스트는 플러그인 파일에 포함되어 있지 않습니다 after.
garyjohn

좋아, 나는 지금 그것을 얻는다 생각한다. 일치하는 모든 파일이 공급 될 것입니다 때문에, 사용 finish하면 첫 번째 경기를로드 할 때 가드 절을하고, (애프터 디렉토리를 사용 하지 않고finish 당신은 다른 중 하나에 의해 영향을받는 것 설정을 재정의 할 필요가있을 때 가드 절) 소스.
ivan

1

vanilla vim이 특정 파일 형식을 인식하고 제공된 동작을 수정하려는 경우 사용자 고유의 설정이 ~/.vim/after/ftplugin/

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