4

filetype plugin追加したいくつかのrailsvimプラグインをオンにしましたが、これの副作用として、すべてのファイルタイプで自動コメントが有効になっているようです(たとえば、#次の行Enterを挿入モードまたはO、などを挿入モードに入ると、)も取得されます#

自動コメントを無効にするためのガイドを見つけformatoptions、.vimrcに以下を追加しました。

au FileType * setlocal formatoptions-=cro

しかし、私はまだ問題に直面しています-明示的:source .vimrcに(またはsetlocal ...直接入力しない限り)、それは有効になりません。私は、vimのftpluginsが私のオプションを独自のものでオーバーライドしているため、これが当てはまると判断しました。

次に、ftpluginスクリプトの実行後に変更を加えるためのafter ftpluginスクリプトの使用について説明している2番目のガイドを見つけましたが、その解決策は、〜/ .vim / after/ftplugin内のすべてのファイルタイプのシンボリックリンクを中央ファイルに作成することです。これは私には厄介なようです。

一般的なafter-ftpluginスクリプトを作成する方法はありますか、それともこの問題に誤って取り組んでいますか?どんな助けでもいただければ幸いです。

4

6 に答える 6

5

「アフター」プラグインはどうですか?~/.vim/after/plugin/と呼ばれる(または何でも)でファイルを作成し、noAutoComments.vimその中にautocmdを配置しますか?

編集:

これが機能する理由は?autocmdここで推測しているだけですが、ファイル内のが他のファイルによって削除されているように感じ~/.vimrcます(ただし、「後」のファイルがソースされる前に)。

最終的にディレクトリを削除し、次の3行に~/.vim置き換えました。~/.vimrc

filetype plugin on
syntax on
au FileType * setlocal formatoptions-=cro

~/.vimrc私の~/.vim/ディレクトリにはこれらの行だけがあり、ディレクトリはないので、autocmdは期待どおりに機能しているようです(Vim7.1)。

私が編集するファイルの場合:

:verbose set formatoptions?
formatoptions=ql
      Last set from ~/.vimrc

ただし、この問題の原因となっているファイル(プラグイン)はまだ特定できていません。

于 2010-07-14T18:49:19.737 に答える
4

さらに調査を行ったところautocmd、.vimrcファイル内の自分の場所formatoptionsによって、vimのftpluginsがオーバーライドされるかどうかが決まるようです。すべての外部プラグインを無効にするために使用vim --nopluginすると、次の結果が見つかりました。

私のvimrcが次のようになっている場合:

au FileType * setl fo-=cro
filetype plugin indent on

結果:verbose set fo?は次のとおりです。

formatoptions=croql
  Last set from /usr/share/vim/vim72/ftplugin/ruby.vim

ただし、vimrcの行が逆になっている場合:

filetype plugin indent on
au FileType * setl fo-=cro

結果:verbose set fo?は次のとおりです。

formatoptions=ql
  Last set from ~/.vimrc

...これは望ましい結果です。したがって、autocmdファイルタイププラグインを有効にした後で、を指定する必要があるようです。

于 2010-07-15T15:11:41.767 に答える
3

これが有効になっていない可能性があるもう1つの理由...

差出人:he :set-=

            オプションがフラグのリストである場合、{value}は
            オプションに表示されているとおりです。フラグを削除します
            問題を回避するために1つずつ。

私は持っています

    「自動コメントをオフにする
    au FileType * setlocal formatoptions- = c
    au FileType * setlocal formatoptions- = r
    au FileType * setlocal formatoptions- = o

私はこれに遭遇したので。

于 2011-12-09T14:17:07.503 に答える
1

さまざまなautocmdイベントの1つを使用して構成オプションを設定すると、適切なイベントが見つかった場合に機能するはずですが、まずは次のコマンドを実行します。

:verbose set formatoptions?

これにより、オプションが設定された場所がわかり、使用するautocmdを簡単に決定できる場合があります。または、ちょっとしたハッキン​​グを気にしないのであれば、プラグインのどこに設定されているかを調べて、その行をコメントアウトするだけです(アップグレードする場合に備えてメモしてください)。プラグイン)。プラグインの作成者に連絡して、構成可能なオプションにするように依頼することもできます。

利用可能なautocmdイベントについては、以下をお読みください。

:help {event}
于 2010-07-14T12:43:27.480 に答える
1

私は多くの人から提案された解決策を試しましたが、どれもうまくいきませんでしたが、非常に簡単な回避策が1つ見つかりました。つまり、〜/.bash_aliasesにあります。

    # vim without auto comment
    alias vi="vi +'set fo-=cro'"
于 2013-02-07T19:06:34.393 に答える
1

私はこの問題に苦労していましたが、最終的に次の行で作業します。

syntax on
filetype on
filetype plugin on
au FileType * setlocal formatoptions-=cro

autocmdここで重要なのは、の後にあるということだと思います filetype plugin on

于 2013-08-07T12:44:32.223 に答える