上下行
向 下 是j👇
向 上 是k👆
上下行首
向 下 到行首非空字符+
向 上 到行首非空字符-
这些 motion 都可以加上 [count] 来翻倍
首尾行
首行是gg
尾行是G
gg=G是全部自动缩进
G好像还有其他用法?
什么用法呢?
先用 无配置 的 vi 打开 oeasy.java

直接跳到某行Goto Line
2G跳到第2行
3G跳到第3行
4G跳到第4行
gg跳到第1行
G跳到最后一行
这个真的很方便
尤其编译报错某行出问题的时候
直接就 Goto 过去了
如果行数多了
怎么才能使到我要去第几行呢?
这就需要显示行号
:set number 是显示行号
:set 是命令,可以设置各种属性
number 是 :set 的参数option
是一个负责显示行号的开关属性
我们可以通过 :h :set 来查看各种属性
这些帮助手册都在 options.txt 中

我们不但可以打开 number 开关
:set number 打开 number开关
显示行号
也可以关闭number开关
number 前面加上 no 代表关闭该开关
:set nonumber 关闭 number,不显示行号
简写
:se[t] nu[mber] 可简写为 :se nu
:se[t] nonu[mber] 可简写为 se nonu
我们不但可以显示绝对的行号
也可以显示相对的行号
也在 options.txt 这文件里
这个开关叫做 relativenumber
相对行号
:set relativenumber

可以看到当前光标位置对应 0 行
向上👆的行号是从当前行行计算的
向下👇的行号也是从当前行计算的
这样上下运动就会更精确一点
4j 就能知道光标落在下面标 4 的那行
5k 就能知道光标落在上面标 5 的那行
如果我同时设置 se nu 会如何呢?
当前行显示绝对行号,上下部分显示相对行号
相对行号简写
set relativenumber 简写为 se rnu
set norelativenumber 简写为 se nornu

我们还可以使用行命令的模式跳转
:30 跳到第 30 行
:40 跳到第 40 行
:40 跳到第 50 行
:6000000 跳到结尾,如果整篇文字没有 6000000 行的话
如何知道当前文件有多少行呢?
还记得 :f[ile] 吗?
快捷键是ctrlg

我们可以通过ctrlg看到:
文件名
当前行号
总行数
当前位置百分比
当前列位置
跳转到行号
200G
设置行号选项
显示行号 :se nu
显示相对行号 :se rnu
如何用命令行跳转 :100
但是我如何有的时候记不住到底跳到多少行
能否做个标记留个记号呢?
下次再说 *