Visual Studio: Skrót klawiszowy: Duplicate Line

Czy jest skrót do Duplicate Line polecenie w Visual Studio 2008?

Kilka podobnych przykładów:

Author: Guilherme Fidelis, 2010-02-17

26 answers

W Visual Studio 2017

(edycja) ta funkcja jest teraz wbudowana w VS2017: Ctrl + E, V powiela linię, jeśli nic nie jest zaznaczone, lub powiela zaznaczenie. Można go przypisać do innej kombinacji klawiszy lub znaleźć w menu:

Duplicate line in VS2017

Zobacz ten odnośnik aby uzyskać więcej informacji.

Pre VS2017, wbudowana metoda przy użyciu schowka

Jak wspomniał @cand, możesz po prostu wykonać Ctrl + C ; Ctrl + V .

Ctrl + C skopiuje linię, jeśli nic nie jest zaznaczone.

Rozwiązanie Makro (pre VS2017)

Jeśli chcesz zaimplementować bardziej kompletne rozwiązanie, być może stworzyć prostszy skrót klawiaturowy lub nie chcesz efektować schowka, zobacz ten przewodnik:

Duplicate line command for Visual Studio

Visual Basic:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics

Public Module DuplicateLastLineModule
    Sub DuplicateLine()
        Dim line As String
        DTE.ActiveDocument.Selection.StartOfLine(0)
        DTE.ActiveDocument.Selection.EndOfLine(True)
        line = DTE.ActiveDocument.Selection.Text
        DTE.ActiveDocument.Selection.EndOfLine()
        DTE.ActiveDocument.Selection.NewLine()
        DTE.ActiveDocument.Selection.StartOfLine(0)
        DTE.ActiveDocument.Selection.Text = line
    End Sub
End Module

Aby utworzyć makro, wystarczy przejść do makra explorer ("Narzędzia - > Makra - > Macro Explorer" lub Alt+F8) i skopiuj wklej kod w nowy moduł. Teraz wystarczy przypisać do niego Skrót klawiszowy:

  1. przejdź do Narzędzia- > Opcje...
  2. w obszarze środowisko kliknij klawiaturę
  3. w polu tekstowym" Pokaż polecenia zawierające "wprowadź" duplikat " (zgodnie z nazwą podaną przez moduł.)
  4. powinieneś teraz zobaczyć makro na poniższej liście
  5. wybierz "Edytor tekstu" z "Użyj nowego skrót w" liście
  6. Ustaw fokus w polu tekstowym "naciśnij klawisze skrótów" i naciśnij kombinację na klawiaturze, której chcesz użyć ( Ctrl+Shift+D w moja sprawa)
  7. naciśnij przycisk "Przypisz"
  8. powinieneś teraz zobaczyć skrót w polu tekstowym "skróty dla wybranego polecenia"
  9. naciśnij przycisk OK
I to wszystko. Smacznego!
 289
Author: Wael Dalloul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-10 16:51:02

Istnieje darmowe rozszerzenie, które można pobrać tutaj, które pozwala powielać wiersze bez zastępowania zawartości schowka.

Domyślnie jest przypisany do Alt + D, ale możesz zmienić go na cokolwiek chcesz, przechodząc do Narzędzia->Opcje->środowisko - > Klawiatura. Wpisz "Duplicate" w polu wyszukiwania i wyszukaj " Edit.DuplicateSelection " i edytować skrót do czego chcesz. Wolę Ctrl + D Być zgodne z innymi redaktorami.

 117
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-15 18:10:59

It ' s simple Ctrl + C ; Ctrl + V , Sprawdź to link . Dopóki nie zaznaczysz żadnego tekstu, powieli to linię, nad którą kursor się kończy po naciśnięciu Ctrl+C .

 84
Author: cand,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-25 21:14:45

Ctrl + C + V działa u mnie na VS2012 bez rozszerzenia.

 71
Author: nGoline,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-15 13:54:48

Ctrl + D działa dla mnie w VS2012 z Resharper. To klucz Resharpera.

 29
Author: sawe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 13:17:52

