在visual studio中我需要一个宏来获取所选文本,将其传递给dos命令,捕获生成的流并用它替换所选文本。
像这样......
Dim objSel As TextSelection = DTE.ActiveDocument.Selection
objSel.Text = RunShellCommand("beautify.rb", objSel.Text)
..我不知道如何实施RunShellCommand
。
似乎Shell("beautify.rb", 1)
会执行一个命令并返回输出,在这种情况下我需要的只是..“你如何将文本流式传输到shell命令?”
答案 0 :(得分:0)
我有一个使用AutoHotKey(一个优秀的工具)并更改beautify.rb
来获取文件的工作。
;window ctrl R - beautify sql
#^R::
ClipSaved := ClipboardAll
clipboard = ; Start off empty to allow ClipWait to detect when the text has arrived.
Send ^c
ClipWait ; Wait for the clipboard to contain text.
FileDelete , c:\tmp\tmp_ahk_clip.txt
FileAppend , %clipboard% , c:\tmp\tmp_ahk_clip.txt
RunWait, %comspec% /c ""C:\...\Database\beautify.rb" c:\tmp\tmp_ahk_clip.txt > c:\tmp\tmp_ahk_clip_out.txt" ,,Hide
FileRead, clipboard, c:\tmp\tmp_ahk_clip_out.txt
Send ^v
Clipboard := ClipSaved
ClipSaved = ; Free the memory
return
现在任何带有sql的应用程序中的任何文本字段都可以很漂亮:)