上次研究的是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配合呢?樂下次再说!



