使用Emacs执行外部shell命令

来源:互联网 发布:淘宝店铺代运营方案 编辑:程序博客网 时间:2024/04/20 05:52

执行shell命令

  • shell-command(M-!)

    若调用的shell命令输出不多,则直接输出在echo area,否则会输出到*Shell Command Output* buffer

    shell命令stderr输出默认被重定向到stdout输出到*Shell Command Output* buffer. 你也可以通过设定变量`shell-command-default-error-buffer`的值将stderr的输出重定向到指定的buffer

    若shell命令执行失败(返回值不会0),则会在mode-line显示shell命令的返回值

    默认情况下Emacs会同步等待shell命令执行完成,若要Emacs异步等待shell命令,在shell命令后加&表示后台运行

    若在执行该命令前用C-u传递了universal参数,则会将结果插入到当前buffer的光标处

  • async-shell-command(M-&)

    异步处理shell命令,命令输出到*Async Shell Command* buffer

    若在执行该命令前用C-u传递了universal参数,则会将结果插入到当前buffer的光标处

  • 变量`enable-recursive-minibuffer`

    该变量值为t,则当要在minibuffer中输入某个参数时,可用用M-!执行一个shell命令,则会将该shell命令的输出作为minibuffer的待输入参数.

  • 变量`shell-command-default-error-buffer`

    你也可以通过设定变量`shell-command-default-error-buffer`的值将stderr的输出重定向到指定的buffer

  • shell-command-on-region(M-|)

    将所选区域通过stdin传递到shell命令中,并在echo area或output buffer中显示命令的输出

    若在执行该命令前用C-u传递了universal参数,则会将结果替代该region

0 0
原创粉丝点击