2013-03-08 151 views

回答

3

這有點粗糙,但它是我用來啓動外部程序 (包括bash腳本)。當我以前在Win + Cygwin上工作時,我也在bash腳本中有一個包裝,但是我忘記了爲什麼我需要這個。

但請記住,您始終可以將特定操作綁定到項目 (構建,編譯等),您始終可以添加自己的項目 - >屬性 - >工具 - >新建。所有這些命令都可以在過程窗口中執行

#include "slick.sh" 

static _str mytmp='/tmp/myvstmp.txt' 


_command git_annotate(_str filename='') name_info(',' VSARG2_MACRO) 
{ 
    if (filename=='') { 
     filename=p_buf_name; 
    } 
    curr_line=p_line; 

    delete_file(mytmp); // make sure we dont get old file 
    if(file_match(mytmp,'1')==mytmp) { 
     message('Tmp file delete failed! ('mytmp') change permissions and if still failing - restart vs'); 
     return 1 
    } 

    shell('/usr/bin/git blame -s 'filename' | sed "[email protected]^\(.\{8\}\) [^)]*) @\1 @" >'mytmp, 'p'); 

    if(file_match(mytmp,'1')!=mytmp) { 
     message('Annotate failed'); 
     return 1 
    } 

    status=edit('-w 'mytmp); 
    if (status) { 
     message('Error opening output file for display.'); 
     return 1 
    } 

    goto_line(curr_line+1); 

    // keep disk clean 
    p_buf_flags |= VSBUFFLAG_THROW_AWAY_CHANGES; 
    name("* annotate output *" filename, false); 
    delete_file(mytmp); 
}