VIM - EX 命令行 - 常规操作
-
概述
- EX 命令行常规操作
- 这根本算不上是 一个教程, 只是一个 整理
-
背景
- 补充一下 EX 命令行 相关的内容
- 基本的内容
- 补充一下 EX 命令行 相关的内容
-
环境
- OS
- win10
- shell
- mintty-2.9.4
- OS
1. EX
-
概述
- EX 编辑器
-
EX
- EX 行编辑器
-
编辑器
- 有点类似与 SED
-
机制
- 定位
- 通过特定的特征定位
- 行号
- 匹配条件
- 通过特定的特征定位
- 操作
- 删除
- 移动
- 复制
- 其他...
- 定位
-
- EX 行编辑器
-
EX 命令行
-
vim 中的 命令行
- 也叫 命令模式
-
唤起
- 标准模式下, 通过 : 唤起
-
2. 操作
-
概述
- 各种操作
-
准备
- 所有操作都是在 标准模式 开始
1. 跳转
-
概述
- 跳转到 特定的行
-
输入
:1 # . 代表 当前行 # 我都在当前行了, 还跳当前行, 这个 # 这个后面会用到... :. # $ 代表最后一行 :$
-
结果
- 跳转到 指定行
- 光标位于 第一个非空 字符之前
2. 搜索
-
概述
- 简单的搜索
-
输入
# 从当前行 向后 搜索 :/patter/ # 从当前行 向前 搜索 :?patter?
-
结果
- 如果存在, 则跳转到 下一个/前一个 pattern 的位置
- 按 n/N 可以继续搜索
- 但一次查找一个
- 本质和 / 与 ? 一致
- 如果存在, 则跳转到 下一个/前一个 pattern 的位置
3. 打印
-
概述
- 打印
-
操作
# 1. 单行打印 - 直接跳转过去 ## 1 和 p 之间有没有空格, 都没有关系 : 1 p # 2. 打印当前行 - 命令行显示当前行内容 : p : . p # 3. 多行打印 - vim 底部会有一个区域, 显示匹配的内容 ## 1,3 在功能上, 算是一个 选择器 了 : 1,3 p # 4. 打印 当前行 到 后面 5 行的内容 : .,+5 p # 5. 打印 当前行前5 行, 到 当前行的内容 ## 行号反了也没关系, 会提示你是否交换 : -5,. p # 6. 打印 当前行开始, 第一个匹配 pattern 的行 : /patter/ p # 7. 打印 当前行 到 之后第一个 pattern 行 : .,/pattern/ p # 8. 打印 当前行 到 之后第一个 pattern 行的 再后面一行 : .,/pattern/+1 p # 9. 打印 当前行 到 之前第一个 pattern 行 : ?pattern?,. p # 10. 打印 当前行 到 之前后第一个 pattern 行的 再前面一行 : ?pattern?-1,. p # 11. 显示 pattern 到 pattern 后一行 ## 这里需要把 , 换成 ; : /pattern/;+1 p # 12. 显示 pattern 前一行, 到 pattern 一行内容 ## 我承认这个操作有点骚... : /patter/-1;+1 p # 13. 查看所有 含有 pattern 的 内容 : g/pattern/ p # 13. 在 范围内 全局查找 : 1,10 g/pattern/ p # 14. 查看所有 pattern 到 pattern 后面 2 行 的内容 : g/pattern/,+1 p # 15. 查看所有 pattern 前一行, 到 pattern 的内容 ## 有点骚 : g/pattern/-1,+1 p # 16. 查看所有 不含 pattern 的内容 : g!/pattern/ p
-
注意
- 普通搜索的范围, 不包含当前行
- 注意 打印 后的光标
- 组合过多, 我就不细说了
- 感兴趣的朋友, 可以尝试 探索
- 老实说, p 真的没啥好讲的
- 之所以花时间讲这个, 是因为 它是个几乎没有成本的操作
- 用这个操作来熟悉 定位机制, 是最好不够的了...
4. 删除
-
概述
- 删除
-
操作
# 删除的操作, 和 打印 大同小异, 我就不多说了 : 1 d : 1,3 d : g/pattern/d
5. 移动
-
概述
- 移动内容
-
操作
# 1. 将 第1行 移动到 第10行 的后面 : 1 m 10 # 2. 将 当前行 移动到 第10行 的后面 : . m 10 # 3. 将 第1行 移动到 最后 : . m $ # 4. 将 第1到3 行, 移动到 第10行 后面 : 1,3 m 10 # 5. 将 所有匹配模式 的东西, 移动到最后 : g/pattern/ m $ # 其他还有很多种搭配, 我就不
6. 复制
-
概述
- 复制内容
-
操作
# 和 移动类似, 我就不说了 # 关键字是 cp/tgg
ps
-
ref
- 学习 vi 和 vim 编辑器
-
后续 - 随缘了
- map
- reg
- tag
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出