vim 플러그인을 만들기 위해 따라야 할 것은 무엇입니까?


11

그래서 제 질문은 간단합니다. vim을 만들기 위해 vim 스크립팅을 배우는 것이 좋습니까, 아니면 다른 언어로 채택해야합니다.

예를 들어이 링크는 Python을 사용하여 vim 플러그인을 만드는 방법을 보여주는 YouTube 비디오를 엽니 다.

Vim 스크립트는 vim 플러그인을 만들지 않는 한 완전히 유용하지 않습니다. vim 스크립트 만 사용하지 않는 한 수행 할 수없는 특별한 것이 있습니까?


2
많은 사람들이 플러그인을 만들거나 배포하지 않고 vimscript를 사용하여 Vim을 구성 (매우 철저하게)합니다.
VanLaser

답변:


12

플러그인은 VimL에서 99 %입니다. 그 이유는 vim이 설치된 곳에 VimL를 사용할 수 있기 때문입니다. 다른 언어에서는 훨씬 더 복잡합니다. 예를 들어 Vim을 사용하는 창 상자에 Python을 설치하는 경우는 거의 없습니다.

물론 VimL는 번거롭고 많은 멋진 기능이 빠져 있지만 적어도 휴대용 장치를 사용하는 것이 더 쉽습니다.

VimL가 아닌 1 %는 파이썬 바인딩을 제공하는 외부 API와 상호 작용해야 할 때입니다.

BTW, VimL에 관해 배우는 거의 모든 것을와 같은 명령으로 플레이 할 때 대화식으로 사용할 수 있습니다 :substitute. 대부분의 매핑이나 매크로에는 파이썬이 필요하지 않습니다.


1
나는 실제로 VimL를 성가 시게 찾지 않습니다. 물론 파이썬과 같은 고급 언어의 멋진 기능이 부족하다는 데 동의하지만 한동안 작업 한 후에 VimL가 매우 즐겁습니다. VimL에 대한 명성이 필요 이상으로 나쁜 것 같습니다.
Karl Yngve Lervåg

잘. vim5.x 이후로 많은 진전이 있었다는 것을 인정해야합니다 (사용하기 시작할 때). 그러나 복잡한 일을해야하는 경우가 여전히 남아 있습니다. 예를 들어 map()문자열이 필요하거나 관련이없는 것을 참조하십시오 :map. 나는 종종 ..., 함수 호출의 목록을 매핑을 생성 또는 처리처럼 내 끝 부분에 와서 문자열 평가 주변 / 플레이해야
루크 Hermitte

다른 언어로 vim 플러그인을 작성해도 python / ruby ​​/ etc에 바인딩되기 때문에 VimL를 배우지 않아도됩니다. 꽤 제한적이며 exec어쨌든 VimL의 스 니펫을 끝내게됩니다. 보다 효율적으로 작업 할 수있는 언어로 핵심 논리를 작성할 수 있지만 여전히 VimL를 배울 필요가 있습니다.
호브

12

플러그인을 작성하려면 Steve Losh의 "Writing Vim Plugins" 기사를 읽어야합니다 . VimL를 고수할지 여부를 결정할뿐만 아니라 모범 사례 조언을 제공합니다.

또한 다른 언어를 사용한 스크립팅 Vim 에 대한 작은 토론도 포함되어 있습니다 .

먼저 다른 언어를 사용하려면 플러그인 사용자가 해당 버전을 지원하도록 컴파일 된 Vim 버전을 사용해야합니다. 요즘에는 문제가되지 않지만 플러그인을 모든 곳에서 실행하려면 옵션이 아닙니다.

다른 언어를 사용하면 오버 헤드가 추가됩니다. Vimscript뿐만 아니라 Vim과 언어 간의 인터페이스도 배워야합니다. 작은 플러그인의 경우 프로젝트보다 절약이 더 복잡해 지지만 큰 플러그인의 경우 비용을 지불 할 수 있습니다. 그 가치가 있는지 결정하는 것은 당신에게 달려 있습니다.

마지막으로, 다른 언어를 사용한다고해서 Vimscript의 편심으로부터 완전히 격리되는 것은 아닙니다. 여전히 Vimscript에서 대부분의 작업을 수행하는 방법을 배워야합니다. 다른 언어를 사용하면 다른 것보다 더 깔끔하게 마무리 할 수 ​​있습니다.

내 경험에 따르면 ViVi가 아닌 플러그인이 더 좋을지라도 나중에 이식성 때문에 순수한 VimL 대안으로 전환하게됩니다. Vim은 거의 모든 시스템 (추악하고 오래된 레거시 시스템조차도)에서 실행되며 플러그인을 사용할 수없는 종속성을 설정하거나 일시적으로 비활성화하는 오버 헤드가 발생합니다. .

의존성을 설정하는 것이 더 쉬운 경우에도 몇 가지 문제가 발생할 수 있습니다 (예 : 일부 Python 기반 플러그인은 가상 머신의 공유 폴더에서 소스로 제공 될 때 100 % 작동하지 않음). 내가 쓴 몇 가지 플러그인이 VimL 만 사용하는 이유입니다.

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