【问题标题】:Make Visual Studio understand CamelCase when hitting Ctrl and cursor keys按下 Ctrl 和光标键时让 Visual Studio 理解 CamelCase
【发布时间】:2010-09-23 18:24:52
【问题描述】:

有没有一种方法可以配置 Visual Studio 2008 以理解 CamelCase? 具体来说,我希望能够让 Ctrl + rightleft 光标带我进入一个小节变量或类型名称。

即,如果我的光标位于这一行的开头:

LongNamedExampleClass longNamed = new LongNamedExampleClass();

我点击Ctrl + right,我想跳转到类名中的“Named”,而不是变量名的开头。如果我再次点击它,我想去“Example”。我希望这是有道理的。

我在 Eclipse 中经常使用这个导航功能,发现很难忘记如此根深蒂固的东西。

【问题讨论】:

  • Resharper 支持该功能。
  • Resharper 这样做。我想你可以编写自己的插件来做同样的事情。

标签: visual-studio keyboard-shortcuts customization


【解决方案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 keyCtrl+Alt+RightCtrl+W)。
    • 不仅选择整个单词,还跳过整个单词?
    • 这是 ctrl+[箭头] 的正确解决方案。但是,有两个 resharper 命令 - Resharper_TextControlPreviousWord 和 Resharper_TextControlNextWord 以便您可以绑定不同的快捷方式来执行相同的驼峰式导航。但是,如果 CamelHumps 选项关闭,它们将不起作用。
    【解决方案5】:

    【讨论】:

      【解决方案6】:

      如果您安装了 ReSharper,您还可以为 CamelHump 配置 Visual Studio 键盘快捷键“Alt-Right”和“Alt-Left”,而不会丢失“ctrl-right”和“ctrl-left”的标准 Visual Studio 行为。

      1. Tools –> Options 打开 Visual Studio Options 窗口
      2. 展开环境并向下滚动到键盘
      3. 显示包含的命令框中,输入“hump”。这将显示与 CamelHumps 相关的所有命令。
      4. 通过从列表中选择命令并在按快捷键文本框中输入键映射,将命令映射到您希望的键映射,然后单击分配

      注意事项:

      • 文本编辑器而不是全局分配映射。
      • 确保 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 中的设置方式:


      1. 导航到工具>选项>环境>键盘

      1. Use new shortcut in 下,选择 文本编辑器

      1. Show commands containing 下,输入 Edit.Subword。这应该会弹出一个包含下面列出的命令的自动完成字段。

      1. 选择以下要为其设置快捷键的命令之一。选择后,按照其余编号的步骤进行操作。然后返回 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]

      注意:将这些子词导航命令分配给这些新快捷键时,通过将它们设置为不同的键,预先保留您想要保留的任何现有快捷键功能。 不应与任何默认安装的快捷键冲突。


      1. Press shortcut keys 下,按 您的快捷键

      1. 点击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”,可以在键盘快捷键中轻松设置:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-10
          • 1970-01-01
          • 2021-04-26
          • 1970-01-01
          • 1970-01-01
          • 2011-02-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多