Jaki jest odpowiednik ALT + UP / DOWN zaćmienia (linia ruchu) w programie Visual Studio?

104

W Eclipse wybranie linii i naciśnięcie Alt+ / przesunie linię w górę iw dół, co jest szybkim sposobem uniknięcia kopiowania i wklejania. Czy istnieje odpowiednik w programie Visual Studio?

Roberto
źródło
3
Chciałem wiedzieć, jak to zrobić w zaćmieniu, teraz wiem.
Dan
2
Zauważ, że w VS 2013+ ten skrót jest teraz obsługiwany
benscabbia

Odpowiedzi:

141

W programie Visual Studio 2013 i nowszych wersjach ta funkcja jest wbudowana. ALT + W GÓRĘ / W DÓŁ przesuwa wiersz w górę lub w dół.

Jeśli potrzebujesz tej funkcji w VS2012 (działa również z VS2010), zapoznaj się z rozszerzeniem MoveLine Visual Studio lub pakietem Productivity Power Tools .

Kevin Aenmey
źródło
35
Niewiarygodne, że potrzebujesz do tego wtyczki
void.pointer
co z elementem podrzędnym po wybraniu tagu? na przykład wybrałem znacznik DIV i chcę przesunąć w górę cały element potomny, zamiast wybierać myszą.
Arash
14
Jeśli chcesz go ponownie powiązać, nazwa polecenia to „Edit.MoveSelectedLinesUp” w obszarze Narzędzia> Opcje> Środowisko> Klawiatura.
Joan Charmant
W Ubuntu 16.04 działało po wyjęciu z pudełka! Wielkie dzięki!
James Freitas,
1
@Shimmy, faktycznie masz lepszą opcję z Ctrl + Shift + Alt + klawisze kierunkowe. Możesz go przenieść w dowolne miejsce.
scottheckel
79

Ctrl+ Shift+ Alt+ / / / ReSharper jest jeszcze potężniejsze - na początku linii przesuwa całą linię, ale może być również używany do przenoszenia całych metod, zmiany kolejności parametrów itp.

Omer Raviv
źródło
4
Również nie działa, jeśli R # uważa, że ​​bieżąca linia jest częścią większej konstrukcji. Np. Spróbuj przenieść usinginstrukcję z góry pliku o kilka linii w dół, aby znalazła się wewnątrz namespacedeklaracji. Gdy wiersz zawierający znak usingznajduje się w wierszu poniżej namespacedeklaracji, R # połączy je i następne wywołanie <kbd> Ctrl </kbd> + <kbd> Shift </kbd> + <kbd> Alt </kbd> + <kbd> & darr; </kbd> przeniesie zarówno linię, jak namespacei usinglinię na koniec poprzedniego namespacebloku kodu.
Carl G
1
Wydaje się również, że nie działa przenoszenie linii przez granice metod.
Robin Coe
5

Działa to teraz po wyjęciu z pudełka z Visual Studio 2013, tak samo jak w Eclipse.

Drealmer
źródło
2
Nie do końca to samo, nie koryguje wcięcia
Sentry,
@Sentry ctrl + k, D
John Demetriou
5

Dla mnie w Visual Studio 2019 jest domyślnie zamknięty.

Aby go otworzyć:

Narzędzia -> Opcje -> Klawiatura, a następnie wybierz Edit.MoveSelectedLinesUp , kliknij przycisk „Naciśnij klawisze skrótu” i naciśnij Alt + Up (lub cokolwiek chcesz). A drugi to Edit.MoveSelectedLinesDown , kliknij "Naciśnij klawisze skrótu" i naciśnij Alt + Down (lub cokolwiek chcesz).

Umut Sun
źródło
1
Odkryłem również, że nie miały one domyślnego powiązania klawiszy w VS 2019
Andrew W.
3

W programie Visual Studio 2013 i nowszych wersjach można przesuwać wiersze w górę iw dół za pomocą Alt+ / Alt+ . Niestety, nie dostosuje to wcięcia, jeśli będziesz poruszać się między blokami, na dzień dzisiejszy tylko ReSharper (i wszystkie inne IDE autorstwa Jetbrains, w tym Rider) może ci w tym pomóc.

Aby przenieść całe bloki kodu, możesz przesunąć kursor do jego głowy i dwukrotnie szybko nacisnąć Ctrl+, maby go zwinąć, a następnie użyć powyższego polecenia, aby go przesunąć.

Oto zgrabne odniesienie do wszystkich domyślnych skrótów klawiaturowych w różnych wersjach programu Visual Studio.

Andreas Bergström
źródło
1

Dzięki rozszerzeniu VSCommands masz dokładnie ten skrót klawiaturowy. A tak przy okazji, pasek narzędzi powiadomień Stack OVerflow :)

eFloh
źródło