按下 Ctrl 和光标键时让 Visual Studio 理解 CamelCase
Posted
技术标签:
【中文标题】按下 Ctrl 和光标键时让 Visual Studio 理解 CamelCase【英文标题】:Make Visual Studio understand CamelCase when hitting Ctrl and cursor keys 【发布时间】:2010-09-23 18:24:52 【问题描述】:有没有一种方法可以配置 Visual Studio 2008 以理解 CamelCase? 具体来说,我希望能够让 Ctrl + right
或 left
光标带我进入一个小节变量或类型名称。
即,如果我的光标位于这一行的开头:
LongNamedExampleClass longNamed = new LongNamedExampleClass();
我点击Ctrl + right
,我想跳转到类名中的“Named
”,而不是变量名的开头。如果我再次点击它,我想去“Example
”。我希望这是有道理的。
我在 Eclipse 中经常使用这个导航功能,发现很难忘记如此根深蒂固的东西。
【问题讨论】:
Resharper 支持该功能。 Resharper 这样做。我想你可以编写自己的插件来做同样的事情。 【参考方案1】:我认为 Visual Studio 内部不支持此功能,因为它似乎使用正常方式 Ctrl+Right 和 Ctrl+Left 在 Windows 环境中工作。但它可能通过某种扩展或插件来实现。
【讨论】:
猜测其他人是否能够回答问题并不能真正回答问题。【参考方案2】:Visual Studio 不支持这种行为。但是,DevExpres's CodeRush!产品支持这样的导航(使用 Alt-Left 和 Alt-Right),以及大量其他帮助导航的功能。 CodeRush!产品还与他们的重构工具捆绑在一起。他们还提供免费的 CodeRush! & Refactor Express 产品,虽然我不确定 Camel Casing 导航是否是 express 产品的一部分。
【讨论】:
【参考方案3】:它不是 Visual Studio 原生的,但您可以使用 CodeRush Express 免费获取它。 (ReSharper 和 CodeRush 需要付费)。
【讨论】:
现在只有试用版是免费的【参考方案4】:感谢推荐 Resharper 的人。这给了我另一个更喜欢它的理由。只是要具体说明它的位置 - JetBrains 称之为 CamelHumps(可爱),您可以使用菜单打开它:
Resharper -> 选项 -> 环境 -> 编辑器 -> 编辑器行为 -> 使用 CamelHumps
...在旧版本的 Resharper 中,它是;
Resharper -> 选项 -> 编辑器 -> 使用 CamelHumps
【讨论】:
是否有选择整个单词的选项,即使 CameHumps 已打开?目前我必须按左右几次才能选择一个单词。我希望你能得到我。 要在 CamelHumps 开启时快速选择整个单词,请按两次 Extend Selection shortcut key(Ctrl
+Alt
+Right
或 Ctrl
+W
)。
不仅选择整个单词,还跳过整个单词?
这是 ctrl+[箭头] 的正确解决方案。但是,有两个 resharper 命令 - Resharper_TextControlPreviousWord 和 Resharper_TextControlNextWord 以便您可以绑定不同的快捷方式来执行相同的驼峰式导航。但是,如果 CamelHumps 选项关闭,它们将不起作用。【参考方案5】:
将下面的宏添加到视觉工作室。
http://visualstudiomacros.blogspot.com/2008/03/getting-ctrl-right-arrow-to-respect.html
【讨论】:
【参考方案6】:如果您安装了 ReSharper,您还可以为 CamelHump 配置 Visual Studio 键盘快捷键“Alt-Right”和“Alt-Left”,而不会丢失“ctrl-right”和“ctrl-left”的标准 Visual Studio 行为。
-
从 Tools –> Options 打开 Visual Studio Options 窗口
展开环境并向下滚动到键盘
在显示包含的命令框中,输入“hump”。这将显示与 CamelHumps 相关的所有命令。
通过从列表中选择命令并在按快捷键文本框中输入键映射,将命令映射到您希望的键映射,然后单击分配。
注意事项:
为文本编辑器而不是全局分配映射。 确保 Resharper -> 选项 -> 编辑器 -> 编辑器行为中的 Use CamelHumps 选项关闭。详情请看:http://davidrcook.wordpress.com/2009/11/05/working-with-camel-case-in-visual-studio/
【讨论】:
你让我很开心。骆驼驼峰的完美解决方案可以是带有长标识符的大头针(任何使用 Eclipse 的人都会证明)【参考方案7】:在 2008 年 11 月 25 日之后偶然发现此页面的任何人(不想为 ReSharper 或 CodeRush 不再提供免费版本)付费,以下免费扩展会添加此功能:Subword Navigation by Olle Westman
(或者,VSTricks 扩展在其漂亮的功能列表中包括子词导航。还有一个不同的 Subword navigation 扩展由 Lauri Vasama 创建,不要与此答案使用的 Olle Westman 混淆。)
子词导航项目页面状态:
在键盘绑定中查找 Edit.Subword 进行设置。
这是我在 Visual Studio 2019
中的设置方式:
-
导航到工具>选项>环境>键盘
-
在
Use new shortcut in
下,选择 文本编辑器
-
在
Show commands containing
下,输入 Edit.Subword。这应该会弹出一个包含下面列出的命令的自动完成字段。
-
选择以下要为其设置快捷键的命令之一。选择后,按照其余编号的步骤进行操作。然后返回
Step 4
设置另一个。
Edit.SubwordNext
向右移动骆驼箱 [Alt + Right Arrow
]
Edit.SubwordPrevious
向左移动驼峰 [Alt + Left Arrow
]
Edit.SubwordNextExtend
选择右侧的驼峰式 [Alt + Shift + Right Arrow
]
Edit.SubwordPreviousExtend
选择左侧的驼峰式[Alt + Shift + Left Arrow
]
Edit.SubwordDeleteNext
删除右侧的驼峰式 [Alt + Delete
]
Edit.SubwordDeletePrevious
删除左侧的驼峰式 [Alt + Backspace
]
注意:将这些子词导航命令分配给这些新快捷键时,通过将它们设置为不同的键,预先保留您想要保留的任何现有快捷键功能。 不应与任何默认安装的快捷键冲突。
-
在
Press shortcut keys
下,按 您的快捷键
-
点击
Assign
并覆盖现有快捷方式
【讨论】:
感谢您的提醒!这很有效,并且是最开放的解决方案。 我指的是 2015 年及以后。正如后面提到的,我在 VS 2012 中使用了这个。我将在帖子中澄清。谢谢。 在提供设置细节方面特别出色的答案。我非常感谢 Next/PreviousExtend 上的解释 2015 年,我不得不覆盖 TextEditor.* 命令,而不是 Global.* 命令。 ALT+RIGHT 已经绑定到其他东西了。 @yanyankelevich 我刚刚在 VS2019 中对其进行了测试,并且可以正常工作。但是,我确实在扩展管理器中注意到,有 两个 扩展名为“子词导航”。您想要由 Olle Westman 创建的那个。我已经更新了我的答案以指定它并注意它在 VS2019 中有效。【参考方案8】:创建此扩展程序就是为了做到这一点,就像在 Eclipse 中一样:
https://marketplace.visualstudio.com/items?itemName=maptz.camelcasenavigation
【讨论】:
【参考方案9】:对于在 ~1.63 版本中寻找此功能的任何人 键绑定选项现在称为“cursorWordPart”,可以在键盘快捷键中轻松设置:)
【讨论】:
以上是关于按下 Ctrl 和光标键时让 Visual Studio 理解 CamelCase的主要内容,如果未能解决你的问题,请参考以下文章