Vim:ファイルディレクトリに基づいてコマンドを実行する

Vim:ファイルディレクトリに基づいてコマンドを実行する

私の場合、init.vim現在のファイルが特定の階層の下にある場合にのみ特定のコマンドを実行したいと思います。擬似コード:

if current_file_directory == ~/some/path/here
  autocmd <whatever>
  set <whatever>
endif

しかし、if私が見つけたすべての例は、推論するにはあまりにも基本的でした。

明確にすると、neovimが呼び出されたディレクトリを返すので適用されませ:pwdん。getcwd()ファイルがあるディレクトリが重要です。上記のコードに従って/tmpファイルを編集する場合は、~/some/path/here/more/deep/still.txtコマンドを実行する必要があります。いいえ~/some/path/hereファイルを編集する場合/tmp/example.txt

ベストアンサー1

に基づいて@muruの返信追加テストを行った後、最終コードは次のようになります。

if expand('%:h') =~ 'some/path/here'
  autocmd <whatever>
  set <whatever>
endif
  • expand('%:h')ホームディレクトリなしでファイルへのディレクトリパスを提供します。
  • =~部分一致に必要です。

おすすめ記事