W Visual Studio 2013 możesz użyć Ctrl+C+V

 25
Author: Vazgen Torosyan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-13 08:37:45

Oto makro oparte na linku zamieszczonym przez Waela, ale poprawione w następujących obszarach:

  • nieco krótszy
  • nieco szybciej
  • komentarze:)
  • zachowuje się dla linii zaczynających się od "/ / / "
  • można cofnąć za pomocą jednego cofnięcia
Imports System
Imports EnvDTE
Imports EnvDTE80

Public Module Module1

    Sub DuplicateLine()
        Dim sel As TextSelection = DTE.ActiveDocument.Selection
        sel.StartOfLine(0) '' move to start
        sel.EndOfLine(True) '' select to end
        Dim line As String = sel.Text
        sel.EndOfLine(False) '' move to end
        sel.Insert(ControlChars.NewLine + line, vsInsertFlags.vsInsertFlagsCollapseToEnd)
    End Sub

End Module
 20
Author: Mark Foreman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-25 03:01:07

Jeśli lubisz powielanie linii (lub bloku) za pomocą CTRL+ALT+UP lub CTRL+do góry+w dół , poniżej zamieszczam makra w tym celu:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics

Public Module DuplicateLineModule
    Sub DuplicateLineDown()
        Dim selection As TextSelection = DTE.ActiveDocument.Selection
        Dim lineNumber As Integer
        Dim line As String

        If selection.IsEmpty Then
            selection.StartOfLine(0)
            selection.EndOfLine(True)
        Else
            Dim top As Integer = selection.TopLine
            Dim bottom As Integer = selection.BottomLine

            selection.MoveToDisplayColumn(top, 0)
            selection.StartOfLine(0)

            selection.MoveToDisplayColumn(bottom, 0, True)
            selection.EndOfLine(True)
        End If

        lineNumber = selection.TopLine
        line = selection.Text

        selection.MoveToDisplayColumn(selection.BottomLine, 0)
        selection.EndOfLine()
        selection.Insert(vbNewLine & line)
    End Sub
    Sub DuplicateLineUp()
        Dim selection As TextSelection = DTE.ActiveDocument.Selection
        Dim lineNumber As Integer
        Dim line As String

        If selection.IsEmpty Then
            selection.StartOfLine(0)
            selection.EndOfLine(True)
        Else
            Dim top As Integer = selection.TopLine
            Dim bottom As Integer = selection.BottomLine

            selection.MoveToDisplayColumn(top, 0)
            selection.StartOfLine(0)

            selection.MoveToDisplayColumn(bottom, 0, True)
            selection.EndOfLine(True)
        End If

        lineNumber = selection.BottomLine
        line = selection.Text

        selection.MoveToDisplayColumn(selection.BottomLine, 0)
        selection.Insert(vbNewLine & line)
        selection.MoveToDisplayColumn(lineNumber, 0)
    End Sub
End Module
 10
Author: Krzysztof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-03 05:44:11

Dlaczego tak wiele długo wyciągniętych metod, aby osiągnąć coś tak prostego? Pobranie i zainstalowanie rozszerzenia od firmy Microsoft zajmuje mniej niż minutę. Strona mówi, że będzie wiązać go do ALT+D domyślnie, ale dla mnie wiązało go do CTRL+D automatycznie w Visual Studio Community 2015 bez żadnych zmian.

Oto link do pobrania rozszerzenia z Microsoft.com.

 9
Author: Daniel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 11:50:37

Chociaż zdaję sobie sprawę, że nie jest to skrót klawiaturowy, pomyślałem, że dodam to, ponieważ nie wymaga użycia schowka i może pomóc niektórym osobom.

Podświetl wiersz, który chcesz zduplikować. Naciśnij klawisz control, kliknij myszką podświetlony tekst i przeciągnij do miejsca, do którego chcesz przejść. Powieli podświetlony tekst.

 7
Author: Warty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-17 10:52:28

