代码之家  ›  专栏  ›  技术社区  ›  J Cooper

VisualStudio中的哑补全

  •  9
  • J Cooper  · 技术社区  · 15 年前

    Intellisense的功能很好,但我经常发现自己渴望像Vim这样的编辑器完成“粗糙”的文本。我似乎找不到一种工具来完成一个单词——也许是字符串,真的是在任何地方——让VS帮我完成它(基于我以前在当前缓冲区中键入的内容,或者在所有打开的文件中键入的内容,或者它想如何工作)。

    我错过什么了吗(或者如果有必要,是否有一个扩展来实现这一点?)看起来它实际上比Intellisense更容易实现,但它确实可以节省输入。

    谢谢

    8 回复  |  直到 15 年前
        1
  •  6
  •   Benoit Miller    15 年前

    VisualAssist 加载项。它的自动完成功能会知道您最近键入的内容,因此默认情况下它会选择最近的匹配项。它也适用于比标准IntelliSense更多的地方(例如,包括路径)。

    然而,一句警告的话,当你开始使用它时,很难回头。。。

        2
  •  1
  •   luvieere    15 年前

    ViEmu ,用于Visual Studio、Word、Outlook和SQL Server的Vi/vim仿真。如果它仍然不能满足你的需求,试着自己滚动。查看 Visual Studio Extensibility Reference this tutorial 帮助您开始使用VS加载项。

        3
  •  1
  •   Ronald    15 年前

    正如其他答案所述,VisualStudio2010中的Intellisense已经变得更好了。不仅是可扩展性,还有实现。

    有关VS2010中Intellisense改进的更多信息,请访问 ScottGu's blog .

        4
  •  1
  •   ErvinS    15 年前
        5
  •  1
  •   RivieraKid    13 年前

    在VS2010中,实现intellisense非常简单-假设您已经准备好了两个问题的答案:

    1. 什么应该触发对话框
    2. 当前单词可能完成的列表是什么。

    编辑

    download 输入代码并使用它。

        6
  •  0
  •   ShuggyCoUk    15 年前

    2010年的可扩展性模型要简单得多,但(显然)仍然是一个移动的目标。

    应该可以通过使用 the intellisense part of this 提供 ICompletionSource

    监视当前缓冲区中的名称应该涉及到对 ITextView ITextBuffer

    这里有一个修改 presentation layer

        7
  •  0
  •   Brett Veenstra    15 年前

    Resharper 从Jetbrains也有完成,这是非常聪明。CTRL+SHFIT+Space激活其“智能”代码完成(超出正常的CTRL+Space结果),这是类型和上下文敏感的。我经常发现为我选择合适的名字是一件很重要的事情。

        8
  •  0
  •   Scott P    15 年前

    如果您有一些单词需要填写,您可以轻松地创建一些代码片段来完成。

    这不仅仅是一个小技巧,但可能会有所帮助。

    <?xml version="1.0" encoding="utf-8" ?>
    <CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>retype</Title>
          <Shortcut>retype</Shortcut>
          <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
          </SnippetTypes>
        </Header>
        <Snippet>
          <Code Language="csharp">
            <![CDATA[ThisIsTheTextIHateToRetype();$end$]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>