【发布时间】:2012-05-16 08:27:45
【问题描述】:
我知道 CTRLg 显示您正在处理的当前文件。有没有办法修改我的.vimrc 以便始终显示文件名/路径?
【问题讨论】:
我知道 CTRLg 显示您正在处理的当前文件。有没有办法修改我的.vimrc 以便始终显示文件名/路径?
【问题讨论】:
在您的状态栏中,添加 %F 以显示完整路径:
:help statusline
" Add full file path to your existing statusline
set statusline+=%F
注意,%F 将是完整路径。要获取相对于工作目录的路径,请使用%f。
如果您的状态栏尚不可见,您可能首先需要通过laststatus=2将其配置为始终可见
set laststatus=2
请参阅:help laststatus 了解选项的含义。通常情况下,状态行可能会被隐藏,或者除非打开多个缓冲区,否则状态行会被隐藏,但我发现一直使用这样的自定义非常有用,非常值得为它放弃一个屏幕行保留。
【讨论】:
set statusline+=%F 添加到我的~/.vimrc 似乎并没有按照你的说法。虽然文档似乎当然同意你的观点......
:set statusline=%F 不带+
:set statusline=%F,你的状态栏会改变吗?向右或向左看,看看文件名是否隐藏在状态行中
set laststatus=2 保持状态栏始终可见。我忘了我有那个。
设置 ls=2
在 vimrc 中添加这个, 并且您将始终在底部看到文件名。
【讨论】:
set modeline 有点危险,与问题无关。它允许在文件的 5 个开始/结束行中执行 Vim 命令。只有知道为什么并且真正想要它的人才能打开它。 (这就是为什么我 -1 这个答案)
我发现了两种在使用 Vim 编辑文件时在 gnome 终端的标题栏中显示文件路径的方法。
更简单(更好)的方法:将以下行添加到您的~/.vimrc:
set title
哪个会显示在顶部:
filename.ext (~/path_to_directory_where_your_file_is/) - VIM
更复杂的方法会显示绝对文件路径。这是我最近写的documented in a bit more detail in this blog post。
【讨论】:
如果您使用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>
【讨论】:
:help CTRL-G,然后向下看两段 CTRL-G 计数。
1 CTRL-G 显示完整的文件名。我正在寻找这个选项。
~。
我一直使用:f,但@MichaelBerkowski 的答案和链接太棒了!
:f 显示路径、行数、修改状态、当前光标位置等...
我不知道 CTRLG 但它似乎差不多。
【讨论】:
我认为状态栏非常强大和方便。开箱即用,它将显示文件名、光标位置和一些标志。但是您想和我一样,将 filename-部分替换为文件的 完整路径。
因此,在编辑我的.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')),':~')}\ %*
【讨论】: