oeasy教您玩转vim - 21 - 状态横条
状态横条
回忆上节课内容🤔
我们上次研究了标尺
标尺
开启
se ru关闭
se noru行号
开启
se nu关闭
se nonu命令位置
开启
se showcmd关闭
se noshowcmd跳转
用29G跳转行号
用19|跳转列号
用29%跳到整个文件 29% 的位置
准备环境
# 下载素材git clone http://github.com/overmind1980/vimtutorial.git#进入目录cd vimtutorial#还是从最简单的vim开始设置起vi -u NONE oeasy.java
设置光标行
来看一个开关option
光标行
cursorline光标
cursor行
line:set cursorline

h 'cursorline'给
cursorline加了单引号说明
cursorline是一个属性option

设置光标列
有行就有列
光标行
cursorcolumn光标
cursor行
column:set cursorcolumn

h 'cursorcolumn'给
cursorcolumn加了单引号说明
cursorcolumn是一个属性option

改变底下的状态横条
有了行列位置
再配合标尺ruler
光标位置就很明确了
在
:h ruler的时候偶然发现了一个新天地
statuslinestatusline意思是状态横条在倒数第 2 行
statusline也是一个可以set的东西我们来查看一下手册
:h statusline好像可以直接给
statusline赋值我直接赋一个
oeasy:set statusline=oeasy然后还需要设置
laststatus设置 laststatus = 0,不显式状态行
设置 laststatus = 1,仅当窗口多于一个时,显示状态行
设置 laststatus = 2,总是显式状态行
:set laststatus=2
statusline上可以放什么呢?
:h 'statusline'

显示属性
除了字符串常量之外是否能显示一些别的属性呢?
继续翻帮助手册
找到相关的
items各种
items有不同的属性(数字、文本、标志)每个
item对应一个字母这个字母需要通过
%来进行转义F对应文件名:set statusline=[oeasy]%F此时,状态条就显示
[oeasy]当前文件名

标志属性
继续翻看属性
Flag是标志位m是一个关于是否已经修改的标志位把
%m追加进入statusline:set statusline=[oeasy]%F%m修改文件后会显示未保存的
[+]观察效果
保存后
[+]会消失暗中观察...

数值属性
查到状态栏细节
N代表Number代表item是一个数值类型行号
l、列号c、百分比p都是数值类型用
[、]把数值型变量分开%%可以把%转义显示出来:set statusline=[oeasy]%F%m[%l,%c]%p%%

状态栏数值还可以随着光标变化😆
控制宽度

可以用格式来控制宽度
%-0{MinWidth}.{MaxWidth}{item}%-040.40F就是用40的固定宽度显示F如果超过范围的话就会把前面部分隐藏
:set statusline=[oeasy]%-040.40F%m[%l,%c]%p%%一行总共
80字符后面的部分怎么办?
成组

我们可以把行和列组成一个
items group用
(、)来封装这个组标尺组的宽度固定为10
用
%对(、)进行转义:set statusline=%([%l,%c]%)这样就可以统一设置这个标尺组的宽度
:set statusline=%-010.10([%l,%c]%)同理文件名和文件是否修改也可以编成一组
:set statusline=%(%F%m%)
最终整合

最终整合总共分为三部分
文件
%-040.40(%F%m%)标尺
%-030.30([%l,%c]%)比例
%p%%关于状态横条还有一个总开关
:set laststatus=0关闭:set laststatus=2开启
总结
我们这次了解到了状态横条
通过转义表示
item控制
item宽度的方法将
item成组的方法还有一个总开关
laststatus但是每次都要写很长的一段话来配置很麻烦啊
我们能否写一个配置文件,让
vim每次自动配置好呢?🤔下次再说 *

