10

ファイル名がこれかそれかをチェックするautocmdをいくつか書きたい..

私は試してきました:

autocmd VimEnter * if % is "preamble" | Explore | endif
autocmd VimEnter * if %=="preamble" | Explore | endif
autocmd VimEnter * if &filename == "preamble" | Explore | endif

しかし、これはどれも機能しませんか?

私は何をすべきか?

(この例は単純化しすぎています。else ステートメントも必要であることに注意してください)。

4

4 に答える 4

13

として現在のファイル名を取得する必要があります@%。たとえばecho @%、ファイル名を提供しますが、提供しecho %ません。ただし、ファイルに対するアクションについては、 を使用し%ますsource %

これはおそらくあなたがやりたいことでうまくいくはずです:

autocmd VimEnter * if @% == 'preamble' | echo 'hello' | else | echo 'world' | endif
于 2011-05-15T17:29:39.787 に答える
2

autocmd で「@%」を使用する追加情報

一部のautocmdイベントは、現在のファイル名を読み取るための名前付きレジスタをサポートしていません。このような場合は、<afile>を使用することをお勧めします:@%

expand('<afile>')
于 2016-01-21T11:39:20.553 に答える