如何使用Vimscript在状态行上写入文本,包括文件名、行号和列号?

dw1jzc5e  于 2022-11-11  发布在  其他
关注(0)|答案(3)|浏览(156)

有没有办法在vim窗口下面的栏上编程写东西呢?我指的是显示文件名、光标所在行+列以及窗口底部以上文档的百分比的栏。

nxagd54h

nxagd54h1#

它称为状态行。
键入:help statusline可以获得更多信息。
这是我用的一个,它包括行和列在右下角。

set statusline=%f%m%r%h\ [%L]\ [%{&ff}]\ %y%=[%p%%]\ [line:%05l,col:%02v]   
                │ │ │ │    │       │      │    │           │       │  
                │ │ │ │    │       │      │    │           │       └─ column number  
                │ │ │ │    │       │      │    │           └─── line number  
                │ │ │ │    │       │      │    └── percentage in file  
                │ │ │ │    │       │      └── file type  
                │ │ │ │    │       └── file format (dos/unix)  
                │ │ │ │    └── total number of line in file  
                │ │ │ └── help flag  
                │ │ └── read only flag  
                │ └── modified flag : [+] if modified, [-] if not modifiable  
                └── relative`

渲染效果并不理想,但是从左到右描述了以%符号开头的选项。它们都在帮助中描述。
这是一个相当静态的配置,如果你愿意使用vim插件,有一些像vim-airline提供更高级的特性,比如git集成。

5uzkadbs

5uzkadbs2#

该栏中的信息在选项statusline中设置。您可以在脚本中使用let &statusline =进行设置,就像使用任何其他vim选项一样。
如需详细信息,请参阅:help statusline

nzkunb0c

nzkunb0c3#

这是我对这个问题的看法。
如果只有一个窗口,我设置laststatus关闭“专用”状态行,只使用命令行区域显示状态(使用rulerformat而不是statusline)。

set laststatus=1
set statusline=%F\ %(%w%h%r%m%)%=%2v:%4l/%4L\ 0x%02B
set rulerformat=%25(%w%h%r%<%m%=%2v:%4l/%4L\ 0x%02B%)

状态行显示文件名(带路径),然后输入一个空格,并输入[Preview][help][RO][+]的可选指示符(如果文件被修改了)。单窗口版本省略了文件名。在这两个版本中,我都填充了空格,这样剩下的部分就右对齐了,在光标列中放置了两个字符,然后列出行号和总行数,再列出光标下字符的十六进制ASCII码。
帮助文件中有一堆有趣的示例,正如其他人所说,请查看:help statusline

相关问题