すべてのファイルタイプのための自動存在を無効にする

StackOverflow https://stackoverflow.com/questions/3240451

  •  15-09-2020
  •  | 
  •  

質問

Lails Vimプラグインが追加されましたが、これの副作用は、AutoOmmentingがすべてのファイルタイプで有効になっていると思われます(たとえば、filetype pluginと共に行を開始する場合は、次の行です。挿入モードに挿入モードまたは o などのと入力されるなど、#も取得されます。

私はガイド自動を無効にする#にコメントし、次のものを追加しました.vimrc:

au FileType * setlocal formatoptions-=cro
.

しかし、私はまだ問題に遭遇しています - 私が明示的にformatoptionsを指定しない限り(または:source .vimrcを直接入力してください)、それは有効ではありません。私は、VimのFtpluginsが自分のオプションを自分のオプションを上書きしているため、これが当てはまると判断しました。

私は次に 2番目のガイドを変更して変更を加えた後のftpluginスクリプトの使用についてFTPLUGINスクリプトが実行された後、それらの解決策は、中央ファイルへの〜/ .vim / ftpluginの単一のファイルタイプごとにシンボリックリンクを作成することです。これは私にkludgyのようです。

汎用後のFtpluginスクリプトを作成する方法はありますか、またはこの問題に誤って近づいていますか?あらゆる助けが高くなるでしょう。

役に立ちましたか?

解決

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

編集:

これが機能する理由?私はここで推測していますが、autocmdファイルの~/.vimrcが他のファイルによって削除されているような気分があります(ただし、ファイルが入ってきた前に)。

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

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

私の~/.vimrc~/.vim/ディレクトリの場合のみ、autocmdは予想通り動作しているようです(Vim 7.1)。

編集したファイルの場合:

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

私はまだどのファイル(プラグイン)がこの問題を引き起こしているかを決定していません。

他のヒント

私はもう少し調査をしました、そして、私の.vimrcファイル内の私のautocmdの場所は、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
.

...は望ましい結果です。そのため、FileTypeプラグインが有効になった後にautocmdを指定する必要があるようです。

もう一つの理由これは有効ではないかもしれません...

:he :set-=

GeneralAcodicetagpre

私は

を持っています
            When the option is a list of flags, {value} must be
            exactly as they appear in the option.  Remove flags
            one by one to avoid problems.
.

私はこれに遭遇したので

様々なautocmdイベントの1つを使用して設定オプションを設定すると、正しいものが見つかった場合は機能する必要がありますが、実行して実行します。

:verbose set formatoptions?
.

オプションが設定されている場所が表示されます。これにより、どのAutoCMDを使用するかを簡単に判断できます。あるいは、少しマイナーなハッキングを気にしないのであれば、それがプラグインに設定されている場所を見つけて、その行をコメントアウトしているのです(そしてあなたが今までにアップグレードする場合にはそれを作る)。プラグイン)。プラグインの作成者に連絡して、設定可能なオプションを作成するように依頼することもできます。

利用可能なautocmdイベントについては、これを読んでください。

:help {event}
.

私は多くの人によって提案された解決策を試みましたが、それらのどれも私のために働いていませんでしたが、私はあなたの〜/ .bash_aliases:

で1つの非常に単純な回避策を見つけました。
    # vim without auto comment
    alias vi="vi +'set fo-=cro'"
.

私はこの問題に苦しんでいて、ついに次の行で動作します。

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

ここでのキーは、autocmdfiletype plugin onの後に配置されていると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top