13

2016 年 11 月 (バージョン 1.8) リリースの VSCodeスニペット変数、具体的には TM_SELECTED_TEXT がサポートされるようになりました。

Sublime Text と TextMate の両方でこれらを頻繁に使用しているので、これは私を幸せにします。

VSCode で動作させる方法がわかりません。例として使用するスニペットを作成しました。

"in quotes": {
    "prefix": "inq",
    "body": "'${TM_SELECTED_TEXT:${1:type_here}}'"
}

次に、テキストを入力して強調表示すると、問題が発生し始めます。

アイデアは、いくつかのテキストを強調表示し、スニペットを実行してから${TM_SELECTED_TEXT:${1:type_here}}、強調表示されたテキストに置き換えます。私が抱えている問題は、prefix値 (この場合はinq ) を入力する必要があるスニペットを実行して、強調表示されたテキストを上書きしてすべてを台無しにするスニペットを実行することです。

Sublime/Textmate では、テキストを強調表示したままのキーボードの組み合わせからスニペットを起動しました。

VSCode で、これをそのまま動作させるか、Sublime で利用可能だったようなキーの組み合わせからスニペットを起動する方法はありますか?

4

4 に答える 4

17

1.49 (この編集時点では Insiders ビルドに含まれています) で、あなたの例は最終的に期待どおりに機能します。マージされたプル リクエストを参照してください。

Vscode は、選択したテキストがあればそれを「記憶」し、スニペットのプレフィックスをTM_SELECTED_TEXT入力すると、その選択したテキストを過剰に入力したように見えても、それを変数に挿入します。

選択したテキスト スニペット


v1.20 の時点で、新しい変数 $CLIPBOARD が追加されたため、これは簡単になりました。新しいスニペット変数を参照してください。そのため、ショートカットを割り当てて実行する必要はありませんが、選択内容をクリップボードにコピーする必要がありCTRLますC

あなたの例は次のようになります。

"in quotes": {
    "prefix": "inq",
    "body": "'$CLIPBOARD:${1:type_here}'"
}

注:$CLIPBOARD動作します。余分な中括弧は必要ありません{$CLIPBOARD}

于 2018-02-08T02:28:12.013 に答える
7

F1単語が強調表示された状態で、 「スニペットの挿入」コマンドを押して実行し、リストからスニペットを選択します。

また、[ファイル] > [設定] > [キーボード ショートカット] に移動してキーバインドを編集し、次のように "editor.action.showSnippets" コマンドにショートカットを追加することもできます。

{
    "key": "ctrl+alt+s",
    "command": "editor.action.showSnippets",
    "when": "editorTextFocus"
}
于 2016-12-27T12:05:14.240 に答える