在VI中编辑多部分案例陈述

时间:2012-09-26 22:18:26

标签: text vi textblock

因此,我们的警报平台生成基于SNMP MIB的专有代码。如果你不熟悉SNMP,不要担心,这个问题只是切线相关。代码最终看起来像这样:

case ".1.3.6.1.4.1.5555": ## This is the OID for that specific device type, this switch/case began in the main file.
    switch ($specific-trap): {
        case "10": ## The specific alarm
            # Alarm-specific code
            @Identifier = $enterprise + "." + $specific-trap
        case "11": ## A different alarm
            # Alarm-specific code
            @Identifier = $enterprise + "." + $specific-trap
        case "12": ## A different alarm
            # Alarm-specific code
            @Identifier = $enterprise + "." + $specific-trap
        case "20": ## clears specific-trap 10
            # Alarm-specific code
            @Identifier = $enterprise + "." + $specific-trap
        case "21": ## clears 11
            # Alarm-specific code
            @Identifier = $enterprise + "." + $specific-trap
        case "22": ## clears 12
            # Alarm-specific code
            @Identifier = $enterprise + "." + $specific-trap
        default:
            ## what happens if the alarm isn't found
    }

我需要做的是使用警报并清除@Identifier(唯一键),因此它们会相互覆盖。因此,例如,第一种情况应如下所示:

    case "10": ## The specific alarm
        # Alarm-specific code
        @Identifier = $enterprise + ".10-20"

和“20”的情况将设置相同。

我通常只是浏览文件并手工编辑这些文件,但如果有数百个陷阱,这可能会变得乏味。我错过了一些我可以做到的简单的VI技巧吗?我想到的一切都行不通,因为$ specific-trap值与@Identifier不在同一行。

我考虑过编写一个Perl脚本来处理它,但我很懒。我认为可能有一些VI魔术可以轻松实现。

0 个答案:

没有答案