문제

VIM 용 "Matchit"플러그인은 % HTML을 편집 할 때 일치 시작/끝 태그 사이를 점프하는 키뿐만 아니라 /* 그리고 */ 다른 종류의 코드를 편집 할 때 구분 기호를 주석하십시오.

나는 "정확한 지침을 따랐다":help matchit", 하지만 % 여전히 나를 위해 작동하지 않습니다.

"왜이 일이 작동하지 않습니까?" 그래서 대신 나는 묻습니다 문제를 어떻게 진단 할 수 있습니까? 참고 문헌에 대한 포인터는 환영하지만 특정 vim-plugin-debugging 기술이 바람직합니다.

다음은 ~/.vim 디렉토리입니다.

$ ls -ltaGR ~/.vim
/cygdrive/y/.vim:
total 0
drwxr-xr-x 1 spause 0 Sep 17 13:20 ..
drwxr-xr-x 1 spause 0 Sep 16 13:59 doc
drwxr-xr-x 1 spause 0 Sep 16 13:58 .
drwxr-xr-x 1 spause 0 Sep 16 13:58 plugin

/cygdrive/y/.vim/doc:
total 24
-rw-r--r-- 1 spause  1961 Sep 16 13:59 tags
drwxr-xr-x 1 spause     0 Sep 16 13:59 .
-rw-r--r-- 1 spause 19303 Sep 16 13:58 matchit.txt
drwxr-xr-x 1 spause     0 Sep 16 13:58 ..

/cygdrive/y/.vim/plugin:
total 32
drwxr-xr-x 1 spause     0 Sep 16 13:58 ..
-rw-r--r-- 1 spause 30714 Sep 16 13:58 matchit.vim
drwxr-xr-x 1 spause     0 Sep 16 13:58 .

Cygwin (2008 년 가을 설치)에서 VIM 7.2를 운영하고 있습니다. cygcheck 쇼 :

1829k 2008/06/12 C:\cygwin\bin\cygwin1.dll
Cygwin DLL version info:
    DLL version: 1.5.25
    DLL epoch: 19
    DLL bad signal mask: 19005
    DLL old termios: 5
    DLL malloc env: 28
    API major: 0
    API minor: 156
    Shared data: 4
    DLL identifier: cygwin1
    Mount registry: 2
    Cygnus registry name: Cygnus Solutions
    Cygwin registry name: Cygwin
    Program options name: Program Options
    Cygwin mount registry name: mounts v2
    Cygdrive flags: cygdrive flags
    Cygdrive prefix: cygdrive prefix
    Cygdrive default prefix:
    Build date: Thu Jun 12 19:34:46 CEST 2008
    CVS tag: cr-0x5f1
    Shared id: cygwin1S4

vim에서 :set 쇼 :

--- Options ---
  autoindent          fileformat=dos      shiftwidth=3
  background=dark     filetype=html       syntax=html
  cedit=^F            scroll=24           tabstop=3
  expandtab           shelltemp           textmode
  viminfo='20,<50,s10,h

특히, 구문 및 필더 타입은 모두 HTML로 인식됩니다. (구문 색칠은 괜찮습니다.)

추가 정보가 필요한 경우 의견을 제시하십시오.

업데이트:

답에 따라 너무 많은 PHP:

시도한 후 vim -V1, 나는 나의 것을 바꿨다 .vimrc 라인을 포함합니다

set nocp

그래서 compatible 옵션이 켜져 있지 않습니다.

:let loadad_matchit

loaded_matchit        #1

:set runtimepath?

runtimepath=~/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/after,~/.vim/after

(~ ~이다 /cygdrive/y)

답에 따라 남자 이름:

