Vim autocmd模式,仅匹配特定目录中的文件(不在子目录中)

Sea*_*sey 2 vim

我正在尝试匹配所有和仅直接在我的桌面上的文件.但是autocmd模式*/Desktop/*还匹配桌面的任何子目录中的文件.什么样的模式可以做我需要的?

per*_*eal 6

一种方法是使用合适的正则表达式,但是如果你/在文件名中有s,那么这个可能会失败,但你可以改进它:

au BufRead * if expand('<amatch>') =~ "/Desktop/[^/]*$" | set tw=90 | endif
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用两个命令,一个恢复另一个:

  au BufRead */Desktop/*  set tw=90
  au BufRead */Desktop/*/*  set tw=31
Run Code Online (Sandbox Code Playgroud)