Ponieważ nie mogę używać makr w moim Visual Studio 2013 znalazłem wtyczkę Visual Studio (używam jej w 2012 i 2013). Duplikuj zaznaczenie Duplikuj zaznaczenia i całe linie-muszą być tylko częściowo zaznaczone. Standardowy Skrót to ALT + D .

 7
Author: Lebewesen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 13:54:17

W visual studio code (WebMatrix):

Kopiuj linie w dół: Shift + Alt + down

Kopiuj linie w górę: Shift + Alt + up

Usuń linie: Ctrl + Shift + k

 6
Author: mghhgm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-13 07:05:42

Nie wiem czy to istnieje w Visual Studio 2008 ale w Visual Studio 2010+ można to łatwo zrobić przez:

Nie zaznaczaj niczego, następnie naciśnij Ctrl + C a następnie (bez robienia czegokolwiek innego) Ctrl + V

 5
Author: Alireza Noori,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-21 10:34:08

Używam makra, które napisał Wael: Duplicate line command for Visual Studio, ale przestał działać tydzień temu, założyłem, że z powodu aktualizacji systemu Windows. I miałem rację, od lutego 2014, makra zostały wyłączone w VS2010 (i 2008 najwyraźniej).

Aby to naprawić, musisz albo odinstalować aktualizacje zabezpieczeń, albo dodać jedną linię kodu do plików konfiguracyjnych, jak pokazano Proszę..

Na 64-bitowym komputerze z systemem Windows domyślne ścieżki do tych plików należą:

  • C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.config
  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config

    ...
    <configuration>
        <runtime>
            <AllowDComReflection enabled="true"/>
            ...
    

    zrzut ekranu edytora

Musisz uruchomić Edytor tekstu z prawami administratora albo to nie zadziała! Mam nadzieję, że pomoże to każdemu, kto nagle ma swoją funkcjonalność makro wyciągniętą spod nich.

 4
Author: MasterHD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-07 00:28:23

W visual studio 2008 możesz użyć CTRL + C + V

 3
Author: user5460893,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 15:08:42

Po prostu umieść mysz na linii, aby skopiować i wykonaj CTRL+C , potem CTRL+V w tej samej linii. Działa jak magia: -)

 2
Author: David Constantine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 13:53:09

Http://www.jetbrains.com/resharper/

Moja historia: zacząłem pracować w nowej firmie, nigdy wcześniej nie korzystałem z Visual Studio. Jedna z pierwszych rzeczy - jak powielić linię. Po skonfigurowaniu makra ReSharper powiedział mi: czy chciałbyś zastąpić mój skrót, który brzmiał: "duplicate text":)

 1
Author: Michal Stefanow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-27 13:54:27

W Visual Studio 2010 kopiujesz całą linię, na której znajduje się kursor CTRL + Wstaw Następnie możesz użyć Ctrl + V lub SHIFT + Wstaw aby go wkleić.

 1
Author: Crackerjack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 17:00:49

VS 2017 its Ctrl + D lub Ctrl + C ; Ctrl + V oboje pracują dla mnie.

 1
Author: Danyal Ahmed Chaudhry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-06 16:22:48

Żądaną komendą jest Edit.Duplicate . Jest mapowany do CtrlE, CtrlV . To nie zastąpi schowka.

 1
Author: HaveSpacesuit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-09 03:00:37

Dla tych, którzy wciąż oglądają to pytanie w Visual Studio po 2008 roku, prawdziwa Edycja.Dodano duplikat:

  • CTRL+E, V
  • CTRL+D (VS 2017 15.6+)
 1
Author: icanfathom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-02 14:47:23

Używam linku aplikacji: AutoHotkey z poniższym kodem zapisanym w pliku CommentDuplikateSaveClipboard.ahk. Możesz edytować / usuwać skróty to proste.
mam link do tego pliku "Shortcut to CommentDuplikateSaveClipboard.ahk" w Autostart w windows.
ten skrypt chroni Schowek.
Jeśli jesteś bardziej ciekaw, możesz dodać skróty do tego skryptu.
czasami używam bardzo efektownego skryptu Multi Clipboard do łatwej obsługi z wieloma clips zapisanymi na dysku i używam z CTRL+C,X,V to skopiuj, wklej,wytnij, następny,poprzedni, usuń to, Usuń wszystko.

