回忆上节课内容🤔
素材文件
- 首先我们打开一个绕口令
git clone http://github.com/overmind1980/oeasyvim.git
vi -u NONE raokouling.txt
- 打开绕口令
- 需要单行的长度超过 80 个字符
- 设置不换行
- 设置状态条
:set statusline=%f-[%l,%c]
:set laststatus=2
- 把模式设置为非兼容
横向滚动
- 一路l 到屏幕的尽头
- 到 [1,80] 时候再按下 l
- 整个屏幕发生横向滚动
- 然后光标移动到屏幕中心位置
- 光标坐标显示为 [1,81]
- 如果要回来的话也需要移动到左边缘
- 然后再按 h️
- 整个屏幕滚动回来了
横滚幅度
- 横滚的幅度可以通过
sidescroll
来控制
- 默认 0 是横向屏幕 80 字符的一半 40 字符
- 如果我设置为 10 的话
- 在最右边缘再向右的话,屏幕位置滚动 10 个字符
- 从 [1,80] 到 [1,81] 的时候发生
-
:h sidescroll
- 我们如果把
sidescroll
变成 1,屏幕横滚就会很柔和🤪
- 还是设置回10吧
- 反复横跳
横滚留位
- 每次我们的横滚都是在屏幕边缘发生的
- 能否到达边缘之前就能看见那边有什么?
-
:h sidescrolloff
- 默认是 0,到边缘才滚动
- 如果我们设置为 20
- 到 [1,60] 的时候,距离有边缘有 20
- 这个时候 l️整个屏就会向右
滚动幅度
- 也就是
sidescroll
所对应的 10
- 把
sidescrolloff
设置成 99,光标在横向总在中心位置🤪
横滚屏快键
- 其实横向滚动我们用的比较少
- 但在一屏中滚动比较常见
屏内跳转
- 可以参照全屏跳转
- 前面加个 g
- g0 就是跳到屏幕第一个字符
- g^ 就是本屏幕内第一个非空字符
- gm 跳到屏幕中间
- gM 跳到整个文本中间
- g$ 跳到屏幕末尾
自动换行
- 如果一行太长了我们可以让他
:set wrap
自动换行
-
:h wrap
可以查看帮助手册📕
-
:set nowrap
可以取消自动换行
向上一行
- 我们一般用 j、k 上下移动
- 但是如果自动换行之后,这上下就不只是一行了
- 先把行号显示出来
:set nu
- 我们可以通过 g j、g k 来自动换行的一行内上下移动
换行字符
- 我在行头句尾的时候
- 如果我想按方向键 h、l 换行
- 如果我用 BackSpace
- 但是有的机器上,却无效
- 为什么呢?
- 这是一个属性option
- 先看看这个东西现在的值
- 把他设置回默认的值
:set whichwrap&
-
&
表示设置为默认值
- 然后再观察现状
选项细节
- 默认只有两个
- 理论上h、l 不好使
-
vi oeasy.java
- 重新用vi打开
-
h、l 好使
- 那他是在那里设置了 h、l 呢?
查找根源
vim ~/.vimrc
总结
- 我们这次了解了横向滚动的相关信息
- 横滚幅度 -
sidescroll
- 横滚留位 -
sidescrolloff
- 自动换行 -
wrap
-
g j、g k 可以逐行上下移动
- 可以控制切换行的控制键
whichwrap
- 这就是横向移动的内容
- 不过程序中一般一行不会超过80个字符
- 纵向移动更为普遍
- 纵向移动有什么好玩的吗?🤔
- 下次再说 👋
教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!
朱赟的技术管理课 -〔朱赟〕
TypeScript开发实战 -〔梁宵〕
编译原理实战课 -〔宫文学〕
OAuth 2.0实战课 -〔王新栋〕
如何看懂一幅画 -〔罗桂霞〕
说透芯片 -〔邵巍〕
徐昊 · TDD项目实战70讲 -〔徐昊〕
人人都用得上的数字化思维课 -〔付晓岩〕
零基础GPT应用入门课 -〔林健(键盘)〕