命令也被称作是motion



:help !


Filter commands 


信息过滤 (filter)

!==>tell vim to performing a filter operation

!5G -> 从光标下向下5行执行过滤程序 (tell vim to start filter under cursor and go down 5 lines)

:.,.+4!


:10,15!sort -> 只在文件的第10行到第15行之间执行 (sort between line 10 to 15)

!! -> (filter the current line)

:.,$!sort (sort from current line to end) 


!!date -> 插入当前时间 (insert current date)




A filter is a program that accepts text at standard input, changes it in some

way, and sends it to standard output.  You can use the commands below to send

some text through a filter, so that it is replace by the filter output.

Examples of filters are "sort", which sorts lines alphabetically, and

"indent", which formats C program files (you need a version of indent that

works like a filter; not all versions do).  The 'shell' option specifies the

shell Vim uses to execute the filter command (See also the 'shelltype'

option).  You can repeat filter commands with ".".  Vim does not recognize a

comment (starting with '"') after the ":!" command.




:! -> 直接运行shell中的一个外部命令 (call any external program) 

===============

*21.2*  执行 shell 命令

从 Vim 内部执行单个 shell 命令,用 ":!{command}"。例如, 要显示目录表:        :!ls        :!dir第一行用在 Unix 上,第二行用于微软视窗.
   Vim 将执行该程序。当它结束时,你会得到提示, 让你击打 <Enter>. 这提示允许你
在回去编辑你的文本之前看一看该命令的输出.
   字符 "!" 也用在其它有个程序被调用运行的场合。让我们看一看共有哪些:

        :!{program}             执行 {program}
        :r !{program}           执行 {program} 并读取其输出
        :w !{program}           执行 {program} 传送文本至其输入
        :[range]!{program}      经由 {program} 过滤文本

注意 "!{program}" 前面那个作用区产生的区别可大了。不附带作用区,这个程序就跟
通常一样被执行,而加了这个作用区, 作用区内的文本行就经由该程序过滤而出.