外部命令 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配合呢?🤔
- 下次再说!




浙公网安备 33010602011771号