Visual Studio Code - 設定 - 補完(スニペット)- タブで行末へ移動


クラウディア 


1. 概要
2. 現象
3. 設定
4. 参考サイト

1. 概要

 表題は、少し言葉足らずでありましてな。  自前のスニペットを使っているのですが、パラメータ入力後に、続けて、TAB キーを入力したとき。  タブを入力したいのですが、カーソルが行末へ飛んじゃうのです。  これをなんとかしたいな・・・と。

2. 現象

 本サイトの本ページの目次は。  例えば、下記のように記述しています。

<dl class="bodycontents">
<a href="#1."><dt>1. 概要			</dt></a>
<a href="#2."><dt>2. 現象			</dt></a>
<a href="#3."><dt>3. 設定			</dt></a>
<a href="#4."><dt>4. 参考サイト	</dt></a>
</dl>
 項目が増える際は、下記のスニペットを使用して、入力しています。

"href": { "prefix": [ "href" ], "body":	[ "<a href=\"#$1.\"><dt>$1. $2</dt></a>" ] },
 入力の手順はというと。  「href」と入力すれば、候補が表示されるので、TAB 入力すると、下記が表示され、「#.」の後ろにカーソルが表示されます。

<a href="#."><dt>. </dt></a>
 ここで、数字を入力して、TAB を入力すると。

<a href="#5."><dt>5. </dt></a>
 「</dt>」の直前に移動するので、表題を入力します。  そのまま TAB を入力して、表題の後ろに、タブを入力したいのですが・・・。  行末へ移動しちゃうってことです。  「ChatGPT」くんに問い合わせてみましたらば、「Visual Studio Code」のスニペットには、暗黙の「$0」というのが、存在して。  それは、行末を示すらしいのです。  これを仕様通りに動作させると、現象の動きになるそうです。

3. 設定

 対策としましては、明示的に「$0」を記述するのでありまして。

"href": { "prefix": [ "href" ], "body":	[ "<a href=\"#$1.\"><dt>$1. $2$0</dt></a>" ] },
 と書きます。  これで、「$2」入力後も、カーソルは行末へ移動したりしません。  実際にタブ入力を反映させるには、もう一度 TAB を入力する必要がありますが、行末へ移動しちゃうよりは、ましになります。

4. 参考サイト

 本ページは、「ChatGPT」くんを参考にさせていただきました。

AbemaTV 無料体験