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

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

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

Q&A

解決済

1回答

2620閲覧

VScodeで「選択範囲を指定のタグで囲う」をショートカット登録したい

nanigasi

総合スコア20

1グッド

0クリップ

投稿2021/03/17 13:08

テキスト

という文字があるとして、
それをドラッグした後、特定のコマンドを押すと

<span class="hoge">テキスト</span>

となるようにしたいと考えています。

#要件
<span class="hoge"></span>の部分はこちらで作成したもの
・emmetは使わない(毎回class名の入力が必要になり手間な為)
・具体的に、「選択範囲のテキスト」の残し方が分からない(これさえ分かれば解決します)

#余談
sublime textの場合、キーバインド設定に

{ "keys": ["ctrl+shift+b"], "command": "insert_snippet", "args": {"contents": "<span class=\"bold$1\">${0:$SELECTION}</span>"} },

と書くことで理想の挙動になります。
これと同じことをvs codeで実現したいと考えています。

sublimeで言う「${0:$SELECTION}」の部分を、vs codeでは何になるか、が解決の糸口かと思っております。

ちなみに「${0:$SELECTION}」はvsコードではそのまま「${0:$SELECTION}」として出力されました。

ニッチな悩みかと思いますが、
もしご存じの方いましたら、
ご教示いただけますと幸いです。

AlsaKolpiiya👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

具体的に、「選択範囲のテキスト」の残し方が分からない(これさえ分かれば解決します)

$TM_SELECTED_TEXT${TM_SELECTED_TEXT}と書きます。

VSCodeでも、ショートカットキーにスニペットの挿入を割り当てれば、Sublime Textと同じことができます。

スニペットをショートカットキーに割り当てるには、メニューの[ユーザー設定]-[キーボードショートカット]で、ショートカットキーの一覧を表示後、エディター右上の「回転矢印付きの????」アイコンをクリックして、設定ファイルkeybindings.jsonを表示します。

すでにいくつかのキーバインド設定が表示されていると思うので、末尾(の]の手前)に挿入する部分だけを示します。加えて、直前のキーバインド設定の}の後に,を付けるのを忘れずに。

{ "key": "ctrl+shift+b", "command": "editor.action.insertSnippet", "args": { "snippet": "<span class=\"hoge$2\">$TM_SELECTED_TEXT$1</span>" } }

内容は見ればわかると思いますが、keyがキーバインド、commandがスニペットの挿入指示、argsのsnippetが挿入するスニペットの直接設定です。

スニペット文字列のうち、$TM_SELECTED_TEXTが選択テキストの挿入位置、$1$2が挿入後にTabキーでカーソル移動する位置を示します。カーソル位置が気になる(あるいは不要)なら内容を適当に修正してください。

このほか、言語モードごとのユーザースニペットとして登録してから、キーボードショートカットでそれを指定することもできますが、ここでは触れません。

Snippets in Visual Studio Code

投稿2021/03/18 00:11

Daregada

総合スコア11990

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

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

nanigasi

2021/03/18 14:19

ありがとうございます! 頂いたソースコードをコピーし、完璧に実現できました! ニッチな内容であったにも関わらずご教示いただき本当にありがとうございました。 本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問