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

zal*_*rak 87 vi vim

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

Mic*_*ski 126

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

:help statusline

" Add full file path to your existing statusline
set statusline+=%F
Run Code Online (Sandbox Code Playgroud)

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

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

set laststatus=2
Run Code Online (Sandbox Code Playgroud)

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

  • 我当然更喜欢你的答案,但将 `set statusline+=%F` 添加到我的 `~/.vimrc` 似乎并没有按照你的说法去做。尽管文档似乎确实同意你的观点...... (2认同)
  • 这没有效果。抱歉,如果我错过了一些简单的事情,您对此有什么想法吗? (2认同)
  • @TimPote也许`set laststatus = 2`以保持状态线始终可见.我忘了我已经有了. (2认同)

SD.*_*SD. 18

设ls = 2

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


sam*_*hen 16

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

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

set title
Run Code Online (Sandbox Code Playgroud)

哪个会在顶部显示:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM
Run Code Online (Sandbox Code Playgroud)

更复杂的方式将显示绝对文件路径.我最近写的这篇博客文章中有更详细记录.


Tim*_*ote 7

我发现获得我正在处理的文件的完整路径的唯一方法是::echo expand('%:p').如果你愿意,你可以重新映射ctrl + g,但我个人不喜欢过多地偏离标准.我像这样映射F7:

map  <F7> <Esc>:echo expand('%:p')<Return>
Run Code Online (Sandbox Code Playgroud)

  • `:帮助CTRL-G`,然后用"CTRL-G"计算两个段落. (4认同)

jah*_*roy 6

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

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

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


Ulf*_*lfR 5

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

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

.vimrc                                                        26,16           7%
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式查看状态行的设置:

:set statusline?
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

结果看起来像这样:

~/.vimrc [vim]                                                26,16           7%
Run Code Online (Sandbox Code Playgroud)

好的阅读:

PS。我运行vim 7.3


phc*_*dan 5

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

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

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