在vim中显示当前文件的名称?
Posted
技术标签:
【中文标题】在vim中显示当前文件的名称?【英文标题】:Display name of the current file in vim? 【发布时间】:2011-05-05 22:20:57 【问题描述】:如何在 vim 中显示正在处理的文件的文件名?
【问题讨论】:
如果您的终端设置正确,您应该在窗口标题中获得文件名。 另见:How can I permanently display the path of the current file in Vim? 相关:How can I see the full path of the current file? 在 Vim SE ctrl+g 是可以显示文件信息 【参考方案1】::f
(:file
) 与<C-G>
的作用相同。 :f!
将提供未截断的版本(如果适用)。
【讨论】:
很好,但可以在终端的顶部栏中显示它吗? (或终止符)或没有输入命令的地方。:f!
并不总是有效,按 1,然后按 Ctrl-G 获取完整路径。
完整路径怎么样?当我从~/dev/file.py
启动vim 并在vim 中执行:f
时,我得到file.py
作为输出而不是~/dev/file.py
。
@ives 1 和 Ctrl+g 分别是什么意思?
@jobima:它修改ctrl-g
以返回路径+文件。 :f
将返回不带路径的文件名,ctrl-g
也可能如此。 1
之前的 ctrl-g
将显示路径和名称(尽管不一定展开)。即它将显示~/dev/file.py
而不是file.py
。 2
后跟 ctrl-g
将包括哪个缓冲区:buf 1: "~/dev/file.py"
。【参考方案2】:
ctrl+g 会做到的。
另外,我喜欢:
set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"
产生:
foo.c [C] [0x23]
另外,正如有人提到(但现在已删除)%
将替换为当前文件名。例如:
:!echo "当前文件: %"
当前文件:foo.c
按 ENTER 或键入命令继续
【讨论】:
[C]
和 [0x23]
部分是什么意思?
@LangeHaare 光标下字符的文件类型和十六进制值
'statusline'
是一个字符串,但你没有在集合中包含引号:set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines
也需要转义空格
如果您想编辑 Unicode 并查看字符的十六进制值,请将括号中的第二个 (%02.2B
) 项更改为不将位数限制为两位,例如:[0x%02B]
。 (精度.2
做了限制。02B
表示零填充并显示至少两位数。)【参考方案3】:
设置状态行。更多信息:help statusline
这些命令可以放在您的 .vimrc 文件中,或者您可以在 vim 中通过在命令模式下键入 ':' 将它们作为命令输入。
首先,使用以下命令将最后状态设置为 2:
set laststatus=2
然后将状态行设置为 %f 作为短文件名。
set statusline=%f
对于文件的完整路径,使用 %F。
【讨论】:
E518:未知选项:%f 我已经更新了答案,Isius。希望这能让它更清楚。【参考方案4】::set title
在窗口标题栏中显示文件名。
【讨论】:
【参考方案5】:为什么这么复杂? Control-G 将完成这项工作
【讨论】:
【参考方案6】:要显示任何文件的完整路径,包括已解析的符号链接,请使用以下内容。
:echo resolve(expand('%:p'))
这可以通过将下面的行添加到您的~./vimrc
来添加到您的状态栏
set statusline +=%resolve(expand('%:p'))\ %*
【讨论】:
【参考方案7】:我使用来自 amix 的惊人的 vimrc
:https://github.com/amix/vimrc
它使用lightline.vim
插件并在状态栏上显示文件名。
使用amix/vimrc
的好处在于,这个插件负责大部分的定制,它非常稳定,并且已经过 1000 人的测试,你可以通过查看 github 星的数量来检查。 . 以及不常见的问题。
它的更新也很频繁。
P.S.:不是这两个插件的作者.. 只是一个粉丝 :)
【讨论】:
【参考方案8】:我还需要把它放在我的 .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
也需要转义空格【参考方案9】:
上述建议之一必须改为
set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines
让它工作。还有
set laststatus=2
被使用了。
【讨论】:
欢迎来到Stack Overflow!这可能应该是对相关答案的建议编辑或评论——您还没有足够的声誉来评论或编辑,但如果您提出好的问题并写出好的答案,您很快就会这样做!同时,我会向答案的作者提出相关的修复建议。好收获!以上是关于在vim中显示当前文件的名称?的主要内容,如果未能解决你的问题,请参考以下文章