【ChatGPT】Enterで改行して、Ctrl+Enterで送信する方法

この記事では、AIと会話できるサービス「ChatGPT(チャット・ジーピーティー)」上のEnterキーで送信機能を無効化して、代わりに、⌘+Enter、あるいはCtrl+Enterで送信するように変える方法を書きます。
ウェブサイトにJavaScriptを適用できるChrome拡張機能「Tampermonkey(タンパーモンキー)」を利用します。
通常、「ChatGPT」ページでは、Enter、あるいはCtrl+Enterで送信、Shift+Enterで改行です。
「ChatGPT」の送信・改行キー | |
---|---|
Enter | 送信 |
Ctrl+Enter | |
Shift+Enter | 改行 |

これにより、「文字を変換するために、Enterを押したら、うっかり文章の途中で送信しちゃった!」という事件が起きます。僕は、たびたびやらかします。
どうにかEnterの送信機能を無効化して、別のキーで送信できるようにできないかな…と探してみると、見つけたので共有します。Windows、Mac両方で動作します。
Chrome拡張機能「Tampermonkey(タンパーモンキー)」を利用しますが、本拡張機能以外でもOKです。
僕のWindows環境だと、うまく動作しない時がありました。Enterを押すと、普通に送信されてしまう時があります。「動作が安定しないなぁ。JavaScriptで無理やり実装しているからなのかなぁ」と悩んでいたところ、別の方から連絡をいただきました。
どうやら、2023年4月時点で、過去のチャット部屋では動作しないスクリプトだそうです。その方が、新しく過去・新規トーク部屋の両方で動作するChrome拡張機能「ChatGPT Ctrl+Enter Sender」を公開しました。詳しくは、下記記事を参考にしてみてください。
もし、本記事のスクリプトを導入した状態で、上記拡張機能を導入しても、機能がダブるため、どちらかを削除しましょう。僕のWindows環境だと、本記事のスクリプトが不安定で動作しない時もあったため、拡張機能を利用することにしました。皆さんのPC環境によって、どちらが相性良いか変わってくると思います。
リリース元:ぴざきゃっと(GitHubはこちら)
記事執筆時のバージョン:0.2.0(2022年12月05日)
インストール方法
Chromeウェブストアから「Tampermonkey」をインストールします。
「Chromeに追加」をクリックします。

Firefoxをご利用の方は、以下からインストールできます。
Enter無効化スクリプトの適用方法
スクリプトのダウンロード
以下のサイトからダウンロードできます。
スクリプト(JavaScript)と呼ばれるプログラミングコードです。こちらのコードを、先ほどダウンロードしたJavaScriptを適用できる拡張機能(例:Tampermonkey)に読み込ませることで、ChatGPT上のEnterを無効化できる…という仕組みです。
サイトにアクセスしたら、コードが書かれていることを確認して、右上のコピーボタン()をクリックします。

コピーボタンが緑のチェックマークになればOKです。クリップボードにコピーされています。
スクリプトを拡張機能に読み込ませる
「ChatGPT」のチャットページにアクセスします。インストールした拡張機能アイコンをクリック→「新規スクリプトを追加」をクリックします。

新しいタブでスクリプトを書き込む画面が表示されます。既にサンプルのコードが書かれているので、Ctrl+Aで全選択して、BackSpaceやDeleteキーで削除します。何も書き込まれていない状態にします。

全文削除できたら、先ほどコピーした「Enter送信無効化」コード(スクリプト)を貼り付けます。貼り付けたら、「ファイル」タブ→「保存」をクリックします。

僕は、Windowsを利用しています。一方で、本コードの作成者は、恐らくMacを利用されています。Windowsでは聞いたことがない「⌘(コマンド)」という単語が登場しているためです。
これにより、上記のコードをそのままコピペしても、Windowsでは動作しません。Enterは無効化されますが、送信するための代替キーが何もない状態になります。Macを使っている方は、そのままコピペすることで、⌘+Enterで送信できるはずです。
Windowsで使いたい場合は、コード内の一部を書き換えます。「if
」から始まる行を探します。その行に「metaKey
」という部分があるはずです。ここを「ctrlKey
」に変えます。

<!--以下の行を探す-->
if (e.code == "Enter" && !e.metaKey) {
<!--以下のように修正する-->
if (e.code == "Enter" && !e.ctrlKey) {
ついでにタイトルも変えておくと、見やすくていいと思います。
「// @name
」の部分に、タイトルが記載されています。デフォルトでは「Send message on ⌘+Enter
」になっています。好きなように変えましょう。日本語でもOKです。僕は、「Enter無効化、Ctrl+Enterで送信
」にしました。

書き換えたら、「ファイル」タブ→「保存」をクリックします。
インストールしたスクリプト一覧ページに戻ります。ここに、「Send message on ⌘+Enter
(名前を変えていない場合)」が登録されていればOKです。

本スクリプトの利用方法
「ChatGPT」のチャットページを開きます。既に開いている場合は、一度リロードする必要があります。Tampermonkey拡張機能アイコンをクリックして、インストールしたスクリプトがオンになっていればOKです。

これで、ChatGPTのテキストフォーム内でEnterを押しても、送信されなくなります。代わりに改行されます。Shift+Enterはこれまで通り改行です。動画を貼っておきます。
一時的にJavaScriptを停止させたい場合は、「Tampermonkey」アイコン→登録したスクリプトを左クリックします。オンオフを切り替えられます。オンオフした後、一度対象ページをリロードする必要があります。余談ですが、右クリックすると、編集画面が開きます。
Firefoxで動作しない場合の対処法
上記リンク先のコードだと、Firefoxで動作しませんでした。コードの一部を書き換えることで、動くようになるようです。別の方に教えていただきました。
コードを書き込んだ後、「e.stopPropagation();
」という部分を、「e.stopImmediatePropagation();
」に変えます。

<!--以下の行を探す-->
e.stopPropagation();
<!--以下のように書き換える-->
e.stopImmediatePropagation();
上書き保存して、ChatGPTページをリロードすることで、Firefoxでも動作すると思います。僕は、コードの意味が全く分からないので、なんでこの書き換えで動作するのか説明できません。
感想
以上、質問に対して、AIが答えを教えてくれる自然言語処理サービス「ChatGPT(チャット・ジーピーティー)」で、Enterを無効化して、⌘+Enter、あるいはCtrl+Enterで送信する方法でした。
余談ですが、「ChatGPT」に質問する際のポイントについて、まとめた記事を書いています。