我正在使用Mac和MacVim 7.3。
我有一个符号链接〜/ some / symlink,它是一个真实文件的链接〜/ some / actual_file。
当我“vim~ / some / symlink”时,它会在vim中显示文件,其中vim的状态行名称为〜/ some / symlink,这是有道理的。
如何从vim中获取“真实”文件〜/ some / actual_file的完整路径?我希望vim状态行说〜/ some / actual_file而不是〜/ some / symlink。
我期望vim函数resolve()可以工作,给出它的帮助描述(粘贴在下面),但是resolve(“〜/ some / symlink”)返回〜/ some / symlink,所以没有帮助。
我错过了什么?谢谢!
resolve({filename}) *resolve()* *E655*
On MS-Windows, when {filename} is a shortcut (a .lnk file),
returns the path the shortcut points to in a simplified form.
On Unix, repeat resolving symbolic links in all path
components of {filename} and return the simplified result.
To cope with link cycles, resolving of symbolic links is
stopped after 100 iterations.
On other systems, return the simplified {filename}.
答案 0 :(得分:24)
您的问题是“〜”,它实际上不是文件名的一部分,而是您的主目录的简写。您可以使用expand()
,然后使用resolve()
。例如:
:echo resolve(expand("~/some/symlink"))
expand()
还会扩展环境变量等内容(例如:$HOME
,$VIMRUNTIME
)。