The Bang Command
!
- 将外部命令的STDOUT读入当前缓冲区。
:r !cmd
:r is Vim's read command
:r !curl -s 'https://jsonplaceholder.typicode.com/todos/1'
read the data from the curl command
:10r !cat file1.txt
accepts an address
- 将缓冲区的内容作为STDIN写入外部命令。
:w !cmd
当使用:w命令时,Vim使用当前缓冲区中的所有文本,类似于全局命令。也可以在前面指定范围
- 从Vim内部执行外部命令
:!cmd
Filtering Texts
:.!tr '[:lower:]' '[:upper:]'
使用tr (translate)命令大写当前行。
- .!
在当前行上执行筛选命令。 - !tr '[:lower:]' '[:upper:]'
调用tr命令将所有小写字符替换为大写字符
传递一个范围作为过滤器来运行外部命令是必要的。所以要用“.”
:%!awk "{print $1}"
删除第二列
- :%!
在所有行执行filter命令 - awk "{print $1}"
prints only the first column of the match
:%!awk 'NR > 1' | sort -nk 3 | column -t
根据价格对它们进行排序,并且只显示具有均匀间距的菜单
- awk 'NR > 1'
只显示从第2行开始的文本。 - sort -nk 3
使用列3 (k 3)中的值进行数字排序(n)。 - column -t
以均匀的间距组织文本。