VS2010では、ショートカットが設定されていました Alt+Up/Down Java日でEclipseにあったように、コードの行を上下に移動します。
Power Toolsとマクロ(VS2010でこのショートカットを設定する方法)はVS2012では使用できないため、これを機能させるにはどうすればよいですか?
Resharperがこれを行うことができると誰かが言及したのを見ましたが、火と水の愛のために、それを行うことができるコマンドのリストにコマンド名が見つかりません。 ReSharper_MoveUp/MoveDownを試しましたが、行が上下に移動しません。
これにより、テキストのブロックが上下に移動します。行ごとに上下に移動するだけで、派手なロジックは必要ありません。前
後 ALT+Up (カーソルがWriteLine行にあるとき)私はこれを見たいです:
私はこれらのスレッドを見ました: Visual StudioのEclipseのALT + UP/DOWN(行の移動)に相当するものは何ですか? 、 Visual Studio:行を上下に移動し、最近の位置を移動するホットキーchanges 、ただし、提案された解決策はいずれもVS2012では機能しません。
他のアイデアはありますか?
UPD 2012年11月7日:。拡張機能はVisual Studio 2012に追いついています。この機能を提供する少なくとも3つの拡張機能がわかりました。
UPD 2012年11月15日:ここで必要なことを行うと主張する別の拡張機能を見つけました。まだ試していない: LineMan Extension
更新:huzzah、 生産性PowerTools VS2012 が利用可能になり、この機能を提供します(個人的なお気に入り、 Tools.AddEndTokenAtTheEnd
。)
MoveLine Extension (VS 2012と互換性があります。VSのキーボードショートカットツールでコマンドを表示するには、VSを手動で再起動する必要がありました。)
Visual Studio 2013以降を使用してこの質問に答えた人のために、この機能はプログラムに直接組み込まれています。ただ使う AltUp そして AltDown カーソルで行を移動するか、選択した行を上下に移動します。
Tools> Options> Environment> Keyboardで再バインドする場合、キーはEdit.MoveSelectedLinesUp
およびEdit.MoveSelectedLinesDown
。最初に、他の既存のキーから新しい組み合わせを削除する必要がある場合があります。
ReSharperをインストールします。
[ツール]-> [オプション]-> [環境]-> [キーボード]を開きます(図を参照)
追伸単一行および複数の選択行に対しては正常に機能しますが、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」コマンドにマッピングされます。
多くの人がその他を推奨しているようです。 Visual Studio Extensions and Resharper、この目標を達成するnativeホットキーがあることを指摘したいと思います。 ResharperがデフォルトのホットキーをMoveUpおよびMoveDownバージョンに置き換えたため、この質問に答えを見つけようとしました。
そして、Resharperのホットキーは物事を上下に動かしますが、それらは元のポスターが探しているものではなくnotであり、私が望んでいたものではありません。これらのホットキーは、メソッドとコードのブロックを移動しますnot個々の行。
Visual Studioには、選択した行を上下に移動する2つのホットキーコマンドがあります。これらのホットキーは次のとおりです。
ただし、Visual Studio 2013を使用しているため、これらが古いバージョンに存在するかどうかはわかりません。 2012にこれらのホットキーがない場合、おそらく拡張機能が唯一のソリューションです。
いずれにせよ、Visual Studioのリスト内で正確なホットキーを見つけるのに問題があり、それらを見つけるのにかなり時間がかかったので、自分のソリューションが自分と同じような状況にある他の誰かを助けることができればと思います。
Move Line Command extensionを使用できます。
Formula349のコメントに従うだけです。
これを2012年でそのまま使用することができました。
パッケージの名前を.Zipに変更し、すべてのファイルをフォルダーに解凍します。 extension.vsixmanifestファイルを編集し、SupportedProducts XMLノードを探します。 Version = "10.0"をVersion = "11.0"に変更します。
フォルダの内容を再圧縮し、名前を.vsixに戻します。よく働く!
Shift+Del その後 Ctrl+V
Shift+Del cut(と同じ Ctrl+X)カーソルが置かれている現在の行の操作。
その後、使用することができます Ctrl+V 好きな場所に貼り付けます。
良いことは、現在の完全な行を選択する必要はなく、カーソルを行に配置するだけです。
このショートカットを使用することの1つの欠点は、目の前で線が動いている(上または下)livelyを見ることができないことです。
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 署名の変更リファクタリングを呼び出すことができます)。
詳細は ヘルプページ をご覧ください。