《Practical Vim》第五章:命令行模式

前言

出于历史原因,命令行模式又叫 Ex 模式,它具有的功能有:

  1. 读写文件:比如 :edit, :write 等等
  2. 创建标签页或者窗口:比如 :tabnew :split
  3. 操作缓存区,比如: bnext
  4. 编辑文本

本章主要介绍对编辑文本的相关的 Ex 命令

调出 Ex 模式

总共有三种方法调出 Ex 模式:

  1. 一般的格式是通过 ":" 输入指令,然后按<CR>进行进行执行.
  2. “/”用于调出查找提示符
  3. = 调出表达式寄存器

编辑文本的 Ex 命令的格式

种类

Ex 命令的影响范围广且距离远,是因为与普通模式相比,它可以对一个命令指定其 [range] 和 {address}
命令有:

  • :[range]delete [x]
  • :[range]yank [x]
  • :[line]put [x]
  • :[range]copy {address}
  • :[range]move {address}
  • :[range]join
  • :[range]normal {commands}
  • :[range]substitute/{pattern}/{string}/[flags]
  • :[range]global/{pattern}/[cmd]

[range]:在多个连续行执行命令

格式:

:[start, end] 命令
其中 start, 和 end 都是地址,其可以用表示地址的行号、符号、查找模式来表示.

Ex 命令中表示地址的语法

  • 1 : 文本的第一行
  • $ : 文本的最后一行
  • 0 :文本的第 0 行
  • . : 光标所在行
  • ’m :包含位置标记“m"的行
  • '< :高亮选区的起始行
  • ‘> :高亮选区的结束行
  • % : 整个文件

常用技巧

技巧29 :使用’ :t ‘ & ’:m' 复制和移动行

格式: 

  • :[range]t {address}
  • :[range]m {address}

功能是将 [range] 内的行移动到 {address} 处.copy 用于复制, move 用于移动.

技巧30: 在指定范围上执行 normal 命令

格式:
:[range] normal [cmd]
举例:比如在一个 JavaScript 文件中要对选中的行的末尾都添加“;” , 可以执行 :'<'> normal A; 命令

命令行窗口

调出命令行窗口

调出方式有三种:

  1. 使用 q: 可以调出命令行窗口
  2. 使用 q/ 打开查找命令历史的命s行窗口

重复上一次的 Ex 命令

方法一:执行过的 Ex 命令会储存在 : 的寄存器中,因此可以通过 @: 命令执行上一次的 Ex 命令
方法二: 按键盘上的 up\ down 键,可以执行上一次的 Ex 命令
方法三: 打开命令行窗口,可以执行上一次的命令行命令.





posted @   FBshark  阅读(131)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示