94

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

4

8 回答 8

134

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

:help statusline

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

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

如果您的状态行不可见,您可能首先需要将其配置为始终可见,通过laststatus=2

set laststatus=2

查看:help laststatus选项的含义。通常,除非打开多个缓冲区,否则状态行可能会被隐藏或隐藏,但我发现一直使用这样的自定义非常有用,非常值得为它放弃一个屏幕行保留。

于 2012-05-07T20:35:16.590 回答
20

设置 ls=2

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

于 2013-11-13T06:32:27.037 回答
17

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

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

set title

这将在顶部显示:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

更复杂的方法会显示绝对文件路径。在我最近写的这篇博文中更详细地记录了它。

于 2012-11-06T05:05:59.013 回答
10

如果您使用的是vim-airline,请输入.vimrc

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

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

于 2015-03-24T02:40:21.743 回答
8

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

map  <F7> <Esc>:echo expand('%:p')<Return>
于 2012-05-07T20:35:34.160 回答
6

我一直使用:f,但来自@MichaelBerkowski 的答案和链接太棒了!

:f显示路径、行数、修改状态、当前光标位置等...

我不知道,CTRLG但它似乎大致相同。

于 2012-11-17T08:42:47.087 回答
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

于 2014-02-14T10:07:38.647 回答
4

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

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

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

set statusline +=%{fnamemodify(resolve(expand('%:p')),':~')}\ %*
于 2017-02-13T00:27:49.370 回答