Czy w Visual Studio 2008 jest skrót do polecenia Powiel linię ?
Kilka podobnych przykładów:
- w Notepad ++ mogę powielić bieżącą linię za pomocą: Ctrl+D
- w EditPlus : Ctrl+J
- w NetBeans : Ctrl+ Shift+ ↓/↑
- w Eclipse , Ctrl+ Alt+ ↓/↑
- w Vi / Vim ,yyp
- itp.
Czy w Visual Studio 2008 jest skrót do polecenia Powiel linię ?
Kilka podobnych przykładów:
Odpowiedzi:
Ctrl + D
Ctrl + D
(edycja) Ta funkcja jest teraz wbudowana w VS2017: Ctrl+ E, Vduplikuje linię, jeśli nic nie jest zaznaczone, lub duplikuje zaznaczenie. Możesz przypisać go do innej kombinacji klawiszy lub znaleźć w menu:
Zobacz to odniesienie, aby uzyskać więcej informacji.
Jak wspomniano @cand, możesz po prostu zrobić Ctrl+ C; Ctrl+ V.
Ctrl+ Cskopiuje linię, jeśli nic nie zostanie wybrane.
Jeśli chcesz zaimplementować bardziej kompletne rozwiązanie, być może w celu utworzenia prostszego skrótu klawiaturowego lub nie chcesz modyfikować schowka, zapoznaj się z tym przewodnikiem:
Zduplikowane polecenie wiersza dla programu 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 ModuleAby utworzyć makro, po prostu przejdź do eksploratora makr („Narzędzia-> Makra-> Eksplorator makr” lub Alt+ F8) i skopiuj wklej kod w nowym module. Teraz po prostu przypisz do niego skrót klawiaturowy:
- przejdź do Narzędzia-> Opcje ...
- w obszarze Środowisko kliknij Klawiatura
- w polu tekstowym „Pokaż polecenia zawierające” wpisz „duplikuj” (zgodnie z nazwą nadaną modułowi).
- powinieneś teraz zobaczyć makro na poniższej liście
- wybierz „Edytor tekstu” z listy „Użyj nowego skrótu w”
- ustaw fokus w polu tekstowym „Naciśnij klawisze skrótu” i naciśnij kombinację na klawiaturze, której chcesz użyć ( Ctrl+ Shift+ Dw moim przypadku)
- naciśnij przycisk „Przypisz”
- skrót powinien być teraz widoczny w polu tekstowym „Skróty do wybranych poleceń”
- naciśnij przycisk OK
I to wszystko. Cieszyć się!
<div>Profile.UserName: <%=Profile.UserName %></div>- po powielając tę linię za pomocą tego makra, staje się, co następuje: <div>Profile.UserName: <%=Profile.UserName %></div> %></div>. Jak widać ostatnia część jest „powtarzana”. Jeśli nie ma w nim bloków kodu po stronie serwera, działa OK. Czy znasz to obejście? Nawiasem mówiąc, kolejną interesującą rzeczą, której doświadczyłem, jest to, że to makro jest stosunkowo „wolne”, czego się nie spodziewałem ... :)
Istnieje bezpłatne rozszerzenie, które możesz pobrać tutaj, które pozwala powielać linie bez zastępowania zawartości schowka.
Domyślnie jest powiązany z Alt+ D, ale możesz go zmienić na dowolne, przechodząc do Narzędzia-> Opcje-> Środowisko-> Klawiatura. Wpisz „Duplicate” w polu wyszukiwania i poszukaj „Edit.DuplicateSelection” i edytuj skrót do dowolnej pozycji. Wolę Ctrl+ Dbyć spójnym z innymi edytorami.
Edit.DuplicateSelectionnie wydaje się być obecny w VSE 2013. Albo cokolwiek innego z pojęciem dwóch egzemplarzach w rzeczywistości.
To proste Ctrl+ C; Ctrl+ V, sprawdź ten link . Tak długo, jak nie wybierzesz żadnego tekstu, spowoduje to zduplikowanie linii, na której znajduje się kursor po naciśnięciu Ctrl+ C.
Ctrl+ C+ Vdziała dla mnie na VS2012 bez rozszerzenia.
Ctrl+ Ddziała dla mnie w VS2012 z Resharper. To skrót klawiszowy Resharpera.
W Visual Studio 2013 można użyć Ctrl+ C+V
Oto makro oparte na makro w linku opublikowanym przez Waela, ale poprawione w następujących obszarach:
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
Jeśli podoba Ci się duplikowanie linii (lub bloku) stylu zaćmienia za pomocą CTRL+ ALT+ UPlub CTRL+ UP+ DOWN, 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
Dlaczego tak długo opracowano metody osiągnięcia czegoś tak prostego? Pobieranie i instalowanie rozszerzenia od Microsoft zajmuje mniej niż minutę. Strona mówi, że domyślnie powiąże go z ALT+ D, ale dla mnie powiązało go z CTRL+ Dautomatycznie w Visual Studio Community 2015 bez żadnych zmian.
W kodzie Visual Studio ( WebMatrix ):
Kopiuj linie w dół: Shift+ Alt+down
Kopiuj linie w górę: Shift+ Alt+up
Usuń linie: Ctrl+ Shift+k
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 ludziom.
Podświetl wiersz, który chcesz powielić. Naciśnij klawisz Control, kliknij podświetlony tekst myszką i przeciągnij do miejsca, do którego chcesz przejść. Skopiuje podświetlony tekst.
Ponieważ nie mogę używać makr w programie Visual Studio 2013, znalazłem wtyczkę Visual Studio (korzystam z niej w 2012 i 2013 roku). Duplikat zaznaczenia powiela zaznaczenia i całe linie - muszą być tylko częściowo zaznaczone. Standardowy skrót to ALT+ D.
Nie wiem, czy to istnieje w Visual Studio 2008, ale w Visual Studio 2010+ możesz łatwo to zrobić:
Nie wybieraj niczego, a następnie naciśnij Ctrl+ CA następnie (bez robienia czegokolwiek innego) Ctrl+V
W Visual Studio 2017 i być może w innej wersji Bez potrzeby Makro lub Rozszerzenie ,
Tools > Options > Environment > Keyboards Show commands containing:pisaniaEdit.DuplicatePress shortcut keys:naciśnij Ctrl+ Di kliknij AssignprzyciskOKaby zapisać nowy skrót klawiaturowyKorzystam z makra, które opublikował Wael: Duplikat polecenia linii dla Visual Studio , ale przestało działać tydzień temu, zakładałem, że z powodu aktualizacji systemu Windows. I miałem rację, od lutego 2014 r. Makra zostały wyłączone w VS2010 (i najwyraźniej w 2008 r.).
Aby to naprawić, musisz odinstalować aktualizacje zabezpieczeń lub dodać jeden wiersz kodu do plików konfiguracyjnych, jak pokazano tutaj .
Na 64-bitowym komputerze z systemem Windows domyślne ścieżki do tych plików to:
C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.configC:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config
...
<configuration>
<runtime>
<AllowDComReflection enabled="true"/>
...

