【发布时间】: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='"' />
<Action type="0" message="2451" wParam="0" lParam="0" sParam="" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam='"' />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="&" />
<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="&" />
<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>
我已经检查了几种不同的方法,并确定这一行会将光标向下移动一行:
<Action type="0" message="2300" wParam="0" lParam="0" sParam="" />
问题是只有在第一行执行整个宏并向下移动一行。但之后的任何一行都不会向下移动。
【问题讨论】:
-
我刚刚尝试了您的宏,当我将其用作要处理的文本时,它运行良好:
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现在宏可以正常工作了。 -
哇,谢谢!我只是在打开和不打开自动完成的情况下对其进行了测试,当打开自动完成时,它停止进入下一行。我之前也遇到过这个问题,没想到是自动完成造成的。
-
添加它作为问题的答案可能是个好主意,因为这对其他人也可能有用。