web-dev-qa-db-ja.com

Visual Studio 2012で行を上下に移動するショートカット

VS2010では、ショートカットが設定されていました Alt+Up/Down Java日でEclipseにあったように、コードの行を上下に移動します。

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

私はこれらのスレッドを見ました: Visual StudioのEclipseのALT + UP/DOWN(行の移動)に相当するものは何ですか?Visual Studio:行を上下に移動し、最近の位置を移動するホットキーchanges 、ただし、提案された解決策はいずれもVS2012では機能しません。

他のアイデアはありますか?

UPD 2012年11月7日:。拡張機能はVisual Studio 2012に追いついています。この機能を提供する少なくとも3つの拡張機能がわかりました。

UPD 2012年11月15日:ここで必要なことを行うと主張する別の拡張機能を見つけました。まだ試していない: LineMan Extension

UPD 2015年5月10日VS2015 RCをインストールしたばかりで、これはすでに組み込まれています: MoveLineUp/Down

72
trailmax

更新:huzzah、 生産性PowerTools VS2012 が利用可能になり、この機能を提供します(個人的なお気に入り、 Tools.AddEndTokenAtTheEnd 。)

MoveLine Extension (VS 2012と互換性があります。VSのキーボードショートカットツールでコマンドを表示するには、VSを手動で再起動する必要がありました。)

33
Carl G

Visual Studio 2013以降を使用してこの質問に答えた人のために、この機能はプログラムに直接組み込まれています。ただ使う AltUp そして AltDown カーソルで行を移動するか、選択した行を上下に移動します。

Tools> Options> Environment> Keyboardで再バインドする場合、キーはEdit.MoveSelectedLinesUpおよびEdit.MoveSelectedLinesDown。最初に、他の既存のキーから新しい組み合わせを削除する必要がある場合があります。

55
Keavon

ReSharperをインストールします。

[ツール]-> [オプション]-> [環境]-> [キーボード]を開きます(図を参照)

  1. 「ReSharper.ReSharper_MoveUp」を見つけます
  2. [新しいショートカットの使用場所:]で、[テキストエディター]を選択します。
  3. [ショートカットキーを押す:]をクリックして、ショートカットを押します(たとえば、Alt + ArrowUp)
  4. 「割り当て」ボタンを押します「ReSharper.ReSharper_MoveDown」と同じ

追伸単一行および複数の選択行に対しては正常に機能しますが、1行移動した後は選択を削除します。 1つの選択で複数の行を複数回移動する方法があることを願っています。

Resharperがある場合は、ヒットすることができます Ctrl + Shift + Alt +  現在の行を上に移動します。または Ctrl + Shift + Alt +  1行下に移動します。

これは、Resharper 7(正確には7.0.97.60)のVisual Studioキーボードスキームを使用したVS 2012 Premiumで機能します。

編集:これは「ReSharper.ReSharper_MoveUp」/「MoveDown」コマンドにマッピングされます。

7
YetAnotherUser

Visual Studio 2017(少なくとも)には以下があります

enter image description here

4
Vineel Kovvuri

多くの人がその他を推奨しているようです。 Visual Studio Extensions and Resharper、この目標を達成するnativeホットキーがあることを指摘したいと思います。 ResharperがデフォルトのホットキーをMoveUpおよびMoveDownバージョンに置き換えたため、この質問に答えを見つけようとしました。

そして、Resharperのホットキーは物事を上下に動かしますが、それらは元のポスターが探しているものではなくnotであり、私が望んでいたものではありません。これらのホットキーは、メソッドとコードのブロックを移動しますnot個々の行。

Visual Studioには、選択した行を上下に移動する2つのホットキーコマンドがあります。これらのホットキーは次のとおりです。

  • Edit.MoveSelectedLinesDown
  • Edit.MoveSelectedLinesUp

ただし、Visual Studio 2013を使用しているため、これらが古いバージョンに存在するかどうかはわかりません。 2012にこれらのホットキーがない場合、おそらく拡張機能が唯一のソリューションです。

いずれにせよ、Visual Studioのリスト内で正確なホットキーを見つけるのに問題があり、それらを見つけるのにかなり時間がかかったので、自分のソリューションが自分と同じような状況にある他の誰かを助けることができればと思います。

2
JesseNewman19

Move Line Command extensionを使用できます。

Formula349のコメントに従うだけです。

これを2012年でそのまま使用することができました。

パッケージの名前を.Zipに変更し、すべてのファイルをフォルダーに解凍します。 extension.vsixmanifestファイルを編集し、SupportedProducts XMLノードを探します。 Version = "10.0"をVersion = "11.0"に変更します。

フォルダの内容を再圧縮し、名前を.vsixに戻します。よく働く!

2
gius

Shift+Del その後 Ctrl+V

Shift+Del cut(と同じ Ctrl+X)カーソルが置かれている現在の行の操作。

その後、使用することができます Ctrl+V 好きな場所に貼り付けます。

良いことは、現在の完全な行を選択する必要はなく、カーソルを行に配置するだけです。

このショートカットを使用することの1つの欠点は、目の前で線が動いている(上または下)livelyを見ることができないことです。

1
Saurav Sahu

ReSharperの上下のショートカットはスマートです-現在の行を移動するだけでなく(簡単にコードが破損する可能性があります)、メソッド本体を構成するステートメントのリスト内で現在のステートメントを上下に移動します。これは、コードを1行だけ移動するよりもはるかに強力です。

ただし、これはifブロック内でステートメントを取得するのに役立ちません。ここでは、次の2つのいずれかを実行する必要があります。

最初に、ステートメントをaboveifブロックの上に移動してから、 Ctrl+Shift+Alt+Right スコープ内でプッシュダウンします。これでステートメントはifブロック内に配置され、上下に移動してその中を移動できます。使用することもできます Ctrl+Shift+Alt+Left ifブロックの外側のスコープでプルアップします。

または、ifブロックの右中括弧の外側にテキストキャレットを配置して、使用できます。 Ctrl+Shift+Alt+Down 中括弧を下に移動するには、ifブロック内のステートメントを含む次のステートメントをステップオーバーします。

これらのキーは、単一のステートメントを移動するだけではありません。メソッドまたはクラス宣言にテキストキャレットを配置すると、 Up そして Down メソッドまたはクラス宣言全体を上下に移動します。メソッドのパラメーターリストにテキストキャレットを配置すると、 Left そして Right 個々のパラメーターを再配置します(そして Alt+Enter 署名の変更リファクタリングを呼び出すことができます)。

詳細は ヘルプページ をご覧ください。

0
citizenmatt