欢迎光临散文网 会员登陆 & 注册

oeasy教您玩转vim - 86 - # 外部命令external Command

2022-01-16 12:12 作者:oeasy  | 我要投稿

外部命令  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:]'

    • 调用外部命令把小写字母translate成大写字母

    • 当前行执行外部命令`

    • .!

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

  • :%!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的评论 (共 条)

分享到微博请遵守国家法律