在SlickEdit窗口中运行终端/ shell?

时间:2013-03-08 22:35:40

标签: slickedit

我想在Slick Edit的“普通”文档窗口中运行bash shell。

至少我会满足于运行命令并将所有输出捕获到文档窗口中。更好的是能够在该窗口中以交互方式使用shell。

1 个答案:

答案 0 :(得分: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 "s@^\(.\{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);
}