2013-10-18 89 views
1

在許多其他編輯器中,當您錄製宏時,您可以反覆運行該宏。但是,在科莫多編輯中,沒有這樣做的選項。在科莫多編輯中,你如何重複一次宏X次,或重複一個宏到文件末尾?如何在科莫多編輯中重複一個宏?

NotePad++ lets you repeat a macro

記事本+ +讓你重複宏

Komodo Edit doesn't have that option in the menu

科莫多編輯沒有在菜單選項

回答

1

以下是如何這樣做在一個宏(我稱之爲我的「運行當前的宏觀結束的文件」):

var currentMacro = ko.macros.recorder.currentMacro; 
if (!currentMacro || !currentMacro.length) { 
    alert("There is no current macro to execute"); 
    return; 
} 
var view = ko.views.manager.currentView; 
var scimoz = view.scimoz; 
var startingLine = scimoz.lineFromPosition(scimoz.currentPos); 
var i = 1; 
scimoz.beginUndoAction(); 
try { 
    while (true) { 
     ko.macros.recorder.executeLastMacro(); 
     let newPos = scimoz.currentPos; 
     let newLine = scimoz.lineFromPosition(newPos); 
     if (newLine <= startingLine) { 
      newLine = startingLine + 1; 
     } 
     startingLine = newLine; 
     if (startingLine >= scimoz.lineCount) { 
      break; 
     } 
     scimoz.gotoPos(scimoz.positionFromLine(startingLine)); 
    } 
} finally { 
    scimoz.endUndoAction(); 
} 

你也可以有宏調用其他宏,但那是更復雜一點。

2

您可以重複宏X量通過使用「代碼>重複下一次按鍵N次」菜單項的時間。沒有選項重複當前的宏,直到文件結束,但爲此記錄了一個增強請求(我剛碰到並希望在我們的下一個主要版本中看到):http://bugs.activestate.com/show_bug.cgi?id=76022

0

首先記錄一個宏。 (單一行動)。
編輯(使用JavaScript或Python) 實施例的宏的源代碼:文本文件
ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC

記錄的宏代碼:

komodo.assertMacroVersion(3); 
if (komodo.view) { 
    komodo.view.setFocus(); 
} 
    ko.commands.doCommand('cmd_home') 
    ko.commands.doCommand('cmd_right') 
    ko.commands.doCommand('cmd_right') 
    komodo.view.selection = ' - '; 
    ko.commands.doCommand('cmd_lineNext') 
    ko.commands.doCommand('cmd_home') 

現在我們可以循環(在這種情況下的9倍)或運行直到文件的末尾作爲由Eric所示,通過編輯代碼如下:

komodo.assertMacroVersion(3); 
if (komodo.view) { 
    komodo.view.setFocus(); 
} 

for (i = 0; i < 9; i++) { 
    ko.commands.doCommand('cmd_home') 
    ko.commands.doCommand('cmd_right') 
    ko.commands.doCommand('cmd_right') 
    komodo.view.selection = ' - '; 
    ko.commands.doCommand('cmd_lineNext') 
    ko.commands.doCommand('cmd_home')  
} 

作爲參考http://docs.activestate.com/komodo/4.4/macroapi.html