状态横条

回忆上节课内容

  • 我们上次研究了标尺
  • 标尺

    • 开启 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

  • h 'cursorline'

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

设置光标列

  • 有行就有列
  • 光标行 cursorcolumn

    • 光标 cursor
    • column
  • :set cursorcolumn

  • h 'cursorcolumn'

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

改变底下的状态横条

  • 有了行列位置
  • 再配合标尺ruler
  • 光标位置就很明确了
  • :h ruler 的时候
  • 偶然发现了一个新天地 statusline

    • statusline 意思是状态横条
    • 在倒数第 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
  • () 来封装这个组

    • %() 进行转义
    • :set statusline=%([%l,%c]%)
    • 这样就可以统一设置这个标尺组的宽度
    • :set statusline=%-010.10([%l,%c]%)

      • 标尺组的宽度固定为10
  • 同理文件名和文件是否修改也可以编成一组

    • :set statusline=%(%F%m%)

最终整合

  • 最终整合总共分为三部分

    • 文件 %-040.40(%F%m%)
    • 标尺 %-030.30([%l,%c]%)
    • 比例 %p%%
  • 关于状态横条还有一个总开关

    • :set laststatus=0 关闭
    • :set laststatus=2 开启

总结

  • 我们这次了解到了状态横条

    • 通过转义表示 item
    • 控制 item 宽度的方法
    • item 成组的方法
    • 还有一个总开关 laststatus
  • 但是每次都要写很长的一段话来配置很麻烦啊
  • 我们能否写一个配置文件,让 vim 每次自动配置好呢?
  • 下次再说

oeasy教您玩转vim - 21 - 状态横条的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转linux010107那啥在哪 whereis

    回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:

  10. oeasy教你玩转linux010104灵魂之问whatis

    灵魂之问whatis 回忆上节课 我们上次在系统里面乱转

随机推荐

  1. Doug Lea大师的佳作CopyOnWriteArrayList,用不好能坑死你!

    一.写在开头 我们在学习集合或者说容器的时候了解到,很多集合并非线程安全的,在并发场景下,为了保障数据的安全性,诞生了并发容器,广为人知的有ConcurrentHashMap.ConcurrentLi ...

  2. 基于webapi的websocket聊天室(四)

    上一篇实现了多聊天室.这一片要继续改进的是实现收发文件,以及图片显示. 效果 问题 websocket本身就是二进制传输.文件刚好也是二进制存储的. 文件本身的传输问题不太,但是需要传输文件元数据,比 ...

  3. NumPy 随机数据分布与 Seaborn 可视化详解

    随机数据分布 什么是数据分布? 数据分布是指数据集中所有可能值出现的频率,并用概率来表示.它描述了数据取值的可能性. 在统计学和数据科学中,数据分布是分析数据的重要基础. NumPy 中的随机分布 N ...

  4. python之Faker库如果构造用户信息测试数据

    代码链接1:https://blog.csdn.net/qq_38484679/article/details/115244711 补充代码链接0:https://blog.csdn.net/weix ...

  5. ajax跨域(跨源)方案之CORS

    ajax跨域(跨源)方案:后端授权[CORS],jsonp,服务端代理 CORS是一个W3C标准,全称是"跨域资源共享",它允许浏览器向跨源的后端服务器发出ajax请求,从而克服了 ...

  6. ubuntu 虚拟机安装完docker 以后 出现tls时遇到的坑

    网上很多都是更改镜像源,发现更改以后还是不行.请更改网路模式为桥接模式就ok了.

  7. OSGQt编译安装

    OSGQt编译安装 效果演示 1.准备工作 最新版的osg中不附带osgQt源码,所以需要单独下载编译 在编译osgQt前需要先编译osg源码,osg编译安装看这里 编译osgQt的环境与之前编译os ...

  8. Qt--ui的简单使用(1)

    1  说明 本文主要介绍Qt ui界面的简单使用. 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=22 2  工程创建 创建工程时,把创建界面给 ...

  9. LeetCode 621. 任务调度器 (Java)

    题目: 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.C ...

  10. FlashDuty Changelog 2023-09-07 | 新增深色模式与主题配置

    FlashDuty:一站式告警响应平台,前往此地址免费体验! FlashDuty 现在已经全面支持了深色模式,这为您提供了更柔和的光线和舒适的界面外观.并且,您可以根据自己的喜好和使用环境动态切换深色 ...