2009-12-28 5 views
14

Vim에 .txt 파일을로드한다고 가정 해 봅시다. 그렇다면 filetype=html을 변경하고 싶지만 관련 ftplugin을로드하고 싶습니다. 어떻게해야합니까?Vim에서 시작한 후 ftplugin을 수동으로로드하는 방법은 무엇입니까?

나는 :set filetype plugin on:set filtype plugin_name을 사용하고 또한 :filetype plugin_name 등을 시도했지만 ftplugin을 수동으로로드 할 수 없습니다. 어떤 제안?

나는 :filetype=html을 시도한 다음 :filetype plugin on과 다른 조합을 사용해 보았습니다.

편집 : 나는이 답변을 "완전히"해결할 수는 없었지만 (아마도 내 구성에 개별적 일 수 있습니다). 그러나 피에르의 답변은 좋았으므로 나는 그에게 녹색 체크 표시를하고 있습니다.

답변

8

난 당신이 :set ft=X을 사용하여 파일의 유형을 전환 할 때 자동으로 .vim/ftplugin 폴더에 관련 플러그인을로드 것을 매우 확신합니다. 예 : :set ft=html은 관련된 플러그인을로드 할 .vim/ftplugin/html.vim을로드합니다. 그러나 BufEnterBufNew html 파일과 연결된 플러그인로드는 새 파일 유형을 설정해도 이러한 이벤트가 발생하지 않으므로로드되지 않습니다. 따라서 .vimrc에 BufNew 또는 BufEnter으로로드 된 html 특정 플러그인이있는 경우 .vim/ftpluging/html.vim 파일에 대신 넣을 수 있습니다.

파일 형식을 변경하는 텍스트 파일에 항상 모드 라인을 추가 할 수 있습니다. 예 : <!-- vim: ft=html -->.

vim -V 

이이 실행되는 것을 정력을 보여줍니다 : 당신은 당신이 상세 모드에 정력을 시작할 수있는 파일 형식을

:set ft=python 

을 변경할 때

+0

~/.vim/ftplugin /에있는 스크립트 중 하나가있는 snipMate 플러그인에 대해 특별히 문제가 있습니다. 웹 페이지를 .txt 파일로 여는 모든 텍스트 Firefox 플러그인을 사용하여 거기에갑니다. 내가 CMS를 사용하기 때문에이 작업을 수행해야합니다. – Rob

+0

~/.vim/ftplugin/html_snip_helper.vim (snipMate가 html 태그를 닫는 데 사용하여 예를 들어 r을 입력하고 TAB을 누르면
이 생성됩니다) – Rob

+2

ftplugin 폴더의 스크립트는 파일 형식의 이름, 예. python.vim, ruby.vim, html.vim. 이것들은 filetype.vim에 정의되어 있습니다. 내 생각 엔 html_snip_header.vim은 플러그인 디렉토리에로드 된 snipMate 플러그인에 의해로드됩니다. html_snip_header.vim을 직접로드하는 ftplugin 아래에 html.vim 파일을 추가하면 동일한 효과가 있어야합니다. –

0
:f something.html 
:w 
:e 
+0

시도해 보셨습니까? 작동합니다;) –

+0

죄송합니다, 예. 나는 Pierre가 그의 포스트의 밑에 그의 코멘트에있는 점을다는 것을 생각한다; 다른 ftplugin을 소스로 html.vim하려고합니다. – Rob

+0

snipMate를 설치했습니다. 다음은 일련의 명령입니다. vi a.txt : f a.cpp : w : e 그런 다음 을 입력하면 for주기가 문서화 된대로 삽입됩니다. 어쩌면 당신은 그것을 한번 더 시도 할 것인가? 당신이 할 때 : vim은 "vi "으로 파일을 여는 것과 동일한 동작 순서를 수행하는데 필요한 모든 플러그인을 로딩합니다. –

3
:filetype on 
:set filetype=html 
+0

감사합니다. 나는 노력했지만 나를 위해 일하지 않았다. – Rob

+0

이상한. 나는 그것을 시도하고 나를 위해 작동합니다. 뭔가 이상한 일이 ... – maxaposteriori

+6

Filetype에는 검색, 플러그인로드 및 들여 쓰기의 세 가지 설정이 있습니다. : filetype on은 탐지 만 설정합니다 : ": filetype plugin on"또는 ": filetype plugin indent on"을 시도합니다. – c089

1

빔은 자동으로 올바른 플러그인을로드합니다. 파일을 열고 파일 유형을 수동으로 설정하면 vim이 올바른 플러그인을로드하는지 표시합니다.

3

Perl 파일을 열었더라도 ftplugins이로드되지 않는 동일한 상황이 발생했습니다.

  1. :filetype

    • 검사 파일 형식 플러그인입니다 : (Git for Windows)에서 빔의 내 사본 ftplugin.vim 함께 제공되지 않은 및 ftplugof.vim 다음

      내가 그 실현에 도착하는 방법은 밝혀 정말로 켜졌다.

      :scriptnames

      • 인쇄 전래 스크립트의 목록


      는 소스로 ftplugin\에서 더 스크립트를 찾을 수 없습니다.
    • 나는 그 당시에 그것을 깨닫지 못했지만 나는 그곳에 ftplugin.vim을 보지 못했다는 사실을 알아야했다.

  2. 체크 빔 디렉토리 ({git-path}/share/vim/vim{version}/)를 사용하면 :filetype plugin on:filetype plugin off

는이 문제를 해결하려면 실행할 때 ftplugin.vimftplugof.vim

  • 이 파일이 공급됩니다 경우, 나는에서 빠진 파일들을 움켜 잡았다.그리고 어디로 가야할까요?

관련 문제