oeasy教您玩转vim – 85 – # 全局命令

全局命令 global

回忆

  • 可以定义自己的命令command
  • 也可以执定义的命令
  • 可以修改除命令
  • 命令可以带上
    • 参数 argument
    • 范围 range
  • 除了自定义命令之外
  • 系统也有一些built-in的命令
  • 系统有什么好玩的命令么?

global全局命令

  • :h global
  • :[range]globallinux系统/{pattern}/{command}

  • 如果在这个范围里面5g和4g有什么区别
  • 匹配这个模式
    • :global
  • 或者不匹配这个模式
    • :g!:v
  • 就执行这个命令
  • 我们来看个例子

先搜再

  • 源代码如下
const oeasy = 1;
console.log("oeasy: ", oeasy);
const o2z = 2;
console.log("o2z: ", o2z);
const o3z = 3;
console.log("o3z: ", o3z);
  • :g/console/d

    • 把所有带console的行都删除
  • :g/const/d

    • 把所有带linuxconst的行都删除
    • 整行删除
    • 删完之后<kbd>u</kbd>回来
  • :g/console/搜索文件d _

    • 删除带console行之后
    • _ 的意思是将结果放入黑洞寄存器
  • :g/console/d|update

    • 删除完成之后
    • |update 进行保存

切换分割符

  • :g@console@d

    • 把分隔符从/变成`@``
  • 什么不能当分割符
    • 大小写字符
    • 数字
    • ", |, \
  • 什么可以当分隔符
    • :5g影视龄确认免费观看g=console=d
    • :g?console?d
  • :g+//+s/oeasy/o1z/g

    • g
      • global全局命令搜索
      • 分割符
    • //
      • 3c认证查询找的模式为//
    • s/oeasy/o1z/g
      • s的意思是subtitute
      • 把这些行中的oeasy换成o1z
      • 并且是global5g消息替换,全都替系统运维工作内容
      • 完成批量替换
    • 把所有包含//行中,把linux操作系统基础知识oeasy全部替换为o1z

反转模式


                                            oeasy教您玩转vim - 85 - # 全局命令

  • :g/console/d

    • 把所有带console的行都删除
  • :v/console/d

    • 把所有3ce是什么牌子不带console的行都删除
  • :g!/console/d

    • g!v一样


                                            oeasy教您玩转vim - 85 - # 全局命令

匹配模式


                                            oeasy教您玩转vim - 85 - # 全局命令

  • 我们猜猜下面的命令会删除那些行?
  • :3c产品是什么意思g/o2z\|o3z/d
  • :g/linux操作系统基础知识[0-9]/d:g/\d/d

删除空行

  • :g/^$/d

    • ^$开头之后就是结束
    • 没有任何字符的行
    • 就delete删掉
  • :g/^\s*$/d

    • ^$开头结尾之间只有空格和tab
    • 没有任何其他字符
    • 就delete3cr13是什么材料删掉


                                            oeasy教您玩转vim - 85 - # 全局命令

配合范围range

  • :1,5g/console/d

    • 从1到5行
    • 出现console的行
    • 删除
  • :.,5g/console/d

    • 从当前行linux到第5行搜索明蕴镇任务怎么做
  • :3,.g/console/d

    • 从3到当前行
  • :3g/conso5g探花le/d

    • 只搜索第3行
  • 特定行
    • . 当前行
    • $ 末行
    • +n 当前行之后的第n行

再来一个

const oneMillion = tps://www.fons.com.cn/tag/100" target="_blank">1000000;
const oneThousand = 1000;
const one = 1;
  • :g/0\{3,6\}/d
  • 出现3到6个零的行
  • <kbd>u</kbd>回来
  • 可以把数值分别调整一下
    • :g/0\{4,6\}/d

执行命令command


                                            oeasy教您玩转vim - 85 - # 全局命令

  • :g/.*/normal A;

    • .linux*代表有0到任意多个非空字符
    • 空行^$有0个字符也满足
    • normal A; 每一行都在结尾加分号;
  • :g/./normal A;

    • .代表有一个字符,任意字符都可以
    • 空行^$一个字符都没有,不满足
    • 非空行 normal A; 在结尾加分号;

执行宏m搜索历史acro

const oeasy = 1
console.log("oeasy: ", oeasy);
const o2z = 2
console.log("o2z: ", o2z);
const o3z = 3
console.log("o3z: ", o3z);
  • qaA;&l3cet;Esc&5g网络amp;gt;q

    • 定义一个宏macro叫做a
    • a的功能就是A;<Esc>搜索;
    • 系统运维工程师行尾插入分号然后退出回到正常模式
  • :reg3c数码 a

    • 查看宏a
  • :g/const/normal @a

    • const

      • 对于可以匹配const的行
    • nlinux系统ormal @a

      • 正常模式下执行宏a
  • :2,$g/const/normal @a

    • 2,$

      • 从第2行到末行
    • const

    • :normal @a

      • 正常模式搜索下拉帝搜软件sem880官网下执行宏a

递归使用全局命令

const oeasy = 1
console.log("oeasy: ", oeasy);
const o2z = 2
console.log("o2z: ", o2z);
const o3z = 3
console.log("o3z: ", o3z);
  • :g/console/g/two/d

    • 先搜包含console的所有行
    • 在搜索结果中搜o2z
    • 找到的结果删除
  • <kbd>u</kbd>回来
  • :g/console/v/tw5g消息o/d

    • 先搜包含con5g视觉确认年满十八sole的所有行
    • 在搜索结系统/运维果中搜不包含o2z的
    • 找到的结果删除

打印命令print


                                            oeasy教您玩转vim - 85 - # 全局命令

  • :g/const/p

    • 找到匹配const模式的行
    • 打印print


                                            oeasy教您玩转vim - 85 - # 全局命令

移动命令mov5g网络什么时候普及e

  • :g/^/m 0

    • 行的开头,所有5g网络什么时候普及的行都符合,包括空行
    • m 移动 move
    • 0 移动到第0行 最初
  • 每一行都要挪到第一
  • 最后一行最后执行
  • 整体就是上下颠倒

复制命令co3c认证查询py 或 t

const oeasy = 1
console.log("oeasy: ", oeasy);
// TODO oeasy
const o2z = 2
console.log("o2z: ", o2z);
// TODO o2z
const o3z = 3
console.log("o3z: ", o3z);
// TODO o3z
  • :g/TODO/t $

    • 包含TODO的行选中
    • 执行t $ 拷贝到末行
  • :g/TODO/m 0

    • 把TODO行都移动到最系统运维工程师上面

排序命令sort

const arrayA = [
"h",
"b",
"f",
"d",
"e",
"a",
"c",
]
  • :g/\[/+1,/\]/-1sort
  • 在这个中括号的范围内
  • 排序

总结

  • 这次研究的是global
  • :[range]global/{pattern}/{command}

    • range是执行的范围
    • pat系统/运维tern是搜索的模式
    • command执行的命令
  • 命令有很多
    • d3cr13是什么材料 删除
    • m 移动
    • t 拷贝
    • p 打印
    • s 替换
    • sort 排序
    • update 更新
  • glolinux删除文件命令bal是很好用的内部命令
  • vi5Gm还可以执行外部命令呢!
  • 怎么玩呢?
  • 下次再说!