Vim 용 패키지 (플러그인) 관리


81

Emacs 24 패키지 관리자 가있을 것 같습니다 . Vim에는 어떤 패키지 관리 옵션이 있습니까?


1
이 맥락에서 패키지 관리자는 무엇입니까? VimExplorer와 같은 것?
Matt Ball

중앙 저장소에서 타사 플러그인을 설치하고 관리하는 것.
ntimes 2010 년

1
음, vim에는 중앙 저장소 (vim.org), 패키지 시스템 (vimballs), 최신 및 최고 (여러 개, 지금 이름을 기억하지 마십시오)를 확인하는 스크립트가 있습니다. 더 원하십니까? :-)
Rook

3
나는 vimballs를 인식하지 못했고 내가 틀렸다면 나를 고쳐 주었지만 여전히 a) 사이트를 방문하고 b) vba 파일을 다운로드 해야하는 것처럼 보입니다-존재하는 경우에는 해당되지 않는 것 같습니다. 대부분의 플러그인-및 c) 그런 다음 vimball을 실행합니다. 내가 염두에 둔 것이 정확히 아닙니다 (RubyGems 참조) :)
ntimes

답변:


85

지금 사용하고 VimPlug을 위해 내 자신의 빔 설치, 나는 확실히 그것을 권장합니다. 설치는 매우 간단하고 빠르고 예쁘고 효과적입니다!

VimPlug 동영상

이 답변에서 Vundle 을 추천 했습니다 . 그러나 Vundle은 더 이상 유지되지 않으며 더 나은 대안이 있습니다.


저자는 vundle gmarik.info/blog/2014/02/04/… 관리를 중단 했습니다 . 당신은 여전히 ​​github에 대한 기여를 볼 수 있지만 더 많은 지식을 가진 사람이 vundle의 미래에 대해 논평 할 수 있습니다.
kirill_igum 2014-06-23

그는 NeoBundle이 대부분 포크를 만드는 대신 자신의 코드를 복사 한 것에 약간 짜증이 나는 것 같습니다. 그러나 그가 더 이상 그것을 유지하지 않으면 NeoBundle이 인수할까요?
Jostein 2014-06-25

GitHub 리포지토리가 활성화되어있는 것 같습니다. 또한 업데이트의 링크에 대한 의견에서 누군가가 도움을 청한 것 같습니다.

Vundle에 대한 나의 고통은 소스로 git (주로 github 프로젝트) 만 사용한다는 것입니다. 그러나 TagList와 같은 잘 알려진 프로젝트를 검색하면 공식 vim 플러그인 사이트에서 "미러"를 얻을 수 있습니다. 나는 보안을 위해 그것들 중 어느 것도 신뢰하지 않습니다. 따라서 나는 내 자신의 github 유지 번들 디렉토리 와 함께 좋은 오래된 Pathogen을 계속 사용합니다 .
KFL

@KFL VAM에는 git repo 또는 vim.org에서 이론적으로 각 플러그인에 대한 가장 표준 소스 가있는 플러그인 인덱스 가 있습니다. 커뮤니티가 유지되지만 각 플러그인에 대해 하나의 리포지토리 만 있으므로 시작입니다. (그리고 색인이 git repo이므로 직접 업데이트 할 수 있습니다.)
jpaugh

38

vim에 대한 플러그인 관리는 전체 개인 vim 런타임 디렉토리에 플러그인 파일을 배포함으로써 기존 방식에서 고통 스러웠습니다. ~/.vim* nix 시스템의 경우. 일단 플러그인이 설치되면 필요한 단계 인 오래된 플러그인 파일을 쉽게 제거 할 수있는 방법이 없기 때문에 업데이트하기가 어렵습니다.

처음에는 훌륭한 플러그인 관리 도구가 어떻게되어야하는지에 대한 개인적인 요구 사항을 나열하고 싶습니다.

  1. 순수한 VimL로 작성되어야합니다.
  2. 플러그인을 자체 디렉토리에 설치해야합니다.
  3. vim이 시작될 때 플러그인을 자동로드합니다. 필요에 따라로드하기 좋습니다.
  4. 플러그인을 설치, 업데이트 및 제거하는 기본 제공 방법이 있어야합니다.
  5. 플러그인에 필요한 검색 방법이 내장되어 있으면 좋습니다.
  6. 필요한 플러그인을 파일에 선언 할 수 있어야합니다.
  7. 의존성 해결 메커니즘이 있으면 좋습니다.