:scriptnames

  1: /cygdrive/y/.vimrc
  2: /usr/share/vim/vim72/syntax/syntax.vim
  3: /usr/share/vim/vim72/syntax/synload.vim
  4: /usr/share/vim/vim72/syntax/syncolor.vim
  5: /usr/share/vim/vim72/filetype.vim
  6: /usr/share/vim/vim72/colors/evening.vim
  7: /cygdrive/y/.vim/plugin/matchit.vim
  8: /cygdrive/y/.vim/plugin/python_match.vim
  9: /usr/share/vim/vim72/plugin/getscriptPlugin.vim
 10: /usr/share/vim/vim72/plugin/gzip.vim
 11: /usr/share/vim/vim72/plugin/matchparen.vim
 12: /usr/share/vim/vim72/plugin/netrwPlugin.vim
 13: /usr/share/vim/vim72/plugin/rrhelper.vim
 14: /usr/share/vim/vim72/plugin/spellfile.vim
 15: /usr/share/vim/vim72/plugin/tarPlugin.vim
 16: /usr/share/vim/vim72/plugin/tohtml.vim
 17: /usr/share/vim/vim72/plugin/vimballPlugin.vim
 18: /usr/share/vim/vim72/plugin/zipPlugin.vim
 19: /usr/share/vim/vim72/syntax/html.vim
 20: /usr/share/vim/vim72/syntax/javascript.vim
 21: /usr/share/vim/vim72/syntax/vb.vim
 22: /usr/share/vim/vim72/syntax/css.vim

matchit.vim, html.vim, tohtml.vim, css.vim 및 javascript.vim이 모두 존재합니다.

:echo b:match_words

E121: Undefined variable: b:match_words
E15: Invalid expression: b:match_words

HM, 이것은 매우 관련성이 있습니다. 나는 지금보고있다 :help matchit-debug 수정 방법을 찾기 위해 b:match_words.

도움이 되었습니까?

해결책

감사합니다 이 게시물 ~로부터 vim_use 메일 링리스트, 나는 일련의 명령을 발견했다.

vim -u NONE somefile.html

(이것은 .VIMRC를 읽지 않고 VIM을 시작합니다)

그 다음에,

:set nocp
:source /usr/share/vim/vim72/macros/matchit.vim
:filetype plugin on
:filetype detect
:syntax on

이상적이지는 않지만 .vimrc에서 작동하지 않는 것 같습니다. 그리고 그것은 작동하지 않습니다 syntax on Filetype 감지보다 우선하므로 구문 강조 표시와 일치하는 물건 사이의 상호 작용에 충돌이 있다고 생각합니다.

다른 팁

다음 명령을 사용하여 플러그인이로드되었는지 확인하십시오.

:let loaded_matchit

정의되지 않은 변수 오류가 발생하면 플러그인이로드되지 않았습니다. '/cygdrive/y/.vim'이 'runtimepath'옵션에 있는지 확인해야합니다 (사용 '.:set runtimepath?')

또한 '호환 가능한'옵션이 켜져 있으면 일치하는 플러그인이로드되지 않습니다.

당신은 읽고 싶을 수도 있습니다 :he matchit . 구성 섹션이 도움이 될 수 있습니다.

:he matchit-debug - 일치하는 정보 디버깅 정보

:he debug -General VIM 디버깅 (모든 종류의 중단 점/스텝을 통해 작업을 수행 할 수 있음)

템플릿 플러그인을 사용하는 경우 일반적인 gotcha (케이스가 아님)는 html filetype을 닉하게 할 수 있다는 것입니다. (예 : 내 html은 html.djangotemplate로 바뀌 었습니다. :set ft? 필더 타입을 찾으려면. 복사해야 할 수도 있습니다 b:match_words 템플릿 필터 타입의 ftplugin으로.

:echo b:match_words - HTML Looking Regex의 목록을 제공해야합니다.

또한 명백한 경우 :scriptnames 어딘가에 매치를 표시해야합니다

행운을 빕니다

나는 Vim에 대한 단서가 없지만 (그것을 많이 사용하는 것 외에도) .vimrc에 followng 두 줄을 넣는 것이 많은 도움이된다는 것을 알았습니다.

:source /usr/share/vim/addons/plugin/matchit.vim
:source /usr/share/vim/vim72/ftplugin/html.vim

나는 적절한 방법이 있다고 확신하지만 적어도 이것은 나를 위해 효과가있었습니다.

건배,

조그

~/.vim/ftdetect 및 ~/.vim/ftplugin과 같은 ~/vim에서 다른 쓰레기를 대부분 제거하여 .vimrc에서 위의 명령을 얻었습니다. 깨끗한 ~/.vim으로 시작하여 $ vimruntime에 새로운 버전이있을 수있는 것을 피하면서 당신에게 특정한 내용 만 복사하면 작동해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top