SAS增强编辑器:提交代码块而不手动突出显示

SAS增强编辑器:提交代码块而不手动突出显示,sas,Sas,我很少需要提交完整的.sas文件。相反,我一次提交一个步骤。这意味着我一直在强调代码 问题:有没有办法让SAS提交代码块而不手动突出显示 刮伤工作: Emacs ESS具有“评估此段落和步骤”命令C-C-p。一种解决方案是使用ESS而不是增强的编辑器。但是,我正在使用SAS for Windows,它目前似乎没有与ESS的交互功能 有一个命令可用于提交前n行代码。但是,SUBTOP似乎无法在整个文档中的任意位置提交代码 用空行分隔步骤似乎是SAS的标准做法。这意味着一段代码可以定义为两个不连续

我很少需要提交完整的.sas文件。相反,我一次提交一个步骤。这意味着我一直在强调代码

问题:有没有办法让SAS提交代码块而不手动突出显示


刮伤工作:

Emacs ESS具有“评估此段落和步骤”命令
C-C-p
。一种解决方案是使用ESS而不是增强的编辑器。但是,我正在使用SAS for Windows,它目前似乎没有与ESS的交互功能

有一个命令可用于提交前n行代码。但是,SUBTOP似乎无法在整个文档中的任意位置提交代码


用空行分隔步骤似乎是SAS的标准做法。这意味着一段代码可以定义为两个不连续的空行之间的文本。

我不知道有什么直接的方法可以做到这一点。然而,有一些有用的选择

首先,如果您在增强编辑器中,可以使用键使用代码折叠功能展开/收缩代码块

Alt+连字符(Alt-)折叠当前块。然后,Shift+(向下箭头)高亮显示整个块(现在是一行),F8(或指定的功能键,如果不同)提交该块

其次,如果使用程序编辑器,请启用从窗口中删除已执行代码的功能;然后您可以有效地使用SUBTOP


第三,你可以考虑用不同的方式构造你的程序。如果您通常需要分块运行,那么每个部分都可以是一个单独的程序。《企业指南》使其特别易于管理;每个程序都有自己的输出选项卡和日志。一个流程=一个“旧”程序,每个实质性步骤都是一个单独的实际程序文件(但您更愿意运行);然后右键单击要运行的步骤并选择提交即可运行。

在EMACS中识别和提交代码需要多少次击键和手部动作。你必须把你的右手从鼠标上移开吗

以下内容仅适用于旧文本编辑器

我很确定你可以编写一个命令宏,但是你需要将光标移动到段落的开头,然后点击功能键或鼠标按钮

macro 
 mark;find <empty line> unmark;store;submit past buffer
您需要在功能键或鼠标按钮上放置一个如下所示的宏

macro 
 mark;find <empty line> unmark;store;submit past buffer
宏
做记号找不到标记;储存;提交过去的缓冲区
我可以在不触碰键盘的情况下快速提交一段代码

我的右手通常在老鼠身上 我的食指是鼠标左键,食指是鼠标右键 使用食指突出显示代码提交代码而不移动食指 使用右手按钮上方的食指


提交应在RMB上

简短的回答是否,在SAS中无法使用单个按键提交代码块

让我解释一下原因

文本区域由光标的两个方面确定:点和标记。点是光标相对于文件开头的当前位置。标记是包含光标可能位置的变量。区域是点和标记之间的文本

提交代码块可以看作是一个两步过程:

  • 选择一个区域
  • 将所选区域提交给编译器
  • 要将此过程绑定到单个键,需要能够使用代码选择区域。这将是如下的事情

  • 创建一个命令样式宏,该宏可能首先选择一个区域 使用
    FIND
    查找块的末尾(搜索 回车、换行、“运行”语句等)
  • 设定目标
  • 将点移动到区域的起点
  • 选择区域
  • 使用
    SUBMIT
    GSUBMIT
    END
    命令执行区域
  • 编译宏并使用
    KEYS
    菜单将其绑定到功能键
  • 这有两个问题

    首先,无法使用代码在增强编辑器(EE)中设置标记。如果没有标记,则无法定义区域,并且上述过程失败。@guest引用的
    MARK
    命令仅适用于程序编辑器。要查看此信息,请尝试按Ctrl+M键或从EE中的命令行发出标记命令。您将收到以下消息:

    ERROR: The MARK command is not supported by the Enhanced Editor. 
    
    其次,不清楚如何使用代码选择一个地区。所有这一切的结果都是完全不同和不完整的。由于没有办法设定目标,我没有花太多时间研究如何选择

    然而,更有趣的是,在EE中使用。我无法理解这与
    标记
    命令有何区别。也可以选择一个区域。虽然似乎缺少用于设置标记和选择的代码命令,阻止了我们创建单个击键提交,但键盘宏使我们能够开发两个击键的方法

    提交代码 在
    Tools>Options>Preferences>Results
    下,我选中了“在生成结果时查看结果”。这将强制结果窗口在提交代码后占据前台

    在按键屏幕中,我有以下内容:

    Key  Definition
    ---  ----------
    F3   clear log; end; log; wpgm;
    F4   clear log; end;
    
    当我按下F3键时

    • 日志已清除(
      清除日志;
    • 所选区域已提交(
      end;
    • 日志窗口被选中(
      log;
    • 选择最近的程序窗口(
      wpgm;
    这意味着结果不会立即显示给我,请取消上面设置的首选项设置。如果我想查看结果,我改为按
    F4
    。这会清除日志并提交代码,但不会