【问题标题】:Notepad++ Macro doesn't process down buttonNotepad++ 宏不处理向下按钮
【发布时间】:2017-03-21 18:54:10
【问题描述】:

我编写了一个 Notepad++ 宏,它将 SQL 查询转换为 Vb 字符串以粘贴到我的 VB 代码中。

主要是你可以按Ctrl + Shift + E 并且宏应该将SQL行从类似的东西转换 SELECT a FROM b TO "SELECT a FROM b" & vbCrLf & _ 然后光标应该移动到下一行。

这是我的宏的样子:

<Macro name="VB Script" Ctrl="yes" Alt="no" Shift="yes" Key="69">
    <Action type="0" message="2453" wParam="0" lParam="0" sParam="" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam='&quot;' />
    <Action type="0" message="2451" wParam="0" lParam="0" sParam="" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam='&quot;' />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&amp;" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="v" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="b" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="c" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="r" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="l" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="f" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&amp;" />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="_" />
    <Action type="0" message="2300" wParam="0" lParam="0" sParam="" />
</Macro>

我已经检查了几种不同的方法,并确定这一行会将光标向下移动一行:

&lt;Action type="0" message="2300" wParam="0" lParam="0" sParam="" /&gt;

问题是只有在第一行执行整个宏并向下移动一行。但之后的任何一行都不会向下移动。

【问题讨论】:

  • 我刚刚尝试了您的宏,当我将其用作要处理的文本时,它运行良好:SELECT a FROM b(四行)。 Ctrl+Shift+E 快捷键有效,“运行直到文件结束”模式也有效。我正在使用 NotePad++ 6.8.1。 this 文本集是否得到相同的结果?
  • SELECT a FROM b 超过 4 行(使用 Run 直到文件末尾),它在第二行停止。只需使用它在第二行停止的快捷键。我正在使用版本 6.9.2 我想知道是不是因为它试图在第 2 行自动完成单词 vbCrLf。因为它不断弹出该列表。
  • @Sam 我找到了。就像我刚刚想到的自动完成一样。我按照这里的说明禁用了它:http://stackoverflow.com/questions/21263705/how-do-i-stop-notepad-from-showing-autocomplete-for-all-words-in-the-file 现在宏可以正常工作了。
  • 哇,谢谢!我只是在打开和不打开自动完成的情况下对其进行了测试,当打开自动完成时,它停止进入下一行。我之前也遇到过这个问题,没想到是自动完成造成的。
  • 添加它作为问题的答案可能是个好主意,因为这对其他人也可能有用。

标签: macros notepad++


【解决方案1】:

关闭自动完成可以解决问题。

要关闭自动完成,请按照此处的说明进行操作:

https://stackoverflow.com/questions/21263705/how-do-i-stop-no‌​tepad-from-showing-a‌​utocomplete-for-all-‌​words-in-the-file

当自动完成菜单弹出时,NotePad++ 似乎停止执行宏。

IE:宏执行所有代码,就像正确添加所有字母一样。然后当它需要激活Down Arrow 键时,它仍然执行代码,但在弹出的下拉列表中,而不是光标所在的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多