Переместить строку вверх/вниз в 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 (по крайней мере) у меня ниже

введите описание изображения здесь