Использование фрагментов кода в Visual Studio

Прямо сейчас, когда я хочу использовать фрагмент кода cw (фрагмент кода для Console.WriteLn). Я набираю cw, Tab, Tab.

Это правильный (самый быстрый!) способ сделать это? Если бы был какой-то способ нажать клавишу табуляции только один раз или любую другую клавишу, я был бы рад узнать об этом.


person devoured elysium    schedule 11.05.2010    source источник
comment
Я считаю, что это самый быстрый способ. Единственный известный мне другой способ — через меню «Вставить фрагмент», и это определенно будет медленнее.   -  person Stephan    schedule 11.05.2010
comment
Не могу сказать, что знаю более быстрый способ на том основании, что вы только что сообщили мне о его существовании! +1 ура :)   -  person Matt    schedule 11.05.2010
comment
Да, и некоторые очень милые. Например, попробуйте + вкладка + вкладка. Это создаст цикл for. Затем вы можете продолжать перемещаться по полям, чтобы заменить их значения. Когда вы закончите, нажмите Enter, и вы готовы ввести код. Аналогично foreach и другим.   -  person Nelson Rothermel    schedule 11.05.2010
comment
Сладкий, немного чтения определенно в порядке после работы! Возможно, вы только что вычеркнули дни из моей жизни, которые в противном случае были бы заняты написанием циклов и повторяющимся кодом! :)   -  person Matt    schedule 11.05.2010
comment
Это определенно может сэкономить время, но по какой-то причине я постоянно забываю их использовать, пока не напишу что-нибудь вручную. Кроме того, я не делал этого сам, но вы можете создавать свои собственные фрагменты кода.   -  person Nelson Rothermel    schedule 11.05.2010


Ответы (5)


Это самый быстрый способ. Обратите внимание, что первая вкладка предназначена только для того, чтобы избавиться от всплывающей подсказки IntelliSense. Вторая вкладка — та, которая на самом деле выполняет работу. Другими словами, вы можете сделать cw + esc/tab/enter + tab или даже c + esc + w + tab. Или вы даже можете набрать cw, перейти в другое место, щелкнуть сразу после cw, затем tab, и он завершится автоматически.

Это может раздражать, если вы делаете что-то вроде var cw tab.

Изменить: после того, как вы использовали "cw", вы можете сделать это немного быстрее, просто набрав c + tab + tab. Поскольку в последний раз вы использовали «cw», c выберет «cw» из IntelliSense, первая вкладка вставит его, а вторая вкладка завершится автоматически.

person Nelson Rothermel    schedule 11.05.2010

AFAIK нет более быстрого способа сделать это (но есть более медленный :)):

http://msdn.microsoft.com/en-us/library/z4c5cc9b(VS.80).aspx

person mamoo    schedule 11.05.2010

С ReSharper это cw,tab

person THX-1138    schedule 11.05.2010
comment
Я не большой поклонник R#, так как он замедляет мой VS 2010 как минимум в 4 раза. - person devoured elysium; 11.05.2010
comment
Отключите широкий анализ решения. - person Callum Rogers; 11.05.2010
comment
Судя по тому, что я сейчас вижу, эта опция у меня отключена. Не могу представить, насколько медленнее было бы, если бы я включил эту функцию! - person devoured elysium; 12.05.2010

Как упомянул Нельсон, в данном случае первая вкладка — это всего лишь действие побега. Но я знаю способ сократить 1 нажатие клавиши. Сохраните следующее как «c.snippet» и поместите его в каталог «..\‹ myDocs >\‹ VS20XX >\Code Snippets\Visual C#\My Code Snippets»:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>c</Title>
            <Shortcut>c</Shortcut>
            <Description>Code snippet for Console.WriteLine</Description>           
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal Editable="false">
                    <ID>SystemConsole</ID>
                    <Function>SimpleTypeName(global::System.Console)</Function>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[$SystemConsole$.WriteLine($end$);]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

Теперь вам просто нужно ввести c, tab, tab !!

person Sorax    schedule 13.05.2010
comment
У меня есть другие вещи, которые начинаются с с, я не знаю, может ли это иногда предпочтительнее этого. - person devoured elysium; 14.05.2010
comment
Измените значение элемента ‹Ярлык› на любую неиспользуемую букву, и вы сможете вызывать сниппет с этой буквой. Перейдите по следующей ссылке, если у вас возникли проблемы с отображением фрагмента в Intellisense: msdn.microsoft.com/en-us/library/ms165392%28v=VS.80%29.aspx - person Sorax; 14.05.2010

Есть более быстрый способ:

Самый быстрый способ — q + Tab. Я использую его для регистрации.

3 шага:

  • Create a new snippet file for q or use c+w (and skip this step)
    • C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1031\Visual C#
  • Перейдите к параметрам → Текстовые редакторы → C# → IntelliSense и отключите завершение после 1 символа.
  • Наслаждаться!

Надеюсь, это сработает для вас. Определенно мне подходит VS 2010 для C#.

person Bitterblue    schedule 11.12.2013