Хотя expand('%')
часто работает, в редких случаях это не так.Но вы можете заставить Vim всегда указывать относительный путь, вызывая fnamemodify
:
:echo fnamemodify(expand("%"), ":~:.")
Из руководства:
:. Reduce file name to be relative to current directory, if
possible. File name is unmodified if it is not below the
current directory.
For maximum shortness, use ":~:.".
:~
необязательно.Это уменьшит путь относительно вашей домашней папки, если это возможно (~/...
).(К сожалению, это работает только на вашем доме; оно не превратится /home/fred
в ~fred
, если вы не вошли как fred
.)
Если вы ограниченыдля пространства и может управлять «нечеткой» информацией о том, где находится файл, а затем проверить pathshorten()
, который сжимает имена папок до одного символа:
:echo pathshorten('~/.vim/autoload/myfile.vim')
~/.v/a/myfile.vim
Ссылка: :h fnamem<Tab>
и :h pathsh<Tab>