web-dev-qa-db-ja.com

Vim:ファイルに:syntax sync fromstartのモードラインを追加することは可能ですか?

私はコンパイラを文書化するために非常に長いページを書いています、そして私はdoxygenの強調表示が固執するならそれは素晴らしいだろうと思っていました。ファイルをさらに下に検索する場合にのみ、その1つのコメントの行数が非常に多いため(現在は1066)、トラックが失われます。

次のコマンドを使用して、ファイルの先頭から同期するようにシステムに指示できることがわかりました。

:syntax sync fromstart

これはうまくいきます。ファイルを開くたびに同じように機能するように、モードライン情報にそれを含める(または行数を定義する)ことができるかどうか疑問に思っていました。

ミニラインにも気づきましたが、これも構文に固有のものであり、次のように書くことができるようには見えません。

vim: minlines=10000

これはエラーと見なされます。

3
Alexis Wilke

あなたが探しているのは、VimscriptでautocmdイベントのBufEnterとして知られているものだと思います。 .vimrcに次の行を追加すると、開いたファイルごとに目的のコマンドが実行されます。

autocmd BufEnter * :syntax sync fromstart

特定のファイル拡張子のみで開きたい場合は、上記の*を、*.atなどのファイル名のより具体的なパターンに置き換えてください。それでもハイライトが失われる場合は、 挿入モードに入る などの他のイベントで自動コマンドをトリガーすることもできます。

これらの自動コマンドとイベントのペアでできることはたくさんあります。それらについてもう少し詳しく知りたい場合は、この オンラインガイド のいくつかの段落を読むこともお勧めします。わかりやすくするために、またはあなたの後に来る人のために、このガイドからの素晴らしい視覚的な速記があります:

:autocmd BufNewFile * :write
         ^          ^ ^
         |          | |
         |          | The command to run.
         |          |
         |          A "pattern" to filter the event.
         |
         The "event" to watch for.

上記は、コマンドラインからvim newfileのようなコマンドを入力するたびにファイルを自動的に保存する自動コマンドの例です。

1
J.M. Janzen