Переместить строку вверх/вниз в Visual Studio 2012
В VS2010 у меня была комбинация клавиш Alt + Up/Down для перемещения строк кода вверх или вниз, как и в Eclipse в мои дни Java.
Теперь, когда Power Tools и макросы (как я установил этот ярлык в VS2010), не доступны в VS2012, как я могу заставить это работать?
Я видел, как кто-то упомянул, что Resharper может это сделать, но для любви к огню и воде я не могу найти имена команд в списке команд, которые могут это сделать.
Я пробовал ReSharper_MoveUp/MoveDown и не перемещает строки вверх/вниз:
![Move_Up command did not do the trick]()
Это перемещает блоки текста вверх и вниз. Я просто хочу по очереди вверх или вниз, никакой причудливой логики там.
Перед
![What I have]()
После Alt + Up (когда курсор находится на строке WriteLine), я хотел бы увидеть это:
![Line moved one up, inside the bracket, indented]()
Я видел эти потоки: Что эквивалентно для ALT + ВВЕРХ/ВНИЗ Eclipse (перемещение строки) в Visual Studio?, Visual Studio: горячие клавиши для перемещения строки вверх/вниз и перемещения по последним изменениям, но ни одно из предлагаемых решений не работает в VS2012.
Любые другие идеи?
UPD 7 ноября 2012:. Расширения догоняют Visual Studio 2012. Теперь я знаю как минимум 3 расширения, которые предоставляют эту функциональность:
UPD 15 ноября 2012: Просто наткнулся на другое расширение, которое утверждает, что оно делает то, что здесь требуется. Не пробовал, хотя: LineMan Extension
UPD 10 мая 2015 г. Просто установлен VS2015 RC, и это уже встроено:
![MoveLineUp/Down]()
Ответы
Ответ 1
Обновление: huzzah, Производительность PowerTools VS2012 теперь доступна и предлагает эту функциональность (наряду с другим личным фаворитом, Tools.AddEndTokenAtTheEnd
.)
Расширение MoveLine (совместимо с VS 2012; мне пришлось вручную перезапустить мой VS, чтобы увидеть команды в инструменте быстрого доступа VS. )
Ответ 2
Для тех, кто пришел по этому вопросу с помощью Visual Studio 2013 (или выше, я бы предположил), эта функция встроена прямо в программу. Просто используйте Alt Up и Alt Down для перемещения строки с помощью курсора или выбранных строк и вниз.
Если вы хотите переустановить его в Инструменты > Параметры > Средa > Клавиатура, то клавиши Edit.MoveSelectedLinesUp
и Edit.MoveSelectedLinesDown
. Возможно, вам придется сначала удалить новую комбинацию из других существующих ключей.
Ответ 3
Установите ReSharper.
Открыть Инструменты → Параметры → Среда → Клавиатура (как показано на рисунке)
- Найти "ReSharper.ReSharper_MoveUp"
- В "Использовать новый ярлык в:" выберите: "Текстовый редактор"
- Нажмите "Нажмите сочетания клавиш" и нажмите клавишу быстрого доступа (например, Alt + ArrowUp)
- Нажмите кнопку "Назначить"
То же самое с "ReSharper.ReSharper_MoveDown"
P.S. Прекрасно работает для одиночных линий и нескольких выделенных линий, но удаляет выделение после перемещения 1 строки. Надеемся, что есть способ переместить несколько строк несколько раз в один отбор.
Ответ 4
Если у вас есть Resharper, вы можете нажать Ctrl + Shift + Alt + ↑, чтобы переместить текущую строку вверх. или Ctrl + Shift + Alt + ↓, чтобы переместить одну строку вниз.
Это работает в VS 2012 Premium с клавиатурной схемой Visual Studio в Resharper 7 (7.0.97.60 до
быть точным).
Изменить: это сопоставляется с командами "ReSharper.ReSharper_MoveUp" / "MoveDown".
Ответ 5
Вы можете использовать Move Line Command.
Просто следуйте формуле349:
Я смог получить эту работу с 2012 как-есть.
Переименуйте пакет в .zip и распакуйте все файлы в папку. Отредактируйте файл extension.vsixmanifest и найдите SupportedProducts XML node. Измените версию = "10.0" на версию = "11.0".
Обновите содержимое папки и переименуйте обратно в .vsix. Отлично работает!
Ответ 6
В то время как многие люди, похоже, рекомендуют разное. Visual Studio Extensions и Resharper, я хотел бы указать, что есть горячая клавиша native, которая выполняет эту задачу. Я пришел к этому вопросу, пытаясь найти ответ, так как мой Resharper заменил горячие клавиши по умолчанию своими версиями MoveUp и MoveDown.
И хотя горячие клавиши Resharper перемещают вещи вверх и вниз, они не то, что ищет оригинальный плакат, и они не то, что я хотел. Эти горячие клавиши перемещают методы и блоки кода, а не отдельные строки.
В Visual Studio есть две команды горячих клавиш для перемещения выбранных строк вверх или вниз.
Эти горячие клавиши:
- Edit.MoveSelectedLinesDown
- Edit.MoveSelectedLinesUp
Однако я использую Visual Studio 2013, поэтому я не знаю, существуют ли они в более старой версии. Если в 2012 году нет этих горячих клавиш, возможно, расширение является единственным решением.
В любом случае, у меня была проблема с поиском точной горячей клавиши в списке визуальных студий, и мне потребовалось немало времени, чтобы найти их, поэтому я надеюсь, что моему решению удастся помочь кому-то другому в подобной ситуации. p >
Ответ 7
Shift + Del, а затем Ctrl + V
Shift + Del работает операция cut (такая же, как Ctrl + X) в текущей строке, на которой расположен курсор.
Затем вы можете использовать Ctrl + V, чтобы вставить его в любое место.
Хорошо, что вам не нужно выбирать полную текущую строку, только курсор должен быть расположен на линии.
Один недостаток использования этого ярлыка заключается в том, что вы не сможете увидеть линию, движущуюся (вверх или вниз), живую перед глазами.
Ответ 8
ReSharper перемещается вверх и вниз по ярлыкам - умнее - вместо того, чтобы просто перемещать текущую строку (что может легко привести к сломанному коду), она будет перемещать текущий оператор вверх и вниз в списке операторов, которые составляют тело метода, Это намного мощнее, чем просто перемещение одной строки кода.
Но это не поможет вам получить ваше утверждение внутри блока if
. Здесь вам нужно сделать одну из двух вещей.
Во-первых, переместите оператор над блоком if
, затем используйте Ctrl + Shift + Alt + Right, чтобы отбросить его в области видимости. Теперь оператор будет находиться внутри блока if
, и вы можете использовать его вверх и вниз, чтобы переместить его туда. Вы можете также использовать Ctrl + Shift + Alt + Left, чтобы потянуть его в области, вне блока if
.
В качестве альтернативы вы можете поместить текст курсора на внешнюю сторону закрывающей скобки блока if
и использовать Ctrl + Shift + Alt + Down, чтобы переместить фигуру вниз, перейдя к следующему операторов, включая их внутри блока if
.
Эти клавиши могут сделать намного больше, чем просто переместить один оператор. Если вы поместите курсор текста в объявление метода или класса, Up и Down будут перемещать весь метод или декларацию класса вверх и вниз. Если вы поместите текст в список параметров метода, Left и Right будут переупорядочивать отдельные параметры (а затем Alt + Enter может вызвать рефакторинг изменения подписи).
Подробнее в страницах справки.
Ответ 9
В Visual Studio 2017 (по крайней мере) у меня ниже
![введите описание изображения здесь]()