;CommentDuplikateSaveClipboard.ahk

!c:: ; Alt+C === Duplicate Line
^d:: ; Ctrl+D
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{END}{ENTER}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return

!x:: ; Alt+X === Comment Duplicate Line
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{HOME}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{LEFT}//{END}{ENTER}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return

!z:: ; Alt+Z === Del uncomment  Line
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{DEL}{HOME}{DEL}{DEL}
Clipboard := ClipSaved
ClipSaved =
return

!d:: ; Alt+D === Delete line
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{DEL}
return

!s:: ; Alt+S === Swap lines
ClipSaved := ClipboardAll
Send, {END}{SHIFTDOWN}{UP}{END}{SHIFTUP}{CTRLDOWN}x{CTRLUP}{UP}{END}{CTRLDOWN}v{CTRLUP}{HOME}
Clipboard := ClipSaved
ClipSaved =
return

!a:: ; Alt+A === Comment this line, uncomment above
Send, {END}{HOME}//{UP}{HOME}{DEL}{DEL}
return
 1
Author: MrHIDEn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 14:26:14

Nie ODPOWIEDŹ, tylko przydatny dodatek: Jako freebie, właśnie wynalazłem (dobrze... ehm... Poprawiono kod wysłany przez Lolo) Makro RemoveLineOrBlock. Smacznego!

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

Public Module RemoveLineOrBlock

    Sub RemoveLineOrBlock()
        Dim selection As TextSelection = DTE.ActiveDocument.Selection
        Dim lineNumber As Integer
        Dim line As String

        If selection.IsEmpty Then
            selection.StartOfLine(0)
            selection.EndOfLine(True)
        Else
            Dim top As Integer = selection.TopLine
            Dim bottom As Integer = selection.BottomLine

            selection.MoveToDisplayColumn(top, 0)
            selection.StartOfLine(0)

            selection.MoveToDisplayColumn(bottom, 0, True)
            selection.EndOfLine(True)
        End If

        selection.LineDown(True)
        selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstColumn,True)

        selection.Delete()

        selection.MoveToDisplayColumn(selection.BottomLine, 0)
        selection.StartOfLine(vsStartOfLineOptions.vsStartOfLineOptionsFirstText)

    End Sub

End Module
 0
Author: Peter Perháč,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-12 16:17:17

Dla Visual Studio 2012, 2013, 2015, 2017 Kliknij na link i pobierz rozszerzenie

https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection

Teraz przejdź do Narzędzia > Opcje > Klawiatura i wpisz "Duplicate" w polu wyszukiwania (pełny ciąg poleceń to " Edit.DuplicateSelection"). Tutaj możesz powiązać go z dowolnym skrótem w taki sam sposób, jak dla każdego innego polecenia.

 0
Author: Kalyan Halder Raaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-25 12:04:02

Ctrl + D to nowy skrót wprowadzony w VS 2017 v15. 6, który wydaje się robić dokładnie to, co Ctrl + E, V

Ctrl + D powieli linię, w której znajduje się kursor i wstawi ją tuż pod linią w centrum uwagi. Jeśli chcesz zduplikować określony zestaw kodu, po prostu wybierz fragment kodu, który chcesz zduplikować, przed wywołaniem polecenia zduplikuj kod.

To nie wpłynie na twoje Schowek

Źródło

 0
Author: Kautsky Lozano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-13 11:06:29

W visual studio 2010 spróbuj użyć tych poleceń do szybkiego powielania linii (używa schowka):

  • Kliknij wiersz, który chcesz skopiować. Ctrl + C skopiuje ten wiersz.

  • Następnie naciśnij Ctrl + Shift + Wprowadź , aby wstawić puste miejsce poniżej punktu wstawiania

    (alternatywnie użyj Ctrl + Wprowadź , aby wstawić pustą linię nad punktem wstawiania.)

  • Następnie po prostu użyj Ctrl + V aby wkleić wiersz.

 -2
Author: protoss1210,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-13 09:36:00