質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

5388閲覧

VisualStudioでVSCodeの行選択(expandLineSelection)

mimitchymouse

総合スコア6

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

2クリップ

投稿2019/09/25 05:29

編集2019/09/25 07:43

前提・実現したいこと

VisualStudioでのキーボードショートカットの設定についてまた質問させてください。

VSCodeでの行選択 (Ctrl+L)
キーボードショートカットコマンド名:expandLineSelection

これをVisualStudioでも使いたいのですが、対応するコマンド名が見つけられないので、
あれば教えてください。

試したこと

拡張機能のKeyboard Shortcuts Manager
Add New ShortcutCommandから探してみたけど(自分には)見つけられませんでした。

補足情報

VisualStudio2019

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

無いようです。

拡張機能の Macros for Visual Studio をインストールし、[Home]→[Shift]+[End] を Macro1 に記録し、それに [Ctrl]+[L] を割り当ててください。
うちの環境では [Ctrl]+[L] にすでに行カットが割り当てられていたので、その割り当てを解除する必要がありました。

または自分で拡張機能を作るという手もあります。
Visual Studio 拡張機能の開発を始める

投稿2019/09/25 12:42

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mimitchymouse

2019/09/25 14:20

教えてもらった Macros for Visual Studio で疑似 [Ctrl]+[L] が作れました。 ありがとうございます! ですが、このままだとVSCodeの [Ctrl]+[L] のように、 [Ctrl]+[L] → ([Ctrl]押したまま) + [L] + [L] + [L] +... で任意の複数行選択が実現できなくて困っています。 ちなみにコメントに書くことではないのかもしれませんが、 今[Ctrl]+[L]を使って一番やりたいことは、『複数行をまとめて複製すること』です。 ここで質問して、VSCodeの [Ctrl]+[Shift]+[D](行を複製)をVisualStudioでもできるようにしました。 VSCodeで、 ================================================ 複数行選択:[Ctrl]+[L] → ([Ctrl]押したまま) + [L] + [L] + [L] +... ↓ 選択した行をまとめて複製:[Ctrl]+[Shift]+[D] ================================================ と行っている操作をそのままVisualStudioでも使いたいと思って質問しました。 (拡張機能の自作以外で)無理そうなら、 手動で行頭に移動:[Home] ↓ 複数行選択:[Shift]+[↓]+[↓]+[↓]+... ↓ 複製:[Ctrl]+[Shift]+[D] と操作するようにしようと思います。 もし、この操作をもっと簡単に行う VisualStudioでの操作方法があれば教えて貰えると嬉しいです。
Zuishin

2019/09/25 15:02 編集

行選択した後、次の行の先頭までキャレットを右に進めるようにしたらどうでしょう? つまりこうです。 [Shift]+[Home]→[Shift]+[End]→[Shift]+[→]→[Shift]+[→]
Zuishin

2019/09/25 15:10

ちなみに私が複数行選択する時にはいつもこうするんですが。 [Home]→[Shift]+[↓]
mimitchymouse

2019/09/25 16:09

すみません、こちらのコメントのまとめ方が悪かったかもしれません。 ご提案いただいたコマンドは、 ①Macros for Visual Studioでのマクロの登録の仕方 ②複数行の複製を実現する操作方法 のどちらへの提案ですか? ①だった場合: 1. [Home]+[Home] → [Shift]+[↓]でマクロを登録 ※[Home]2回はタブインデントより前の本当の(?)行頭に移動するため  (=VSCodeの[Ctrl]+[L]と同じ挙動) 2.作ったマクロを [Ctrl]+[L]に割り当て このように行ったのですが、これだと(本来の目的である)任意の複数行を選択することはできないので断念しているところです。 ②だった場合: 自分も、 [Home]→[Shift]+[↓]で複数行選択し、 [Ctrl]+[Shift]+[D]で複製しようと考えていましたので、今回はこれで解決にしようかなと思っています。 ①でも②でもない場合はすみませんが詳細教えて下さい。
Zuishin

2019/09/25 16:24

実際の動きを確かめずに書きましたが、うまくいきませんね。 選択範囲がすでにあるかどうかで分岐すればいけそうなので、それが可能かちょっと調べてみます。
Zuishin

2019/09/25 16:29

できました。マクロを編集して次のコードにしてください。 if (dte.ActiveDocument.Selection.Text.length === 0) { dte.ActiveDocument.Selection.StartOfLine(0); } dte.ActiveDocument.Selection.LineDown(true);
mimitchymouse

2019/09/26 08:13

できました! 諦めていたところなので感動です。 マクロについても勉強になりました。 本当にありがとうございました。
Zuishin

2019/09/26 08:21

マクロは C# かと思っていたら JavaScript だったのでちょっと悩みました。 次のページで dte のメンバーが確認できるので、いじる時にはこれを参照してください。 https://docs.microsoft.com/en-us/dotnet/api/envdte._dte?view=visualstudiosdk-2017 Selection は object 型と書いてありますが、テキストを選択した時には TextSelection インターフェースを持つので、そのメンバーが使えます。
mimitchymouse

2019/09/26 11:17

ありがとうございます! dte.jsは読んで理解できるので、今後似たようなショートカットは自力で作れそうです。 C#は初心者レベルなので、勉強のために今回のマクロをC#で作ってみようと思います。 (実はC#の学習をするためにVisualStudioの環境設定をしていたのですが、思わぬ勉強になりました!)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問