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

时间:2012-05-07 20:33:21

标签: vim vi

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

8 个答案:

答案 0 :(得分:124)

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

:help statusline

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

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

如果您的状态行尚未显示,您可能需要首先将其配置为始终可见,laststatus=2

set laststatus=2

请参阅:help laststatus了解选项的含义。通常情况下,状态行可能是隐藏的,或者是隐藏的,除非打开多个缓冲区,但我觉得一直使用这样的自定义设置非常有用,非常值得为它放弃一个屏幕行保留。

答案 1 :(得分:18)

设置ls = 2

在vimrc中添加, 你会在底部看到文件名。

答案 2 :(得分:15)

我在使用Vim编辑文件时找到了两种在gnome-terminal标题栏中显示文件路径的方法。

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

set title

将在顶部显示:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

更复杂的方式将显示绝对文件路径。这是我最近写的documented in a bit more detail in this blog post

答案 3 :(得分:7)

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

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

答案 4 :(得分:6)

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

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

我不知道 CTRL G 但似乎差不多。

答案 5 :(得分:5)

我认为状态线非常强大且方便。开箱即用的Strait它将显示文件名,光标位置和一些标志。但是你想和我一样,将 filename -part替换为完整路径到文件中。

因此,在编辑我的.vimrc时,我的状态行看起来像默认情况:

.vimrc                                                        26,16           7%

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

:set statusline?

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

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

请在.vimrc中加入此内容,然后将%f更改为%F。我还添加了filetype标志(%y)到我的状态行,因为我发现它很方便。所以我得到的配置如下所示:

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

结果看起来像这样:

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

好读:

PS。我运行vim 7.3

答案 6 :(得分:4)

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

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

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

答案 7 :(得分:4)

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

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

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

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