1

次の単純な Makefile があるとします。

#Makiefile
ifeq(,)
else
endif

thisによると、バンドルされたプラグインの中にあるこの matchit.vim ファイルを含めるだけで十分です。

残念ながら、私には合いません。当初、他のプラグインが matchit と競合しているのではないかと考えていました。ただし、vim の空のセットアップも機能しません。matchit のドキュメントによると、それらを循環するには b:match_words が必要です。matchit.vim は 1 つのグローバル プラグインであるため、b:match_words は対応するファイル タイプ プラグインで定義されます。標準のランタイム ディレクトリにある vim.vim で検証されます。

何か不足していますか?

PS: 現時点では、これをローカルの make.vim に追加して機能させる必要があります。

#make.vim
let b:match_words='\<ifeq\>:\<else\>:\<endif\>'
4

2 に答える 2

2

Makefile のファイルタイプはmake. 私の最近の$VIMRUNTIME/ftplugin/make.vim(日付付き2006 Jun 17) では、 の定義はありませんb:match_words

したがって、定義を独自の構成に追加する必要があります。できれば~/.vim/after/ftplugin/make.vim.

これが一般的に有用であり、デフォルトで含まれている必要があると思われる場合は、スクリプトのメンテナー (Bram Moolenaar) にパッチを送ることができます。

于 2013-04-19T16:15:11.883 に答える
1

@Ingo Karkat情報をありがとう。Bram Moolenaar にパスを送信しました。うまくいけば、次のリリースで表示されるでしょう。誰かが熱望している場合は、これをあなたの に入れてみてください~/.vim/after/ftplugin/make.vim

" matchit.vim
if exists("loaded_matchit")
  let b:match_words =
    \ '\<if\(n\)\=\(eq\|def\)\>:\<else\>:\<endif\>,' .
    \ '\<define\>:\<endef\>'
endif

PS: vim スクリプトがロードされる順序により、標準の ftplugin の前にロードされるため、標準の ftplugin の上に ftplugin を構築したい場合~/.vim/ftpluginは、カスタマイズされた ftplugin をディレクトリに配置することをお勧めします。~/.vim/after/ftplugin

不足しているコンマを修正してくれた @pevik に感謝します。変更が拒否された理由はわかりませんが、手動で追加しました。

于 2013-04-30T12:38:38.570 に答える