Państwo musi uruchomić edytor tekstowy z prawami administratora lub nie będzie działać! Mamy nadzieję, że pomoże to każdemu, kto nagle ma pod spodem swoją funkcję makr.
dla programu Visual Studio 2012, 2013, 2015, 2017 kliknij link i pobierz rozszerzenie
https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection
Teraz przejdź do Narzędzia> Opcje> Klawiatura i wpisz „Duplikuj” 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 w przypadku każdego innego polecenia.
Po prostu umieść mysz na linii, aby skopiować i zrób CTRL+ C, a następnie CTRL+ Vna tej samej linii. Działa jak magia :-)
W Visual Studio 2008 możesz użyć CTRL+ C+V
Dla tych, którzy nadal oglądają to pytanie w Visual Studio po 2008 roku, dodano prawdziwy Edit.Duplicate:
Ctrl+ Dto nowy skrót wprowadzony w wersji VS 2017 w wersji 15.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ą bezpośrednio pod linią, na której jest ustawiony fokus. Jeśli chcesz powielić określony zestaw kodu, po prostu wybierz część kodu, którą chcesz powielić, przed wywołaniem polecenia duplikowania kodu.
Nie wpłynie to na twój schowek
W przypadku programu Visual Studio Code 2019 :
Edytuj skróty klawiaturowe menu za pomocą: ctrl+k i ctrl+s
Edytuj „Kopiuj wiersz w dół” ( Shift+ Alt+ DownArrow) do własnego skrótu.
Można go znaleźć za pomocą identyfikatora polecenia: editor.action.copyLinesDownAction
Dla mnie to ctrl +d
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 chcesz zastąpić mój skrót, który brzmiał: „powielony tekst” :)
W Visual Studio 2010 kopiujesz całą linię, na której kursor jest włączony CTRL+, INSERTnastępnie możesz użyć Ctrl+ Vlub SHIFT+, INSERTaby go wkleić.
VS 2017 jego Ctrl+ Dlub Ctrl+ C; Ctrl+ V
oba działają dla mnie.
Polecenie, które chcesz, to Edit.Duplicate . Jest on odwzorowywany na CtrlE, CtrlV. To nie zastąpi twojego schowka.
Używam linku aplikacji: AutoHotkey z poniższym kodem zapisanym w CommentDuplikateSaveClipboard.ahkpliku. Możesz edytować / usuwać skróty, to proste.
Mam link do tego pliku "Shortcut to CommentDuplikateSaveClipboard.ahk"w AutostartWindows.
Ten skrypt chroni Twój schowek.
Jeśli jesteś bardziej ciekawy, dodaj skróty do skryptuableable / enable.
Czasami używam bardzo imponujące Multi Clipboardskrypt do łatwego uchwytu z wielu clipszapisywane na dysku i korzystania z CTRL+ C, X, Vkopiować, wklejać, wycinać, następny, poprzedni, usuń ten, 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
Brak odpowiedzi, po prostu użyteczny dodatek: jako darmowy pomysł właśnie wymyśliłem (cóż ... ehm ... dostosowałem kod opublikowany przez Lolo) makro RemoveLineOrBlock. Cieszyć się!
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
w VS2019, a także w VS2017 możesz wybrać Narzędzia-> Opcje-> Klawiatura i możesz wybrać w rozwijanym schemacie opcję Resharper (Visual Studio) , a otrzymasz mapowanie tak, jakbyś używał Resharper , w tym przypadku Ctrl+ Dzrobi lewę do powielenia linii. W każdym razie, na podstawie dokumentacji, powinno to być poza bramą w Visual Studio 2017 w wersji 15.8 lub nowszej
W programie Visual Studio 2010 spróbuj użyć tych poleceń do szybkiego duplikowania linii (używa schowka):
Kliknij linię, którą chcesz skopiować. Ctrl+ Cskopiuje tę linię.
Następnie naciśnij Ctrl+ Shift+, Enteraby wstawić puste miejsce poniżej punktu wstawiania
(Alternatywnie użyj Ctrl+, Enteraby wstawić pustą linię powyżej punktu wstawiania.)
Następnie po prostu użyj Ctrl+, Vaby wkleić linię.