1

私は常に cpp ファイル (*.cc) をtclファイルとして認識するシステム (Linux) を使用しています。ファイルの種類はわかりませんが、上書きしたかったのです。手動で行うと、正しい構文の強調表示が選択されます:set ft=cppmodelineただし、それを自動的に設定するのに問題があり、オプションを使用したくありません。私自身.vimrcは干渉しません(名前を変更しても同じ結果になります)。

vim ヘルプから ( :help ftplugin-override)

                                                        *ftplugin-overrule*
If a global filetype plugin does not do exactly what you want, there are three
ways to change this:

1. Add a few settings.
   You must create a new filetype plugin in a directory early in
   'runtimepath'.  For Unix, for example you could use this file: 
        vim ~/.vim/ftplugin/fortran.vim
  You can set those settings and mappings that you would like to add.  Note
   that the global plugin will be loaded after this, it may overrule the 
   settings that you do here.  If this is the case, you need to use one of the 
   following two methods.

以前に別のマシンでこのオプションを使用したことがあり、それは機能しました。私はもう試した

<file> .vim/ftplugin/tcl.vim
set filetype=cpp
"au BufRead,BufNewFile *     set filetype=cpp

filetype最初の行は( return cpp ) を正しく設定してい:set ft?ますが、構文の強調表示は私が言ったのと同じではありません。それはまだ構文の強調表示です。2 行目は何もしません。:set ft=cpptcl

2. Make a copy of the plugin and change it. 
   You must put the copy in a directory early in 'runtimepath'.  For Unix, for 
   example, you could do this: 
        cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim
  Then you can edit the copied file to your liking.  Since the b:did_ftplugin
   variable will be set, the global plugin will not be loaded.
   A disadvantage of this method is that when the distributed plugin gets
   improved, you will have to copy and modify it again.

$VIMRUNTIMEディレクトリに/usr/share/vim/vim72/ftplugin/というファイルがないようですtcl.vim

3. Overrule the settings after loading the global plugin.
   You must create a new filetype plugin in a directory from the end of
   'runtimepath'.  For Unix, for example, you could use this file: 
        vim ~/.vim/after/ftplugin/fortran.vim
  In this file you can change just those settings that you want to change.

1と同じ効果があります。他に試せることはありますか?よろしくお願いします。

4

1 に答える 1

3

cpp *.ccおよびファイルデフォルトのファイルタイプ*.cppです。

ファイルタイプは、、、、およびに対してtclのみ設定されます。*.tcl*.tk*.itcl*.itk*.jacl

tclファイルをロードするときにVim がデフォルトになる理由はわかりませんが、これらの*.ccファイルがインストールされているかどうかを確認できます。

/usr/share/vim/vim7x/ftplugin/cpp.vim
/usr/share/vim/vim7x/indent/cpp.vim
/usr/share/vim/vim7x/syntax/cpp.vim

そして、正しいチェックが次の場所で行われた場合:

/usr/shhare/vim/vim7x/filetype.vim

このマシンで作業しているのはあなただけですか? モードラインを使用していますか?

于 2012-08-30T13:11:52.653 に答える