如何在 Visual Studio 中定义即时自动更正宏?

7
通过即时自动更正宏,我指的是一份常见的拼写错误列表及其替换方式。例如,每次我尝试输入“Layer”时,它都会变成“LAyer”。我没有使用任何名为“LAyer”的东西,所以我希望在我输入后,它能自动将所有的“LAyer”替换为“Layer”。
(以“Recomend”为例,在Word中键入,它会立即用“Recommend”替换它,无需提示,因为它匹配了常见拼写错误列表,可以在“自动更正选项”下找到。)
4个回答

3
我有完全相同的问题(除了通常会打错很多单词)。最近我一直在打“chnage”而不是“change”。(在我正在处理的代码中,我有称为ChangedRecord和ChangedDatum的类,我犯的拼写错误已经不好笑了)
另一个线程中,有人发布了一个指向AutoHotkey的链接。
我想试一下,我必须说我认为这是一个很棒的小应用程序(它可以做比我们想要的更多的事情)。
以下是一个AutoHotKey脚本文件,应该会在您输入时立即将“LAyer”替换为“Layer”。我已经定义它只会在您精确匹配大小写时进行更正,所以它会保留“layer”和“LaYeR”等。
此脚本中还包含热字符串"chnage"。它被定义为与输入单词的大小写相匹配,例如"Chnage"变成"Change",而"ChnagedRecord"变成"ChangedRecord"(注意,它会将"CHnaGe"改为"Change")。一个额外的好处是,这些替换在所有应用程序中都可以进行,而不仅仅是在Visual Studio中。(大多数情况下是这样,详见下面的注释)
;
; AutoHotkey Version: 1.x
; Language:       English
; Platform:       Win9x/NT
; Author:         A.N.Other <myemail@nowhere.com>
;
; Script Function:
;   Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder)
;

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

:*:chnage::change
:c1*:LAyer::Layer

1
我在运行我的脚本时开始输入这个答案 - 直到我把它读回来才注意到所有的“chnages”都被自动更正为“changes” - 这可能是我唯一想要输入“chnage”的时候 :) - Chris Fewtrell
这在VS2017中效果不好,因为它不支持SendInput模式,因此无法快速触发更改(如果您是个手速较快的打字员),最终你会得到cchanges。我建议进行以下两个更改:WinActivate,ahk_exe devenv.exe,可以将宏限制为仅在VS中工作。::seperator::separator(不使用星号,否则只有在敲空格后才会执行(我打字速度太快了),可能还需要:?:seperator::separator - 查询可允许其他字母替换。(我使用vim插件)。 - Orwellophile

0

编写Visual Studio插件?在VS插件中加载Office的拼写检查并使用它非常容易。


0

尝试使用Developer Express的免费CodeRush版本。它的宏语言应该可以轻松地重新创建这个功能。我使用的是付费版本,但我认为免费版本仍然具有此功能。


可能是一个很酷的工具,但仅限于C#和类似语言,无法处理C++。 - Orwellophile

0

3
这个插件没有斯图尔特需要的自动纠正功能。 - Chris Fewtrell
真的,但这是我见过的最接近的东西。 - jrummell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接