我怎样才能在Vim中永久显示当前文件的path?

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

在您的状态行中,添加%F以显示完整path:

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

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

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

 set laststatus=2 

请参阅:help laststatus的选项是什么意思。 通常情况下,除非打开多个缓冲区,否则状态行可能是隐藏的或隐藏的,但是我觉得非常有用的做法是像这样定制化,非常值得放弃一个屏幕行保留。

设置ls = 2

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

我发现有两种方法在用Vim编辑文件时在gnome-terminal的标题栏中显示文件path。

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

 set title 

这将显示在顶部:

 filename.ext (~/path_to_directory_where_your_file_is/) - VIM 

更复杂的方式将显示绝对文件path。 在我最近写的博客文章中有更详细的logging 。

我发现获取我正在工作的文件的完整path的唯一方法是:echo expand('%:p') 。 你可以重新映射ctrl + g,但是我个人不喜欢远离标准太多。 我已经像这样映射了F7:

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

我一直使用:f ,但@MichaelBerkowski的答案和链接是惊人的!

:f显示path,行数,修改状态,当前光标位置等…

我不知道CTRL G,但看起来差不多。

状态线是非常强大和方便,我认为。 海峡开箱即显示文件名,光标位置和一些标志。 但是你想和我一样做,并用文件完整pathreplace文件名 –部分。

所以,当编辑我的.vimrc我的statusline可以看起来像这样的默认值:

 .vimrc 26,16 7% 

您可以查看您的状态行的设置:

 :set statusline? 

但是,如果你没有做任何改动,也没有模块改变它,那将是空的。 但通过帮助部分( :help statusline )中的示例,您可以发现缺省值为:

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

因此,将其包含在.vimrc ,并将%f更改为%F 。 我还添加了文件types标志( %y )到我的状态行,因为我觉得很方便。 所以我得到的configuration如下所示:

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

结果看起来像这样:

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

良好的阅读:

  • 文档
  • 一本很好的书来学习基础知识
  • 这里有很多在stackoverflow!

PS。 我运行vim 7.3

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

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

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

如果您希望path包含已parsing的符号链接,请使用以下命令:

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

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

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