我知道CTRLg显示您正在处理的当前文件。有没有办法修改我.vimrc
的文件名/路径总是显示?
8 回答
在您的状态行中,添加一个%F
以显示完整路径:
:help statusline
" Add full file path to your existing statusline
set statusline+=%F
注意,%F
将是完整路径。要获取相对于工作目录的路径,请使用%f
.
如果您的状态行不可见,您可能首先需要将其配置为始终可见,通过laststatus=2
set laststatus=2
查看:help laststatus
选项的含义。通常,除非打开多个缓冲区,否则状态行可能会被隐藏或隐藏,但我发现一直使用这样的自定义非常有用,非常值得为它放弃一个屏幕行保留。
设置 ls=2
在 vimrc 中添加它,您将始终在底部看到文件名。
在使用 Vim 编辑文件时,我发现了两种在 gnome 终端的标题栏中显示文件路径的方法。
更简单(更好)的方法:将以下行添加到您的~/.vimrc
:
set title
这将在顶部显示:
filename.ext (~/path_to_directory_where_your_file_is/) - VIM
更复杂的方法会显示绝对文件路径。在我最近写的这篇博文中更详细地记录了它。
如果您使用的是vim-airline,请输入.vimrc
:
let g:airline_section_c = '%<%F%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#'
这是对航空公司默认值的修改,更改%f
为%F
。
我发现获取我正在使用的文件的完整路径的唯一方法是::echo expand('%:p')
. 您可以根据需要重新映射 ctrl+g,但我个人不喜欢过多地偏离标准。我已经像这样映射了 F7:
map <F7> <Esc>:echo expand('%:p')<Return>
我一直使用:f
,但来自@MichaelBerkowski 的答案和链接太棒了!
:f
显示路径、行数、修改状态、当前光标位置等...
我不知道,CTRLG但它似乎大致相同。
我认为状态栏非常强大和方便。开箱即用,它将显示文件名、光标位置和一些标志。但是你想和我一样,用文件的完整路径替换文件名-part 。
因此,在编辑我.vimrc
的状态行时,默认情况下可能看起来像这样:
.vimrc 26,16 7%
您可以通过以下方式查看状态行的设置:
:set statusline?
但是,如果您没有进行任何更改并且没有模块更改,那么它将是空的。但是通过帮助部分 ( :help statusline
) 中的示例,您会发现默认设置为:
:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
因此,将其包含在您的.vimrc
并更改%f
为%F
. 我还添加了文件类型标志 ( %y
) 到我的状态行,因为我觉得它很方便。所以我得到的配置如下所示:
:set statusline=%<%F\ %h%m%r%y%=%-14.(%l,%c%V%)\ %P
结果看起来像这样:
~/.vimrc [vim] 26,16 7%
好读:
PS。我运行 vim 7.3
如果您希望路径包含已解析的符号链接,请使用以下命令:
set statusline +=%{resolve(expand('%:p'))}\ %*
要保留主目录的“~”缩写,包括fnamemodify
set statusline +=%{fnamemodify(resolve(expand('%:p')),':~')}\ %*