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

后端 未结 8 707
别那么骄傲
别那么骄傲 2020-12-12 12:26

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 displa

相关标签:
8条回答
  • 2020-12-12 13:05

    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.

    0 讨论(0)
  • 2020-12-12 13:06

    If you are using vim-airline, 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.

    0 讨论(0)
  • 2020-12-12 13:12

    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.

    0 讨论(0)
  • 2020-12-12 13:15

    set ls=2

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

    0 讨论(0)
  • 2020-12-12 13:18

    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')),':~')}\ %*
    
    0 讨论(0)
  • 2020-12-12 13:19

    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>
    
    0 讨论(0)
提交回复
热议问题