【问题标题】:Advanced Find & Replace / Text Expand / Macros高级查找和替换/文本展开/宏
【发布时间】:2010-10-11 11:29:33
【问题描述】:

希望对某人来说是一个不错的快速。我正在开展一个项目,该项目需要在大约 400 个左右的位置编写特定链接。每个链接都是一样的,只是里面有小镇的名字,比如:

<li><a href="/contact-details.html?location=Andover">Andover</a></li>

我目前正在使用 Komodo Edit 来编写我的项目,并且我安装了 Zen Coding 并且对内置的 Snippets 功能有相当的了解。

我知道使用 Snippets,我可以在键绑定中从单词 Andover 创建上面的链接,但据我所知,一次只能一行。

我也知道我可以使用 Zen Coding 进入以下阶段:

<li><a href="/contact-details.html?location=">Andover</a></li>

但在链接中没有位置名称,使用 wrap with abbreviation and

li*>a[href=/contact-details.html?location=]

显然,这两者还有很多工作要做,我确信使用 Komodo 宏是可能的,但我对它们的了解还不够。

有没有人知道 Komodo 中的一种方法,或者使用 Zen Coding,或者任何网站或应用程序,可以进行这种稍微高级的查找/替换/文本扩展?我见过一些可以查找和替换的应用程序,但它们都基于多个文件,这对于我的需要来说有点多。

理想情况下,我可以写类似的东西

<li><a href="/contact-details.html?location=[%contentOfCurrentLine]">[%contentOfCurrentLine]</a></li>

并一次性将其复制到所有 400 个位置。

【问题讨论】:

标签: macros komodo komodoedit


【解决方案1】:

使用像这样命名为 'ListLink' 的 sn-p:

<li><a href="/contact-details.html?location=[[%W]]">[[%W]]</a></li>

并使用scimozprojects API 创建一个宏来移动光标并循环调用sn-p:

komodo.assertMacroVersion(2);
if (komodo.view && komodo.view.scintilla) { komodo.view.scintilla.focus(); }

var i = 1;
var len = ko.views.manager.currentView.scimoz.lineCount; /* Count lines */
_part = ko.projects.findPart('snippet', 'ListLink', '*'); /* Find Snippet*/
ko.views.manager.currentView.scimoz.documentStart(); /* goto first line */

while (i <= len)
  {
  if (!_part) {alert("Couldn't find a snippet called 'ListLink' when executing macro."); return;}
  ko.projects.invokePart(_part); /* invoke Snippet */
  ko.views.manager.currentView.scimoz.lineDown(); /* goto next line */
  i++;
  }

【讨论】:

    【解决方案2】:

    您可以在 Komode 中做到这一点。

    1. 转到“编辑”(在顶部菜单中)、“查找”。
    2. 将打开一个窗口,选中复选框“替换”(或您需要的其他)
    3. 完成文本字段“查找内容”和“替换为”,然后点击“全部替换

    就是这样!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 2015-12-26
      • 2023-03-18
      相关资源
      最近更新 更多