Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601624
  • 博文数量: 69
  • 博客积分: 2204
  • 博客等级: 大尉
  • 技术积分: 808
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-11 22:37
个人简介

..微笑着看着杯中的花茶一片片撑开.. ..透明的花瓣里水破开的声音很轻微..

文章分类

全部博文(69)

文章存档

2018年(1)

2017年(2)

2016年(10)

2015年(8)

2014年(6)

2013年(6)

2012年(4)

2011年(8)

2010年(12)

2009年(12)

分类: LINUX

2016-01-06 11:15:39

[向原文致敬]:http://blog.csdn.net/topgun_chenlingyun/article/details/8013115

vim中执行shell命令,有以下几种形式


1):!command


不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容


例如


:!ls -l


特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim


2):r !command


将shell命令command的结果插入到当前行的下一行


例如


:r !date,读取系统时间并插入到当前行的下一行。


3):起始行号,结束行号 !command


将起始行号和结束行号指定的范围中的内容输入到shell命令command处理,并将处理结果替换起始行号和结束行号指定的范围中的内容


例如


:62,72 !sort,将62行到72行的内容进行排序


可以只指定起始行,例如:62 !tr [a-z] [A-Z],将62行的小写字母转为大写字母


当前光标所在行,除可以指定行号外,也可以用.表示,例如:. !tr [a-z] [A-Z],将当前行的小写转为大写


4):起始行号,结束行号 w !command


将起始行号和结束行号所指定的范围的内容作为命令command的输入。不会改变当前编辑的文件的内容


例如


:62,72 w !sort,将62行到72行的内容进行排序,但排序的结果并不会直接输出到当前编辑的文件中,而是显示在vim敲命令的区域


特殊的可以下面这么用


:62 w !bash,将会把第62行的内容作为bash命令来执行并显示结果,而且不会改变当前编辑的文件的内容


同样的:. w !bash,将当前行的内容作为bash命令来执行


例如52行内容为ls -l


那么输入:52 w !bash就跟执行!ls -l是一样的效果,如果你用的shell是bash shell


如果输入的是:52 !bash,那么会把第52行的内容也就是ls -l作为命令执行,同时命令的输出结果会替换第52行的内容,注意其中的区别。


阅读(602) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~