Edited at

VSCodeの統合ターミナルでもターミナルへ実行したコマンドの強制終了(Ctrl+c or Cmd+c)を使いたい

自分のローカル開発環境をなるべく開くアプリケーションを多くしないために VSCode Only でターミナルもコード編集もGitコミットも全部やれるようにしているのですが、

VSCode の統合ターミナルを使っていると、たまに実行するコマンドを失敗して、「あー!!」と思いながら Ctrl+cCmd+c を連打して、強制終了したいことないですか?

私はよくあって、SSH先のサーバのIPアドレスが間違っていたり、バッチ処理実行してしまった後に「あ、あれやるの忘れてた :sweat_smile:」ってなって、強制終了したくなるんです :exclamation:

そんなとき、これまでは「あー!!」と思いながら、待つのがめんどくさいので iTerm 起動したり、統合ターミナルをゴミ箱ボタン押してターミナルごと強制終了したりしてました。

ですが、これ、、、、「起動するアプリは結局増えるタイミングがある」し、ターミナルごと強制終了すると、実行したプロセスが残ってたりするんですよね・・・

本番環境とかいじってるタイミングで起こるともう、怒りの○ランプさん :angry: みたいになる・・・

なので、できるだけ全部、VSCodeでできるようにしたいという思いながら、しばらく耐えてました

そして本日、ちょっと調べ物をしていると下記の記事を見かけたので、この方にならって対応してみました!

僕の場合は、 Ctrl+cCmd+c への対応をする必要があったので、このキー操作のエスケープシーケンスを調べる必要があったんですが、

なんとか、Wikipediaさんを参照して、解決できました :exclamation:

その結果、キーバインドには下記のように書きました。


keybindings.json

    {

"key": "ctrl+shift+q",
"command": "workbench.action.terminal.sendSequence",
"when": "terminalFocus",
"args": { "text": "\u0003" }
}


そのまま、Cmd+c としたかったんですが、確認すると被ってるキーバインドさんがいたので、なるべくいないやつーを探して、

whenterminalFocus を追加条件に入れたら対応できました :exclamation:

いやー、、これに困ってる人結構いそうだけどなー・・・周りからはあまりそういった声聞こえないし、、、 :speech_balloon:

僕だけでしょうか? でも解決できたからよかったー :joy:

こんな方法よりもっと簡単な方法あるっちゅーねん :exclamation: :exclamation: :exclamation:

という方、コメントお待ちしてます。 :bow: