質問
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-=
:
私は
を持っています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
.
ここでのキーは、autocmd
がfiletype plugin on
の後に配置されていると思います。