例如,在目录/abc 中,命令 vim def/my.txt 将编辑文件/abc/def/my.txt。 我想在我的 vim 插件脚本中获取路径/abc,但我不知道哪个函数可以做到这一点。
我已阅读相关文章,例如
(如果您想访问,请在以下项目中添加http://,我没有足够的声誉来发布超过2个链接o(╯□╰)o):
- learnvimscriptthehardway.stevelosh.com/chapters/40.html
- vim.wikia.com/wiki/Get_the_name_of_the_current_file
- How to get path to the current vimscript being executed
但是没用。
谢谢。
================================
我注意到http://vim.wikia.com/wiki/Get_the_name_of_the_current_file ,它说:
:echo @% def/my.txt
我以为我找到了希望。
因为我可以通过从完整路径中减去 def/my.txt 来获取/abc。
但是我在我的vim环境中测试了上面的命令,它不起作用。它只是打印 my.txt。
最佳答案
我认为您正在寻找 :pwd
命令/getcwd()
函数。
当您从 /abc
编辑 def/my.txt
时,后者是您的当前目录,所有文件都相对于它进行寻址。 (除非你有类似 :set autochdir
的东西。)
对于处理文件路径,fnamemodify()
函数也非常有帮助;例如将文件规范转换为绝对规范(:p
参数),或截断头部、尾部或文件扩展名。
关于filepath - 如何获取在vimscript中执行的vim路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158848/