在vim中显示当前文件的名称?


Answers:


200

:f:file)与<C-G>:f!将提供未删节的版本(如果适用)。


2
很好,但是可以在终端的顶部栏中显示它吗?(或终止符)或没有键入命令的地方。
eMarine

21
:f!并非总是有效,请按1,然后按Ctrl-G以获得完整路径。

1
完整路径如何?当我从vim启动~/dev/file.py:f在vim中执行时,我得到的file.py是输出而不是~/dev/file.py
gxyd

1
@ives 1和Ctrl + g分别是什么意思?
Jobima

2
@jobima:它修改ctrl-g为返回路径+文件。:f可能会返回没有路径的文件名ctrl-g。一个1ctrl-g会显示路径和名称(不一定扩大,虽然)。即它将显示~/dev/file.py而不是file.py2接下来ctrl-g将包含哪个缓冲区:buf 1: "~/dev/file.py"
ives,

71

ctrl+ g会做到的。

另外,我喜欢:

set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"

产生:

foo.c [C] [0x23] <code / foo.c 1,1 2%of 50

另外,正如有人提到的(但现在已删除),%它将替换为当前文件名。例如:

:!echo“当前文件:%”
当前文件:foo.c
按ENTER或键入命令以继续

2
什么做的[C][0x23]部分是什么意思?
LangeHaare

@LangeHaare光标下的字符的文件类型和十六进制值

'statusline'是一个字符串,但是您不能在集合中包括引号:set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines还需要转义的空格
D. Ben Knoble

18

设置状态行。更多信息:help statusline

这些命令可以放在.vimrc文件中,也可以在vim中通过在命令模式下键入':'将它们作为命令输入。

首先,使用以下命令将last status设置为2:

set laststatus=2

然后将状态行设置为%f以获取短文件名。

set statusline=%f

有关文件的完整路径,请使用%F。


E518:未知选项:%f
Isius

我已经更新了答案,伊修斯。希望这可以使它更清楚。
布赖恩·克莱门茨



4

要显示任何文件的完整路径,包括解析的符号链接,请使用以下命令。

:echo resolve(expand('%:p'))

可以通过将以下行添加到您的状态栏中,将其添加到您的状态栏中 ~./vimrc

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

2

以上建议之一必须更改为

set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines

使它工作。也

set laststatus=2

被使用了。


欢迎使用Stack Overflow!这可能是建议的对相关答案的编辑或评论-您尚无足够的声誉来评论或编辑,但是如果您提出良好的问题并写出正确的答案,您会很快!同时,我将为答案的作者提供相关的修正。接得好!
D. Ben Knoble

1

我使用vimrcamix 的惊人功能:https//github.com/amix/vimrc

它使用lightline.vim插件并在状态栏上显示文件名。

使用的amix/vimrc好处是,此插件可以完成大多数自定义操作,非常稳定,并且已经过数千人的测试,您可以通过查看github star ..以及不常见的问题来进行检查。

它也经常更新。

PS:不是任何一个插件的作者..只是一个粉丝:)


1

我还需要将其放在我的.vimrc文件中:

set noruler
set laststatus=2

然后,我可以set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"在.vimrc文件中放入类似内容,然后在重新启动终端后,状态行将正确显示。


'statusline'是一个字符串,但是您不能在集合中包括引号:set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines还需要转义的空格
D. Ben Knoble
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.