web-dev-qa-db-ja.com

単一のファイルで失われたVim構文の強調表示

1つのファイルで奇妙なことが起こっています。元の名前でファイルを開くと、強調表示が失われます( ":syntax on"は何もしません)。しかし、そのファイルを別の名前でcpして開くと、構文の強調表示が返されます。そのコピーを元のファイル名に戻すと、強調表示は再び消えます。

画像を表示することはできませんが(担当者の高さが十分でないため)、可能であれば、ファイルa.jsには強調表示がないのに対し、a_copy.jsには強調表示がないことがはっきりとわかります。

6
seyDoggy

あなたはあなたの環境と構成についてほとんど情報を提供しないので、私はあなたがあなた自身を助けるのを手伝うことができます。

2つの異なるJavaScriptファイルについて次のオプションを比較します。

:verbose setlocal syntax? filetype?

次に、:autocmdのリストで、問題のあるJavaScriptファイルをターゲットにする可能性のあるパターンを確認します。 ローカルvimrcプラグインを使用していますか?これにも影響するかもしれません。

それでも手がかりが得られない場合は、コマンドのシーケンスを次のようにキャプチャします。

:set verbose=20 | edit a.js

'syntax'に影響するコマンドに注意してください。

6
Ingo Karkat

保存されているビューを削除してみてください(つまり、mkviewから)。ログアウト/シャットダウン時にすべてのvimをきれいに終了しなかった場合、この問題が発生することがよくあります。あなたがのようなものを設定した場合

au BufWinLeave ?* mkview

多くの場合と同じように、.vimrcにもこれらのビューが自動的に表示されます。受け入れられた回答に記載されているように、このファイルがどこにあるかは、次を使用して見つけることができます。

:verbose setlocal syntax? filetype?

2
labyrinth

syntax on.vimrcがあることとは別に、この特定のファイル用に.vim/viewディレクトリに保存されているビューを削除する必要がある場合もあります。

$ cd ~/.vim/view

# list all files looking for your particular file
$ ls -lt # | head -10 
...

# delete that file
$ rm ...

view/フォルダー内のファイルは、ファイルシステム上でフルパスを持ち、/=+に置き換えられることに注意してください。

1
dvitsios

これは古い質問ですが、これは何度か私に起こったので、私は自分の解決策を共有したほうがよいと思いました。

提案されたように、私はオリジナルとコピー(色付き)を次のように比較しました:

:verbose setlocal syntax? filetype?

元の

  syntax=
        Last set from /usr/share/vim/vim80/syntax/syntax.vim
  filetype=
        Last set from ~/.vim/view/~=+Thesis=+thesis.tex=

コピー

  syntax=tex
        Last set from /usr/share/vim/vim80/syntax/syntax.vim
  filetype=tex
        Last set from /usr/share/vim/vim80/autoload/dist/ft.vim`

私にとってこれに対する解決策は:set filetype=tex(または使用しているファイル拡張子。)これが発生する理由を正確に特定することはできませんが、.swpファイルを削除した後に発生するようです。

0
HBW