vim命令:ex模式
站内链接:
- vim 笔记(1)-命令-基本命令
- vim 笔记(2)-命令-ex 命令
- vim 笔记(3)-命令-map 映射
- vim 笔记(4)-命令-输入模式
- vim 笔记(5)-配置-通用配置和术语
- vim 笔记(6)-配置-neovim
Introduction
帮助文档: help ex, help :, 其他
ex: 对行编辑器 ed 的支持, 另见ex 与 ed的说明.
Format
[Range] Operator [object]
Range
- 当前行: 不指定任何 range 时, 一般只当前行
- 具体范围行号: {starg}, {end}
- 相对行号: {address}+n, {address}-n
- .: 当前行
- 0: 文件第一行的上方, 虚拟行
- %: 所有行
- ‘m: 位置标记 m 所在的行
- pattern: 使用模式指定范围, 例如
/<html>/, /<\html>/
表示该标签内的文本 - visual: 利用
', <, >
来表示当前选择的文本范围
Operator
帮助文档: help :put, help :d, help :yank
所有选区范围的操作,非常像可视模式选定范围之后的操作,只不过更快捷而已.
Register
[range] Operator {register}
- delete/d: 删除, 例如: 1,2d
- yank/y: 拷贝, 例如拷贝前面几行到寄存器 a 中: 1,2y a, 之后在 ex 中获取 a 内容:
<C-R>a
- put: 输出到指定的位置, 例如输出寄存器 a 内容到第 3 行: 3put “a
- print/p: 输出寄存器的信息到当前 Ex
Address
[range] Operator {address}
- copy/co: 拷贝指定的信息到指定的地址, 例如: 1,3co 8
- move/mo: 移动
- join: 连接多行内容
Command
format: [range] Operator {Command}
见: help multi-repeat 文档说明
- Cmd: 例如: %normal A; 表示在文件的所有行末尾增加’;’字符
- [range] global/{pattern}/[cmd]; 匹配并执行普通命令
- [range] substitute/{pattern}/{string}/[flags]: 替换, 例子:%s/bamboo/donkey/g
Example
1 | '<,'>,: 高亮选区所选定的范围,之后添加命令即可,和gv联用非常棒 |
ex 命令高级用法
对匹配的文本执行需要的 ex 命令,其命令格式为:g/{pattern}/v/{pattern1}/{cmd}
,注意,在递归使用时, 不能给出 range, 仅仅用于全文本, 仅仅最后一个匹配时才会执行 cmd 命令。
- [range] g[lobal]/{pattern}/{cmd}: 在 range 范围的文本内, 对匹配的文本进行 cmd 命令
- [range] g[lobal]!/{pattern}/{cmd}: 在 range 范围的文本内, 对不匹配的文本进行 cmd 命令
- [range] v[global]/{pattern}/{cmd}: 在 range 范围的文本内, 对不匹配的文本进行 cmd 命令
如果希望在命令行执行非 ex 命令,则需要使用:normal 来实现, 格式: g/pat/normal {commands}
Example
复制光标字符
1 | " 在Ex模式下: |
历史记录
设置历史记录: set history=32
获取上一条 ex 命令:UP 键
命令行窗口: 一个常规的 vim 缓冲区,每一行内容都是 vim 的 ex 记录, 命令
1 | q: " 普通模式下输入获取ex历史记录 |
3.3 自动补全
- Tab 键两次
- CTRL + B 获取所有补全项
shell 命令
说明:在 vim 中执行 shell 命令
1 | ! {cmd} " 执行cmd命令 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 狂想写作本!
评论