78

AltVS2010Up/Downでは、Java 時代に Eclipse で使用していたのと同じように、コード行を上下に移動するためのショートカットを設定しました。

Power Tools とマクロ (VS2010 でこのショートカットを設定する方法) は VS2012 では使用できないため、これを機能させるにはどうすればよいですか?

Resharper がこれを実行できると誰かが言っているのを見たことがありますが、火と水が大好きなので、それを実行できるコマンドのリストにコマンド名が見つかりません。ReSharper_MoveUp/MoveDown を試しましたが、行が上下に移動しません:

Move_Up コマンドではうまくいきませんでした

これにより、テキストのブロックが上下に移動します。行ごとにアップまたはダウンしたいだけで、派手なロジックはありません。前

私が持っているもの

ALT+の後Up(カーソルが WriteLine 行にある場合)、これを見たいと思います:

行を 1 つ上に移動、括弧内、インデント

私はこれらのスレッドを見てきました: Visual Studio での Eclipse の ALT+UP/DOWN (行の移動) に相当するものは何ですか? Visual Studio: 行を上下に移動し、最近の変更を移動するためのホットキーですが、提案されたソリューションはいずれも VS2012 では機能しません。

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

UPD 2012 年 11 月 7 日: . 拡張機能は Visual Studio 2012 に追いついています。現在、この機能を提供する拡張機能を少なくとも 3 つ知っています。

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

UPD 2015 年 5 月 10 日VS2015 RC をインストールしたところ、これは既に組み込まれています。 MoveLineUp/Down

4

9 に答える 9

35

更新: ハザー、Productivity PowerTools VS2012が利用可能になり、この機能を提供します (別の個人的なお気に入りであるTools.AddEndTokenAtTheEnd.)

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

于 2012-10-02T18:37:50.280 に答える
10

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

[ツール] -> [オプション] -> [環境] -> [キーボード] を開きます (図のように)。

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

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

于 2012-08-17T16:43:58.697 に答える
7

Resharper をお持ちの場合は、Ctrl+ Shift+ Alt+を押して現在の行を上に移動できます。またはCtrl+ Shift+ Alt+で 1 行下に移動します。

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

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

于 2012-08-20T21:41:51.873 に答える
2

多くの人がその他を推奨しているようですが。Visual Studio 拡張機能と Resharper を使用する場合、この目標を達成するためのネイティブホットキーがあることを指摘したいと思います。Resharper がデフォルトのホットキーを MoveUp および MoveDown バージョンに置き換えたため、答えを見つけようとしてこの質問にたどり着きました。

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

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

  • Edit.MoveSelectedLinesDown
  • Edit.MoveSelectedLinesUp

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

いずれにせよ、私は Visual Studio のリスト内で正確なホットキーを見つけるのに問題があり、これらを見つけるのにかなりの時間がかかりました。

于 2014-12-11T20:55:49.443 に答える
2

Move Line Command拡張機能を使用できます。

Formula349 のコメントに従ってください。

2012年のままでこれを機能させることができました。

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

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

于 2012-09-21T11:58:19.520 に答える
0

ReSharper の上へ移動および下へ移動のショートカットはスマートです。現在の行を移動するだけでなく (コードが壊れやすくなります)、メソッド本体を構成するステートメントのリスト内で現在のステートメントを上下に移動します。これは、1 行のコードを移動するよりもはるかに強力です。

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

まず、ステートメントをブロックのに移動し、次に+ + +を使用してスコープ内でプッシュダウンします。ステートメントはブロック内に配置され、上下を使用してブロック内を移動できます。+ + +を使用して、ブロック外のスコープ内でプルアップすることもできます。ifCtrlShiftAltRightifCtrlShiftAltLeftif

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

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

詳細については、ヘルプ ページを参照してください。

于 2017-01-12T09:19:15.493 に答える