如何在Vim中永久显示当前文件的路径?


90

我知道CTRLg会显示您正在处理的当前文件。有没有办法修改我.vimrc的文件名/路径始终显示?

Answers:


128

在状态行中,添加%F以显示完整路径:

:help statusline

" Add full file path to your existing statusline
set statusline+=%F

注意,%F将是完整路径。要获取相对于工作目录的路径,请使用%f

如果状态行尚不可见,则可能需要先通过以下方式将其配置为始终可见 laststatus=2

set laststatus=2

请参阅:help laststatus选项的含义。通常,状态行可能是隐藏的,也可能是隐藏的,除非打开了多个缓冲区,但是我发现一直这样进行自定义非常有用,值得为此放弃一个屏幕行。


1
我当然更喜欢您的回答,但是加入set statusline+=%F我的回答~/.vimrc似乎并没有满足您的要求。尽管文档肯定与您同意...
蒂姆·波特

1
这没有效果。抱歉,如果我缺少简单的东西,您对此有何想法?
zallarak 2012年

1
@TimPote什么是vim版本?为我工作。也许您的状态行已将其关闭或限制了宽度。试试就:set statusline=%F不用了+
Michael Berkowski 2012年

@zallarak参见我对蒂姆的评论。如果您只是做,您的地位线会改变:set statusline=%F吗?向右或向左看,以查看文件名是否隐藏在状态栏中
Michael Berkowski,2012年

2
@TimPote也许set laststatus=2可以使状态栏始终保持可见状态。我忘记了。
Michael Berkowski 2012年

20

设置ls = 2

在vimrc中添加此文件,您将始终在底部看到文件名。


set modeline对我什么都没做,该怎么办?(虽然设置ls = 2确实做了一些事情)。下次我如何亲自帮助解决此问题?谢谢!:)
查理·帕克

1
set modeline有点危险,与这个问题无关。它允许在文件的5个开始/结束行中执行Vim命令。只有知道原因并真正想要这样做的人才能打开它。(这就是为什么我-1这个答案)
Beco博士2014年

16

我发现了两种用Vim编辑文件时在gnome终端的标题栏中显示文件路径的方法。

更简单(更好)的方法:将以下行添加到您的~/.vimrc

set title

这将在顶部显示您:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

更复杂的方法将向您显示绝对文件路径。它记录了更详细一点在这个博客帖子我最近写了。


“设置标题”将在终端选项卡上显示文件名。有趣的功能。
duleshi 2014年

有趣的是,它无法回答所提出的问题。您还断言这会更好-但事实并非如此。例如,如果您的vim在全屏模式下的终端中打开,则标题不可见。因此投降。
apprenticeDev 2015年

8

我发现获取正在使用的文件的完整路径的唯一方法是::echo expand('%:p')。您可以根据需要重新映射ctrl + g,但我个人不希望过多地偏离标准。我已经像这样映射了F7:

map  <F7> <Esc>:echo expand('%:p')<Return>

4
:help CTRL-G,然后CTRL-G用count 向下看两段。
Stefan Majewsky

1
谢谢,@ StefanMajewsky。1 CTRL-G显示完整的文件名。我正在搜索此选项。
安东·基谢廖夫2013年

我爱你,蒂姆,即使没有,这也是绝对显示绝对道路的唯一方法~
ryancheung

7

如果您正在使用vim-airline,请输入.vimrc

let g:airline_section_c = '%<%F%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#'

这是航空公司默认设置的修改,更改%f%F


6

我一直用过:f,但是@MichaelBerkowski的答案和链接很棒!

:f 显示路径,行数,修改后的状态,当前光标位置等等。

我不知道,CTRLG但似乎差不多。


5

我认为状态栏非常强大且方便。开箱即用的海峡将显示文件名,光标位置和一些标志。但是,您想要像我一样,将文件名 -part 替换为文件完整路径

因此,在编辑我的.vimrc状态栏时,默认情况如下所示:

.vimrc                                                        26,16           7%

您可以使用以下方法查看状态行的设置:

:set statusline?

但是,如果您未进行任何更改且没有模块已更改,则它将为空。但是通过帮助部分(:help statusline)中的示例,您可以发现默认值为:

:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

因此,将其包括在您的内容中.vimrc并更改%f%F。我还添加了文件类型标记(%y)至状态行,因为我觉得很方便。因此,我得到的配置如下所示:

:set statusline=%<%F\ %h%m%r%y%=%-14.(%l,%c%V%)\ %P

结果看起来像这样:

~/.vimrc [vim]                                                26,16           7%

好的阅读:

PS。我运行vim 7.3


4

如果要让路径包含已解析的符号链接,请使用以下命令:

set statusline +=%{resolve(expand('%:p'))}\ %*

要保留主目录的“〜”缩写,请包括 fnamemodify

set statusline +=%{fnamemodify(resolve(expand('%:p')),':~')}\ %*

两者在VIM 7.4中都为我工作,使用iTerm2 SSH到Ubuntu 16.04 LTS
James Nicholson
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.