在 my 中init.vim
,我只想在当前文件位于某个层次结构下时才运行某些命令。伪代码:
if current_file_directory == ~/some/path/here\n autocmd <whatever>\n set <whatever>\nendif\n
Run Code Online (Sandbox Code Playgroud)\n但if
我发现的所有例子都太基础了,无法推断。
澄清一下,既不:pwd
也不getcwd()
应用,因为它们返回调用 neovim 时所在的目录。我关心文件所在的目录。按照上面的代码,如果 I\xe2\x80\x99m 在下/tmp
但编辑文件,则命令应触发,~/some/path/here/more/deep/still.txt
但如果 I\xe2\x80\x99m 在下但编辑文件,则不会触发。~/some/path/here
/tmp/example.txt
您可以expand()
在文件名 ( %
)上使用各种修饰符(:p
、:h
等):
:e ~/some/path/here/more/deep/still.txt
:echo expand("%:ph")
/home/muru/some/path/here/more/deep/still.txt
Run Code Online (Sandbox Code Playgroud)
您可以将其与您想要的路径进行比较。