많은 구현이 있습니다 ( Vim-Scripts.org 에는 사용 가능한 모든 도구에 대한 포괄적 인 요약 이 있습니다). 저는 몇 가지 주요 도구에 대해 생성 순서에 따라 이야기 할 것입니다.

vimball 은 문제를 해결하기위한 첫 번째 시도였으며 실제로 많은 플러그인 *.vba이 오랫동안 패키지와 함께 제공되는 반 공식적인 솔루션 이었습니다. 이것은 GetLatestVimScripts 와 결합 하여 vim 플러그인 관리를위한 전통적인 방식을 형성했습니다.

그럼에도 불구하고 문제는 Tim Pope병원체 ( Github Repo )가 나타나기 전까지는 남아 있습니다. 각 플러그인을 자체 디렉토리에 배치하고 vim의 "rtp (runtimepath)"를 수정하여 시작할 때로드하는 것이 나타났습니다. 이것은 git / github 및 기타 도구 (예 : git / github)에서 호스팅하는 vim-scripts.org 와 결합 된 훌륭한 발전 입니다. vimmer )에서 vim 플러그인을 관리하는 현대적인 방법을 형성합니다. 이 주제에 대해 이야기하는 많은 기사와 비디오가 있습니다.

플러그인을 관리하는 플러그인으로서, 병원체는 플러그인 검색, 설치, 업데이트 및 제거와 같은 일부 핵심 기능이 여전히 누락되었습니다. 그 결과 VAM (Vim-Addon-Manager) ( Github Repo )이 탈퇴했습니다. VAM은 플러그인 관리자가되는 데 필요한 거의 모든 것을 제공합니다. 플러그인 파일을 자체 디렉토리에 배치하고, vim 시작시 플러그인을로드하고, 순수 VimL로 작성된 ex 명령 줄에서 플러그인을 검색 / 설치 / 업데이트 / 제거하고, 자체 플러그인 중앙 정보 데이터베이스를 유지합니다. 플러그인 종속성도 해결합니다. VAM은 모든 기능을 갖춘 vim 플러그인 관리자로 필요한 것 같지만 제 관점에서 VAM이 취하는 접근 방식은 약간 우아하고 때로는 과도하게 설계되었습니다. 여전히 훌륭한 플러그인이며 사용할 가치가 있습니다.

그런 다음 AsNeeded 와 유사하게 관련 명령이나 함수가 호출 될 때만 플러그인을로드하여 병원체를 개선 한 Tom Link의 tplugin ( Github Repo )이 나왔습니다. . 또한 좋은 것처럼 보이는 일종의 종속성 해결 메커니즘이 있습니다.

