vim欢迎界面(oeasy教您玩转vim-21)

状态横条回忆上节课内容
  • 我们上次研究了标尺
  • 标尺开启 se ru关闭 se noru
  • 行号开启 se nu关闭 se nonu
  • 命令位置开启 se showcmd关闭 se noshowcmd
  • 跳转用 29 G 跳转行号用 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

vim欢迎界面(oeasy教您玩转vim-21)(1)

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

vim欢迎界面(oeasy教您玩转vim-21)(2)

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

vim欢迎界面(oeasy教您玩转vim-21)(3)

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

vim欢迎界面(oeasy教您玩转vim-21)(4)

改变底下的状态横条
  • 有了行列位置
  • 再配合标尺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'

vim欢迎界面(oeasy教您玩转vim-21)(5)

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

vim欢迎界面(oeasy教您玩转vim-21)(6)

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

vim欢迎界面(oeasy教您玩转vim-21)(7)

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

vim欢迎界面(oeasy教您玩转vim-21)(8)

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

vim欢迎界面(oeasy教您玩转vim-21)(9)

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

vim欢迎界面(oeasy教您玩转vim-21)(10)

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

vim欢迎界面(oeasy教您玩转vim-21)(11)

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

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页