我最近将sessionman插件添加到我的 Vim 配置中,到目前为止我很喜欢它。
我知道v:this_session
在使用会话时 Vim 设置为会话文件名,我想将它添加到我的状态行。不幸的是,v:this_session
它包含完整的文件路径,而且它通常太长而无法放入状态行。
所以我的问题是:如何在没有完整路径的情况下提取文件名并将其v:this_session
添加到我的状态行?
我最近将sessionman插件添加到我的 Vim 配置中,到目前为止我很喜欢它。
我知道v:this_session
在使用会话时 Vim 设置为会话文件名,我想将它添加到我的状态行。不幸的是,v:this_session
它包含完整的文件路径,而且它通常太长而无法放入状态行。
所以我的问题是:如何在没有完整路径的情况下提取文件名并将其v:this_session
添加到我的状态行?
为此,Vim对文件的最后一个组件具有:help filename-modifiers
类似功能。:t
您可以将它们与fnamemodify()
函数一起使用(或者expand()
如果您想修改内置的 Vim 文件标识符,如%
):
:echo fnamemodify(v:this_session, ':t')
由于正斜杠字符在所有操作系统的 Vim 中都用作路径分隔符,因此要从完整路径中获取文件名,提取路径的最后一个部分就足够了。为此,可以使用
matchstr()
orsubstitute()
函数:
substitute(t, '^.*/', '', '')
或者
matchstr(t, '[^/]*$')