ハードドライブの障害を修正した後、Windows10を実行しているThinkpadX230TラップトップにGVIMをインストールしています。*.tex
ファイルのバッファーのレンダリング速度を除いて、問題なく動作しています。問題は次のとおりです。syntax on
を使用すると、ラテックスのバッファのレンダリングが非常に遅くなります。 「機能」のリストは次のとおりです。
<C-f>
を押すと、サイズ1920 * 1080(ピクセル単位)のバッファーを更新するのに数秒かかります。o
を押して下の新しい行を開始するだけでも、1秒の遅延が発生します。これは主に、その1行を追加した後のバッファ全体のレンダリングによるものです。後続のすべての行は、「新しい」位置に更新される必要があります。この投稿で言及されているすべての提案されたオプションを適用しました( https://stackoverflow.com/questions/8300982/vim-slow-running-latex-files )、それでも同じ遅いレンダリングが得られます速度。
X230Tでこの例外的な速度低下が発生しただけです。他の2台のデスクトップマシンでもまったく同じ_vimrc
を使用しているため、レンダリング速度にわずかな遅れは発生しません。また、同じX230TラップトップにWindows7と8を以前にインストールした場合のレンダリングの問題も発生しませんでした。
最後に、ハードドライブの場合、X230TにSSDが搭載されていますが、これはこれまでのところかなりうまく機能しています。そして私は他の2台のデスクトップマシンの両方にHDDを持っています。
どんなアドバイスもとても役に立ちます!
どうもありがとう!
ではごきげんよう、
-リンフェン
問題は、vimの正規表現エンジンが非常に遅いことです。ラテックスは正規表現に対してかなり要求が厳しいと思います。
次のようにすることで、vimを少し速く取得できました。
:syn clear texSectionFold
:syn clear texPreamble
これらは、主な問題のある構文グループの正規表現でした。
私は次のようにしてそれらを見つけました:
:syntime on
ctrl+L
を何回も押して、vimが追いつくのを待ちます。次に:
:syntime report
これにより、次の出力が得られました。
TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN
8.903872 1911 52 0.017387 0.004659 texSectionFold \v%(%(\\begin\{document\}.*$\n)@<=^|\\section)
4.979438 1859 0 0.016382 0.002679 texPreamble \v%(\\documentclass)@=
0.634906 1976 182 0.010863 0.000321 texEnvName \v%(\\%(begin|end)\{)@<=\a+\*?\ze\}
0.373173 1859 0 0.000880 0.000201 texArgsEnvNormReq \v(\\begin\{%(theorem|lemma|proposition|corollary|conjecture|definition|remark|example|proof)\*?\}\s*)@<=\{
0.317732 1859 0 0.000468 0.000171 texArgsEnvNormOpt \v(\\begin\{%(theorem|lemma|proposition|corollary|conjecture|definition|remark|example|proof)\*?\}\s*)@<=\[
0.223595 1859 0 0.000341 0.000120 texDimen \v-?%(\.[0-9]+|([0-9]+(\.[0-9]+)?))%(pt|pc|bp|in|cm|mm|dd|cc|sp|ex|em)>
...
したがって、これら2つの正規表現は他の正規表現よりもはるかに高価であることがわかります。私は折り目を使用しないので、それを無効にすることに問題はありませんでした。前文を見つけるのがとても遅い理由がわかりません。
おそらくこれはあなたにも役立つでしょう、@ llinfeng。そうだといい!
編集:
Vimの起動時にこれらのsyn clear
コマンドを実行するには、それらを~/.vim/after/syntax/tex.vim
に配置する必要があります。構文定義はその時点ではまだロードされていないため、ftplugin
ファイルでは機能しません。
EDIT2:
上に投稿した構文グループのいくつかはプラグインからのものであることがわかりました。プラグインを無効にしても、他の構文グループの速度が遅いため、役に立ちません。イーシュ!
私の最終的な修正、および構文のハイライトから尋ねるのは、次のとおりです。
$ cat ~/.vim/after/syntax/tex.vim
syn clear
syn match texComment "%.*$"
hi def link texComment Comment
本当に速いです。
@Eddが示唆しているように、:syntime on
とsyntime report
を使用して、最も時間のかかる構文を特定します。「group/region/match」を強調表示します。
次のURLにあるように、Vimディストリビューションのafter
ディレクトリ(私の場合はtex.vim
)にc:\vim\vimfiles\after\syntax\
をロードしました。
https://github.com/llinfeng/Vim/blob/X230T/vimfiles/after/syntax/tex.vim
同じLaTeXファイルを使用すると、パフォーマンスが向上します。
tex.vim
として検出されるネイティブのc:\vim\vim80\syntax\tex.vim
と比較すると、構文の色付けは理想的ではありません。
ファイルを開くときにvim -u NONE filename.tex
を使用して、.vimrc
およびその他のスクリプトがセッションにロードされないようにしました。これにより、問題が修正されました。
結論は、.vimrc
ファイルによって開始された何かが速度低下を引き起こすということです。
ファイルの一部を選択的に削除して、正確に原因を突き止めてください。バックアップを取ることを忘れないでください。