3

我最近将sessionman插件添加到我的 Vim 配置中,到目前为止我很喜欢它。

我知道v:this_session在使用会话时 Vim 设置为会话文件名,我想将它添加到我的状态行。不幸的是,v:this_session它包含完整的文件路径,而且它通常太长而无法放入状态行。

所以我的问题是:如何在没有完整路径的情况下提取文件名并将其v:this_session添加到我的状态行?

4

2 回答 2

4

为此,Vim对文件的最后一个组件具有:help filename-modifiers类似功能。:t您可以将它们与fnamemodify()函数一起使用(或者expand()如果您想修改内置的 Vim 文件标识符,如%):

:echo fnamemodify(v:this_session, ':t')
于 2012-07-07T13:13:25.020 回答
1

由于正斜杠字符在所有操作系统的 Vim 中都用作路径分隔符,因此要从完整路径中获取文件名,提取路径的最后一个部分就足够了。为此,可以使用 matchstr()orsubstitute()函数:

substitute(t, '^.*/', '', '')

或者

matchstr(t, '[^/]*$')
于 2012-07-07T11:21:36.983 回答