外部命令 external

回忆

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

    • range 是执行的范围
    • pattern 是搜索的模式
    • command 执行的命令
  • 命令有很多

    • d 删除
    • m 移动
    • t 拷贝
    • p 打印
    • s 替换
    • sort 排序
    • update 更新
  • global 是很好用的内部命令
  • 据说vim还可以执行外部命令呢?!
  • 怎么玩呢?

回忆外部命令

  • :!ls

    • 在命令行列表
  • :!python %

    • 运行python程序额
  • :!javac %

    • 编译java程序

r读取

  • :r oeasy.txt
  • :r !ls
  • :r !ls -lah
  • :r !cat oeasy.txt
  • :r !curl -s 'http://oeasy.org'
  • 这样就可以把各种信息直接读到vim中了

我杀死我自己

  • :!ps

  • :!kill -9 341

tr命令translate

  • :.!tr '[:lower:]' '[:upper:]'

    • .!

      • 当前行执行外部命令`
    • !tr '[:lower:]' '[:upper:]'

      • 调用外部命令把小写字母translate成大写字母
  • :%!tr '[:lower:]' '[:upper:]'

    • 全部行都执行
  • :1,2!tr '[:lower:]' '[:upper:]'

    • 1、2行执行

awk

  • awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan

  • :%!awk '{print $1}'
  • u回来
  • 再试试:%!awk '{print $2}'

管道pipe

  • :%!awk 'NR > 1' | sort -nk 3 | column -t

    • %! 执行范围range是所有行
    • awk 'NR > 1' 从第二行开始awk
    • | 管道
    • sort -nk 3 使用第3列进行排序
    • column -t 用空格隔开

总结

  • 这次我们尝试了一下各种在vi中执行外部程序

    • 可以排序
    • 可以改大小写
    • 还可以用管道
    • 直接对于缓冲buffer文件进行操作
    • 还是很方便的
  • 其实还有一个外部命令很重要

    • 根据内容搜索grep
    • 这个怎么和vim配合呢?
  • 下次再说!

oeasy教您玩转vim - 86 - # 外部命令external Command的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  7. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  9. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. 联网安装与源码安装mysql

    一.卸载mariadb的rpm包 1.首先,你需要找出已安装的MariaDB包的具体名称.可以使用以下命令列出所有已安装的MariaDB包: rpm -qa | grep mariadb 2.删除命令 ...

  2. objectarx acedInitGet的使用

    int rc;TCHAR keyword[20]; acedInitGet(NULL, TEXT("U Y O"));rc = acedGetPoint(ptPre, L" ...

  3. WPF多显示器问题 - WindowState

    标签 wpf multiple-monitors 一段时间以来,我一直试图让我的 WPF 应用程序跨越多个监视器,并且几乎可以正常工作.当我设置以下行时,问题似乎出现了: win1.WindowSta ...

  4. kubernetes ingress网站发布

    ingress网站发布 单域名 # 1.创建nginx pod 名称: nginx-nodeport.yaml cat nginx-nodeport.yaml apiVersion: v1 kind: ...

  5. mysql binlog故障演练

    mysql备份恢复 mysqldump备份 企业故障恢复案例: 正在运行的网站系统 mysql数据库 数据量25G,日业务量10-15M 备份策略: 每天晚上23点通过计划任务调用mysqldump执 ...

  6. ABC342

    E 建反图 + 拓扑排序. 先求出直接与 \(n\) 连接的点的答,就是最后一辆车的发车时间.然后再做拓扑排序. 假如我们知道点 \(u\) 的答案为 \(ans_u\) 并且 \(u,v\) 相连, ...

  7. Codeforces Round 923 (Div. 3) 比赛记录

    Codeforces Round 923 (Div. 3) 这是我第二次参加 cf阴间场. 10 minutes ago: 这次报名人数超过 4 万,一开始网站就崩溃了,比赛延迟了 10 分钟..开局 ...

  8. C# .NET MVC 表单提交前校验数据等

    页面上写2个button,一个普通button,另一个是submit,submit的这个隐藏.校验函数写在普通button里,普通button click函数中去提交表单. 页面: <input ...

  9. golang sync.Map 与使用普通的 map 的区别

    使用sync.Map与普通的Go map主要有以下几点区别: 1. 并发安全性 普通map: 在没有外部同步的情况下,不是并发安全的.在多goroutine访问时,如果没有适当的锁或其他同步机制保护, ...

  10. nordic的nrf52系列——ADC在使用时如何校准增益误差(基于SDK)

    简介:ADC在实际使用的时候都要进行误差校准,那Nordic的nrf52系列如何进行校准,如果不校准又有什么影响尼,接下来我将通过实验进行测试,验证不校准和校准的影响(本测试的基础是,默认输入阻抗和采 ...