1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeでエディタで選択したコマンドをbashターミナルで実行する

Last updated at Posted at 2024-06-09

やりたいこと

VSCodeのエディタで選択したコマンドをターミナルで実行する。
簡単に言えば、エディタでコピーして、ターミナルでペーストする操作の自動化。
code runnerなど自動実行する拡張機能もあったが、実行内容を一時ファイルに格納して実行する仕様上、
dockerやデータベースにログインした後、コマンド入力が継続できない問題があったので、multi-commandを利用して実装した。
image.png

参考記事

multi-commandの利用方法は、以下の記事を参考にさせて頂きました。
【VSCode】複数のコマンドを一つのキーで実行したい

設定手順

拡張機能multi-commandのインストール

VSCodeの拡張機能からmulti-commandをインストール
image.png

settings.jsonの修正

以下をVSCodeのsettings.jsonに追記

    "multiCommand.commands": [
            {
                "command": "multiCommand.exeCommandToTerminal",
                "sequence": [
                    "editor.action.clipboardCopyAction",
                    "workbench.action.terminal.focus",
                    "workbench.action.terminal.paste",
                    {
                        "command": "workbench.action.terminal.sendSequence",
                        "args": {
                            "text": "\n"
                        }
                    },
                    "workbench.action.focusPreviousGroup"
                ]
            }
    ]

解説

command: コマンドの名前
sequence: コマンドの順番
 editor.action.clipboardCopyAction: エディタの選択部分をコピー
 workbench.action.terminal.focus: カーソルをターミナルに切り替える
 workbench.action.terminal.paste: コピー内容をペーストする
 workbench.action.terminal.sendSequence: 任意の文字の送信(ここでは改行を送信)
 workbench.action.focusPreviousGroup: 前の画面にカーソルを戻す(ここではエディタに戻す)

keybindings.jsonの修正

以下をVSCodeのkeybindings.jsonに追記
ここではショートカットキーは、ctrl + shift + v に設定

    {
        "key": "ctrl+shift+v",
        "command": "extension.multiCommand.execute",
        "args": {
            "command": "multiCommand.exeCommandToTerminal",
        },
        "when": "editorTextFocus"
    }

解説

key: ショートカットキーの設定
command: 実行するコマンド(settings.jsonに追記したコマンドを指定)
when: ショートカットキーが有効になる条件

実行手順

  1. VSCodeで、エディタとターミナルを開く
  2. エディタで実行したいコマンドを選択する
  3. ctrl + shift + v を押す

備考

・複数行のコピーをしても警告などはないため、選択範囲に注意してください。
・やっていることは、ただのコピー&ペーストなので、bashでなくてもエディタとターミナルのセットであれば何でも利用できるはず。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?