美文网首页Vim学习程序员
在vim中执行shell命令

在vim中执行shell命令

作者: 沈祥佑 | 来源:发表于2019-03-22 19:16 被阅读25次

    在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敲命令的区域 
    

    5.

    特殊的可以下面这么用

    :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行的内容,注意其中的区别。
    

    相关文章

      网友评论

        本文标题:在vim中执行shell命令

        本文链接:https://www.haomeiwen.com/subject/zozrvqtx.html