如何在vim中显示正在编辑的文件名?
:f
(:file
)与<C-G>
具有相同的作用。如果适用,:f!
将提供一个未截断的版本。
~/dev/file.py
启动vim并在vim中执行:f
时,输出的是file.py
而不是~/dev/file.py
。 - gxydctrl-g
,返回路径和文件名。:f
将返回无路径的文件名,ctrl-g
也可能如此。在 ctrl-g
前加上 1
将显示路径和名称(但不一定会展开)。例如它将显示 ~/dev/file.py
而不是 file.py
。在 ctrl-g
后跟随 2
将包含缓冲区信息:buf 1: "~/dev/file.py"
。 - ivesset 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 "current file: %" current file: foo.c Press ENTER or type command to continue
set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines
, 还需要转义空格。 - D. Ben Knoble%02.2B
)项目更改为不限制数字数量,像这样:[0x%02B]
。(精度.2
限制了数量。02B
表示零填充并至少显示两个数字。) - Tom Hundt设置状态栏。有关更多信息,请使用:help statusline
。
这些命令可以放在您的.vimrc文件中,或者您可以在vim中输入它们作为命令,方法是在命令模式下键入“:”。
首先,使用以下命令将最后一个状态设置为2:
set laststatus=2
然后,将状态行设置为%f以获取短文件名。
set statusline=%f
要获取文件的完整路径,请使用%F。
为什么这么复杂?使用Control-G就可以完成任务
:set title
用于在窗口标题栏中显示文件名。
:echo resolve(expand('%:p'))
您可以通过将以下代码行添加到您的 ~./vimrc
文件中,将此功能添加到状态栏中。
set statusline +=%{resolve(expand('%:p'))}\ %*
我还需要将以下内容添加到我的 .vimrc 文件中:
set noruler
set laststatus=2
然后我可以在我的 .vimrc 文件中添加类似 set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"
的内容,在重新启动终端后,状态行就会正确显示。
set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines
还需要转义空格。 - D. Ben Knoble其中一个建议必须更改为
set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines
以使其正常工作。此外,
set laststatus=2
也被使用了。
我使用了来自amix的惊人的vimrc:https://github.com/amix/vimrc
它使用lightline.vim
插件并在状态栏上显示文件名。
使用amix/vimrc
的好处是,这个插件可以处理大部分的自定义内容,非常稳定,并且已经被数千人测试过,您可以通过查看Github上的星星数量以及不频繁的问题来检查。
它还经常更新。
P.S.:我不是任何一个插件的作者,只是一个粉丝 :)
~/.vimrc
中:" Statusline at the top (use tabline)
set tabline=%F\ %y " only the format
set showtabline=2 " this turns on the tabline