How can I permanently display the path of the current file in Vim?

VimVi

Vim Problem Overview


I know CTRLg displays the current file you're working on. Is there a way to modify my .vimrc such that the filename/path is always displayed?

Vim Solutions


Solution 1 - Vim

In your statusline, add a %F to display the full path:

:help statusline

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

Note, %F will be the full path. To get a path relative to the working directory, use %f.

If your statusline is not already visible, you may first need to configure it to be always visible, via laststatus=2

set laststatus=2

See :help laststatus for what the options mean. Normally, the statusline may be hidden, or hidden unless multiple buffers are open, but I find it extremely useful to have on all the time with customizations like this, well worth giving up one screen line reserve for it.

Solution 2 - Vim

set ls=2

add this in vimrc, and you will see the file name at the bottom always.

Solution 3 - Vim

I found 2 ways to display the file path in the Title bar of the gnome-terminal while editing a file with Vim.

The simpler (and better) way: Add the following line to your ~/.vimrc:

set title

Which will show you at the top:

filename.ext (~/path_to_directory_where_your_file_is/) - VIM

The more complicated way will show you the absolute file path. It's documented in a bit more detail in this blog post I recently wrote.

Solution 4 - Vim

If you are using [vim-airline][1], put in .vimrc:

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

This is a modification of the airline default, changing %f by %F.

[1]: https://github.com/bling/vim-airline/ "vim-airline"

Solution 5 - Vim

The only way I found to get the full path of the file I'm working in is: :echo expand('%:p'). You can re-map ctrl+g if you want, but I personally don't like shifting away from the standards too much. I've mapped F7 like so:

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

Solution 6 - Vim

I've always used :f, but the answer and links from @MichaelBerkowski are amazing!

:f shows the path, line count, modified state, current cursor position, and more...

I didn't know about CTRLG but it appears to be about the same.

Solution 7 - Vim

The statusline is very powerful and handy I think. Strait out of the box it will display filename, cursor position and some flags. But you want to do the same as me and replace the filename-part with the full path to the file.

So while editing my .vimrc my statusline could look something like this as default:

.vimrc                                                        26,16           7%

You could view your setting of the statusline with:

:set statusline?

But if you have not made any alterations and no module has changed it it would be empty. But by the examples in the help-section (:help statusline) you could find that the default is:

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

So include this in your .vimrc and change %f to %F. I also added added the filetype flag (%y) to my statusline since I find it convenient. So my resulting configuration looks like this:

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

And the result would look something like this:

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

Good reading:

PS. I run vim 7.3

Solution 8 - Vim

If you want the path to include resolved symlinks, use the following:

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

To keep the '~' abbreviation for your home directory, include fnamemodify

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionzallarakView Question on Stackoverflow
Solution 1 - VimMichael BerkowskiView Answer on Stackoverflow
Solution 2 - VimSD.View Answer on Stackoverflow
Solution 3 - Vimsampson-chenView Answer on Stackoverflow
Solution 4 - VimphcerdanView Answer on Stackoverflow
Solution 5 - VimTim PoteView Answer on Stackoverflow
Solution 6 - VimjahroyView Answer on Stackoverflow
Solution 7 - VimUlfRView Answer on Stackoverflow
Solution 8 - VimjoelostblomView Answer on Stackoverflow