Чи є ярлик для команди дублювання рядків у Visual Studio 2008?
Кілька подібних прикладів:
- у Блокноті ++ я можу дублювати поточний рядок із: Ctrl+D
- у EditPlus : Ctrl+J
- в NetBeans : Ctrl+ Shift+ ↓/↑
- в Eclipse , Ctrl+ Alt+ ↓/↑
- у Vi / Vim ,yyp
- тощо.
Чи є ярлик для команди дублювання рядків у Visual Studio 2008?
Кілька подібних прикладів:
Відповіді:
Ctrl + D
Ctrl + D
(редагувати) Ця функція тепер вбудована у VS2017: Ctrl+E , Vдублює рядок, якщо нічого не вибрано, або вибір дублікатів. Ви можете призначити її іншій комбінації клавіш або знайти її в меню:
Додаткову інформацію див. У цій посиланні .
Як згадував @cand, ви можете просто зробити Ctrl+ C;Ctrl+ V.
Ctrl + C скопіює рядок, якщо нічого не вибрано.
Якщо ви хочете реалізувати більш повне рішення, можливо, створити більш простий ярлик клавіатури, або ви не хочете створювати буфер обміну, див. Цей посібник:
Копіювати дублюючу лінію для 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
Щоб створити макрос, просто перейдіть до Explorer Explorer ("Інструменти-> Макроси-> Макропровідник" або Alt+ F8) та скопіюйте вставити код у новий модуль. Тепер просто призначте для неї комбінацію клавіш:
- перейдіть до Інструменти-> Опції ...
- у розділі "Навколишнє середовище" натисніть Клавіатура
- у текстове поле "Показати команди, що містять" введіть "дублікат" (це відповідно до імені, яке ви дали модулю.)
- тепер ви повинні побачити макрос у списку нижче
- виберіть "Редактор тексту" зі списку "Використовувати новий ярлик в"
- встановіть фокус у текстовому полі "Натисніть клавіші швидкого доступу" та натисніть комбінацію на клавіатурі, яку ви хочете використовувати для цього ( Ctrl+ Shift+D у моєму випадку)
- натисніть кнопку "Призначити"
- тепер ви повинні побачити ярлик у текстовому полі "Ярлики для вибраної команди"
- натисніть кнопку ОК
І це все. Насолоджуйтесь!
<div>Profile.UserName: <%=Profile.UserName %></div>
- після того, дублюючи цей рядок з допомогою цього макросу, стає наступним: <div>Profile.UserName: <%=Profile.UserName %></div> %></div>
. Як бачите, остання частина "повторюється". Коли в ньому немає блоків коду стороні сервера, він працює добре. Чи знаєте ви вирішення цього питання? До речі, ще одна цікава річ, яку я пережив - це те, що цей макрос відносно "повільний", чого я не очікував ... :)
Там в вільне розширення , яке ви можете скачати тут , що дозволяє вам повторювані рядки без заміни вмісту буфера обміну.
За замовчуванням його прив’язано до Alt+ D, але ви можете змінити його на все, що завгодно, перейшовши до Інструменти-> Опції-> Навколишнє середовище-> Клавіатура. Введіть "Копіювати" у вікні пошуку та знайдіть "Edit.DuplicateSelection" та відредагуйте ярлик до того, що вам потрібно. Я вважаю за краще Ctrl+ Dбути узгодженим з іншими редакторами.
Edit.DuplicateSelection
як видається, немає у VSE 2013. Або що-небудь інше із дублікатом терміна .
Це просто Ctrl+ C; Ctrl+ V, перевірте це посилання . Поки ви не виберете жодного тексту, це буде дублювати рядок, курсор закінчується, коли ви натискаєте Ctrl+ C.
Ctrl+ C+ Vпрацює на VS2012 без розширення.
Ctrl+ Dпрацює для мене в VS2012 з Resharper. Це гаряча клавіша Resharper.
У Visual Studio 2013 можна використовувати Ctrl+ C+V
Ось макрос, який базується на посиланні, розміщеному Wael, але вдосконаленому в наступних областях:
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
Якщо вам подобається дублювання ліній (або блоків) стилів затемнення, використовуючи CTRL+ ALT+ UPабо CTRL+ UP+ DOWN, нижче я публікую макроси для цієї мети:
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
Чому так багато давно намальованих методів зробити щось таке просте? Щоб завантажити та встановити розширення від Microsoft, потрібно менше хвилини. На сторінці написано, що вона за замовчуванням прив’яже її до ALT+ D, але для мене вона автоматично прив’язує до CTRL+ Dу Visual Studio Community 2015 без будь-яких змін.
У візуальному коді студії ( WebMatrix ):
Скопіюйте рядки вниз: Shift+Alt +down
Копіювати рядки вгору: Shift+Alt +up
Видалити лінії: Ctrl+ Shift+k
Хоча я усвідомлюю, що це не комбінація клавіш, я зрозумів, що додам це, оскільки це не вимагає використання буфера обміну і може допомогти деяким людям.
Виділіть рядок, який потрібно дублювати. Натисніть клавішу управління, клацніть мишею по виділеному тексту та перетягніть туди, куди ви хочете піти. Це буде дублювати виділений текст.
Оскільки я не можу використовувати макроси у своїй Visual Studio 2013, я знайшов плагін Visual Studio (використовую його у 2012 та 2013 роках). Дублікат виділення дублює виділення та цілі рядки - їх потрібно лише частково вибрати. Стандартний ярлик - ALT+ D.
Я не знаю, чи існує це у Visual Studio 2008, але в Visual Studio 2010+ ви легко можете це зробити:
Не вибирайте нічого, потім натисніть Ctrl+ CА потім (не роблячи нічого іншого) Ctrl+V
У Visual studio 2017 та, можливо, в іншій версії Не потрібно макро чи розширення ,
Tools > Options > Environment > Keyboards
Show commands containing:
записомEdit.Duplicate
Press shortcut keys:
і натисніть Ctrl+ Dта натисніть Assign
кнопкуOK
щоб зберегти нову комбінацію клавішЯ використовував макрос, який розмістив Wael: Копія рядка дублювання для Visual Studio , але тиждень тому він перестав працювати, я припустив, що через оновлення Windows. І я був прав, станом на лютий 2014 року макроси були відключені у VS2010 (і, мабуть, 2008 р.).
Щоб виправити це, вам доведеться або видалити оновлення безпеки, або додати один рядок коду в конфігураційні файли, як показано тут .
На 64-бітній машині Windows шляхами до цих файлів за замовчуванням є:
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"/>
...
Ви ОБОВ'ЯЗКОВО запускаєте текстовий редактор з правами адміністратора, інакше він не працюватиме! Сподіваємось, це допомагає іншим, у кого раптом макро-функціональність витягнута з-під них.
для Visual Studio 2012, 2013, 2015, 2017 перейдіть за посиланням та завантажте розширення
https://marketplace.visualstudio.com/items?itemName=ctlajoie.DuplicateSelection
Тепер перейдіть до Інструменти> Параметри> Клавіатура та введіть "Копіювати" у полі пошуку (повна командна рядок - "Редагувати.ДуплікаціяВибір"). Тут ви можете прив’язати його до будь-якого ярлика так само, як і для будь-якої іншої команди.
Просто поставте мишу на рядок, щоб скопіювати і зробити CTRL+ C, потім CTRL+ Vу тому ж рядку. Діє як магія :-)
У візуальній студії 2008 можна використовувати CTRL+ C+V
Для тих, хто все ще переглядає це питання у Visual Studio після 2008 року, додано справжній редактор.Дуплікація:
Ctrl+ D- це новий ярлик, представлений у VS 2017 v15.6, який, здається, робить саме те, що Ctrl+ E,V
Ctrl + D буде дублювати рядок, в якому знаходиться курсор, і вставить його прямо під лінією у фокусі. Якщо ви хочете дублювати певний набір коду, просто виберіть частину коду, яку ви хочете дублювати, перш ніж викликати команду дублюючого коду.
Це не вплине на ваш буфер обміну
Для Visual Studio Code 2019 :
Редагування комбінацій клавіш меню за допомогою: ctrl+k і ctrl+s
Відредагуйте "Копіювати рядок вниз" ( Shift+ Alt+ DownArrow) на власний ярлик.
Ви можете знайти його за допомогою ідентифікатора команди: editor.action.copyLinesDownAction
Для мене це ctrl+d
http://www.jetbrains.com/resharper/
Моя історія: почав працювати в новій компанії, ніколи раніше не використовував Visual Studio. Одне з перших речей - як дублювати рядок. Після налаштування макросу ReSharper сказав мені: чи хотіли б ви замінити мій ярлик, який був: "дублікат тексту" :)
VS 2017 його Ctrl
+ D
або Ctrl
+ C
; Ctrl
+ V
вони обидва працюють на мене.
Команда, яку ви хочете, - Edit.Duplicate . Він відображається CtrlE, CtrlV. Це не замінить ваш буфер обміну.
Я використовую посилання на додаток: AutoHotkey з наведеним нижче кодом, збереженим у CommentDuplikateSaveClipboard.ahk
файлі. Ви можете редагувати / видаляти ярлики, це легко.
У мене є посилання на цей файл "Shortcut to CommentDuplikateSaveClipboard.ahk"
в Autostart
у вікнах.
Цей скрипт захищає ваш буфер обміну.
Якщо вам цікавіше, ви додасте ярлики до цього сценарію, що виконується / увімкніть.
Я іноді використовую дуже вражаючий Multi Clipboard
сценарій для легкої ручки з багатьма clips
збережені на диску і використання з CTRL+ C, X, Vкопіювати, вставити, вирізати, наступна, попередня, це видалити, видалити все.
;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
Не відповідь, а лише корисне доповнення: як халява, я щойно вигадав (ну ... е-е ... коригував код, розміщений Лоло) макрос RemoveLineOrBlock. Насолоджуйтесь!
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
у VS2019, а також у VS2017 ви можете вибрати Інструменти-> Параметри-> Клавіатура, і ви можете вибрати в схемі випадаючий Resharper (Visual Studio) параметр, і ви отримаєте відображення, як якщо б ви використовували Resharper , у цьому випадку Ctrl+ Dзробить трюк для дублювання рядка. У будь-якому випадку, виходячи з документації, це повинно бути поза воротами у Visual Studio 2017 версії 15.8 або новішої
Для візуальної студії 2010 спробуйте скористатися цими командами для швидкого дублювання рядків (використовує буфер обміну):
Клацніть на рядок, який потрібно скопіювати. Ctrl+ Cскопіює цей рядок.
Потім натисніть Ctrl+ Shift+Enter щоб вставити пробіл під точкою вставки
(Крім того, використовуйте Ctrl+, Enterщоб вставити порожній рядок над точкою вставки.)
Потім просто використовуйте Ctrl+, Vщоб вставити рядок.