Vim 外部命令external Command详解

回忆

回忆外部命令

  • :!ls
    • 在命令行列表
  • :!python %
    • 运行python程序额
  • :!javac %
    • 编译java程序

r读取

  • :r oeasy.txt
  • :r !ls
  • :r !ls -lah
  • :r !cat oeasy.txt
  • :r !curl -s 'http://oeasy.org'

我杀死我自己

  • :!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配合呢?🤔
  • 下次再说!

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

React实战进阶45讲 -〔王沛〕

如何设计一个秒杀系统 -〔许令波〕

许式伟的架构课 -〔许式伟〕

Python核心技术与实战 -〔景霄〕

Elasticsearch核心技术与实战 -〔阮一鸣〕

JavaScript核心原理解析 -〔周爱民〕

实用密码学 -〔范学雷〕

云原生架构与GitOps实战 -〔王炜〕

大型Android系统重构实战 -〔黄俊彬〕