Finnaly Gmarik은 Vundle ( Github Repo 은 Ruby 's Bundler 에서 영감을 받아 Tim Pope 병원체의 후계자 인 )을 , 더 나은 사용자 인터페이스 및 추가 관리 기능을 제공합니다. Vundle to Vim은 Ruby 프로젝트의 Bundler와 매우 유사합니다. vimrc에서 선언 된 플러그인을 필요로함으로써 vundle은 설치 / 설치를 포함한 나머지 모든 작업을 처리합니다. ex 명령 줄 인터페이스를 통해 플러그인 업데이트 및 제거. 가장 중요한 것은 vundle이 순수한 VimL로 구현된다는 것입니다. vundle의 도움으로 여러 컴퓨터에서 vim 구성을 관리하는 것은 간단한 vimrc 파일로 수행 할 수 있습니다. 최신 플러그인 관리 도구로서 , vundle은 Git에 의존하며 Github에서 직접 플러그인을 설치할 수 있습니다. 또한 Vundle은 플러그인 검색 및 설치를위한 멋진 대화 형 인터페이스를 제공합니다.

Vundle은 내 요구 사항을 완전히 충족하지 못하지만 올바른 방향으로 향하고 있으므로 좋은 출발점이 될 것 같습니다.

다음은 VAM의 저자 인 MarcWeber 가 vim 플러그인 관리자 간의 토론또 다른 비교 입니다.


2
이 훌륭한 답변에 따라 NeobundleVundle 에서 논리적으로 진화 한 것 같습니다
Dev를 기다리는 중 ...

vim 패키지 관리자가 어떻게 발전해 왔는지에 대한 기록을 가지고있어서 매우 좋습니다. 매우 유용하며 복잡한 요구 사항이 없기 때문에 Vundle을 사용하고 있습니다.
RichVel

@RichVel, 반대로 VAM을 사용하게되어 기쁩니다. 하나의 매우 복잡한 요구 사항이 있습니다. 매일 사용하기가 매우 간단하기를 바랍니다. 새 플러그인을 추가하는 것도 매우 쉽습니다. 색인에 모두 준비되지 않은 경우 ( vim-pi )
jpaugh

25

병원체도 있습니다.

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

정확히 요구하는 것은 아니지만 github 및 bitbucket의 체크 아웃을 관리하는 수단을 제공합니다.

이것은 플러그인의 디렉토리 구조를 분리하기 때문에 좋습니다. 따라서 관리자에게 코드를 업데이트하는 대신 플러그인 저장소를 확인하고 적절한 버전 제어를 얻을 수 있습니다. 또한 인용 된 다른 옵션에서 요구하는대로 설정 / 패키징하기 위해 플러그인 작성자에 의존하지 않습니다.

지금은 찾을 수 없지만 vim.org에이 작업을 수행하는 다른 플러그인이 있습니다.


12

나는 지금 손으로 만든 설정을 사용하고 있지만 언젠가 이것을 시도해 보라고 계속 스스로에게 말합니다 (모든 링크는 동일한 플러그인과 관련이 있습니다).

  1. vim-addon-manager : 플러그인을 쉽게 관리하고 업데이트합니다. Marc Weber의 플러그인 (@ vim.org)
  2. Marc Weber의 GitHub 프로필 ; 그는 뱀과 관련된 여러 저장소를 가지고 있습니다.
  3. Vim-plugin-manager @ Vim wiki-페이지의 이름은 다르지만 실제로는 동일한 플러그인을 의미합니다.

다시 한 번, 나는 실제로 이것을 실제로 시도하지는 않았지만 확실히 유망 해 보입니다.


5

Vim.org + Vimballs + GetLatestVimScripts는 현재 vim 플러그인을 관리하는 방식으로 구축되었습니다.

:h GetLatestVimScripts

그것에 대한 나쁜 점 :

  • Windows를 지원하지 않음 (GetLatestVimScripts는 wget AFAIR 사용)
  • vim.org에는 GLVS 및 Vimball을 인식하지 않는 많은 플러그인이 있습니다.

7
Windows에 Vim을 설치할 수 있었다면 Windows에 wget을 설치할 수 있습니다. :)
wRAR

3

Vim을위한 최고의 패키지 관리자 인 NeoBundle을 확인하십시오 . Vundle 의 포크입니다 .


4
둘의 차이점은 무엇입니까?
Peter Gibson

NeoBundle readme에서 : "NeoBundle에 대한 적극적인 개발이 중단되었습니다. 향후 변경 사항은 버그 수정뿐입니다."
icc97

3

이 모든 답변은 꽤 오래된 것 같습니다. 비슷한 질문에 대한이 답변 에서 설명한 것처럼 ,

Vim 8.0과 Neovim 모두 자체 내장 패키지 관리자가 있습니다.

다른 플러그인 관리자가 필요하지 않습니다.

1 ~ 2 년 동안 사용해 왔는데 간단하고 쉬운 것 같습니다.

다음은 장점 및 사용 방법에 대한 몇 가지 리소스입니다.


이 답변이 더 많은 찬성 투표를받지 못했다는 것이 놀랍습니다. : /
Jesse Adelman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.