:help statusline
声明 %f
将渲染成:
文件在缓冲区中的路径,可以是以当前目录为基础的相对路径或者直接输入的路径。
当我执行set statusline=%f
时,状态栏中的路径有时是相对路径,但经常是绝对路径。
是否有办法确保显示的路径始终是相对路径?
:help statusline
声明 %f
将渲染成:
文件在缓冲区中的路径,可以是以当前目录为基础的相对路径或者直接输入的路径。
当我执行set statusline=%f
时,状态栏中的路径有时是相对路径,但经常是绝对路径。
是否有办法确保显示的路径始终是相对路径?
可能有更好的方法,但您可以尝试这个:
set stl+=%{expand('%:~:.')}
应该评估并将% {}
中的表达式添加到您的状态行中。 这里的表达式是:
expand('%:~:.')
...它会展开当前文件的名称,但防止波浪线 (:~
) 的扩展,并使路径相对于当前工作目录 (:.
)。
在解释%f
的下方,您将找到F
的解释。使用%F
而不是%f
将为您提供所需的显示。
item meaning ~
f S Path to the file in the buffer, as typed or relative to current
directory.
F S Full path to the file in the buffer.
你可以在 shell 中输入 :!echo %
来查看路径
:pwd
显示 vim 的当前工作目录
:.')!=#''?expand('%::.'):'[无\ 名称]'}。 - user9429402