oeasy教您玩转vim - 86 - # 外部命令external Command
外部命令 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的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- 联网安装与源码安装mysql
一.卸载mariadb的rpm包 1.首先,你需要找出已安装的MariaDB包的具体名称.可以使用以下命令列出所有已安装的MariaDB包: rpm -qa | grep mariadb 2.删除命令 ...
- objectarx acedInitGet的使用
int rc;TCHAR keyword[20]; acedInitGet(NULL, TEXT("U Y O"));rc = acedGetPoint(ptPre, L" ...
- WPF多显示器问题 - WindowState
标签 wpf multiple-monitors 一段时间以来,我一直试图让我的 WPF 应用程序跨越多个监视器,并且几乎可以正常工作.当我设置以下行时,问题似乎出现了: win1.WindowSta ...
- kubernetes ingress网站发布
ingress网站发布 单域名 # 1.创建nginx pod 名称: nginx-nodeport.yaml cat nginx-nodeport.yaml apiVersion: v1 kind: ...
- mysql binlog故障演练
mysql备份恢复 mysqldump备份 企业故障恢复案例: 正在运行的网站系统 mysql数据库 数据量25G,日业务量10-15M 备份策略: 每天晚上23点通过计划任务调用mysqldump执 ...
- ABC342
E 建反图 + 拓扑排序. 先求出直接与 \(n\) 连接的点的答,就是最后一辆车的发车时间.然后再做拓扑排序. 假如我们知道点 \(u\) 的答案为 \(ans_u\) 并且 \(u,v\) 相连, ...
- Codeforces Round 923 (Div. 3) 比赛记录
Codeforces Round 923 (Div. 3) 这是我第二次参加 cf阴间场. 10 minutes ago: 这次报名人数超过 4 万,一开始网站就崩溃了,比赛延迟了 10 分钟..开局 ...
- C# .NET MVC 表单提交前校验数据等
页面上写2个button,一个普通button,另一个是submit,submit的这个隐藏.校验函数写在普通button里,普通button click函数中去提交表单. 页面: <input ...
- golang sync.Map 与使用普通的 map 的区别
使用sync.Map与普通的Go map主要有以下几点区别: 1. 并发安全性 普通map: 在没有外部同步的情况下,不是并发安全的.在多goroutine访问时,如果没有适当的锁或其他同步机制保护, ...
- nordic的nrf52系列——ADC在使用时如何校准增益误差(基于SDK)
简介:ADC在实际使用的时候都要进行误差校准,那Nordic的nrf52系列如何进行校准,如果不校准又有什么影响尼,接下来我将通过实验进行测试,验证不校准和校准的影响(本测试的基础是,默认输入阻抗和采 ...