メインコンテンツへスキップ

秀丸ウインドウを2分割して左で編集・右でChatGPTを使う

機能

  • 左半分を秀丸、右半分をChatGPTの画面にして秀丸を起動する
  • 編集したプロンプトを保存する際にファイル名の入力が省略できる(オプション)

何がうれしいの?

  • 秀丸の常駐機能+ショートカットキーで秀丸+ChatGPTが2手で起動する
  • ChatGPTの入力フォームが小さくて編集がしにくい問題が解決し、秀丸の強力な編集機能を用いてプロンプトが書ける
  • [オプション]プロンプトのファイル名を入力する必要がなくなり常にCTRL+Sで保存できる

セットアップ手順

秀丸の常駐(超オススメ)機能を使用していない場合は前もってONにしてください

  1. マクロの登録画面の下のマクロファイルのフォルダを開く
  2. マクロファイルのフォルダにChatGPT.macを保存する
  3. オプションの自動保存を使用する場合は下記を行う
    • ChatGPT.macの5行目の//を削除して上書き保存する
    • プロンプトDirに保存.mac の2行目に保存先フォルダを記入して同じフォルダに保存する
  4. マクロの登録画面でマクロを選び、ショートカットキーを割り当てる
  5. 割り当てたショートカットキーを押して実行できるか確認する

使い方

  • 秀丸の常駐で割り当てたキー(デフォルトはCTRL+ALT+H)を押して秀丸を起動する(瞬間起動する)
    ※秀丸のウインドウがアクティブの場合、上記は省略できます
  • 割り当てたショートカットキーを打つ

左で編集した内容を右にペーストした後はEnterではなくCtrl+Enterを押すと改行されずに即送信されます

コード

秀丸マクロで使える文字コードはShift-JIS or BOMありUTF-8 or BOMありUTF-16のどれかなので、UTF-8を使用する場合はBOMに注意してください。

ChatGPT.mac

自動保存機能を使う場合は5行目のコメントアウト記号(「//」)を削除してください。

//ChatGPT開始マクロ

setcompatiblemode 0x0F;

//execmacro("プロンプトDirに保存.mac");

$uri = browserpaneurl(2);    //ブラウザ枠の状態確認
if(leftstr($uri,24) == "https://chat.openai.com/"){
	endmacro;
}

showwindow 3;                                   //ウインドウ最大化
showbrowserpane 1 ,2;                           //個別ブラウザを表示
setbrowserpanetarget "_each";                   //個別ブラウザをターゲットにする
setbrowserpaneurl "https://chat.openai.com/";   //ChatGPTにアクセス
setbrowserpanesize 2000, 2;                     //横幅を2000に設定
browserpanecommand("right");                    //右に配置

config "xAutoAdjustOrikaeshi:1"          //ウインドウ幅で文字を折り返す
プロンプトDirに保存.mac

自動保存を使用しない場合は不要です。

2行目の二重引用符の中にファイルを保存したいフォルダを入れてください
①二重引用符の前のアットマークは消さない
②末尾の「¥(バックスラッシュ)」は消さない

//#プロンプトディレクトリに保存
$path =  @"path\to\prompt\"; //ここを自分の環境に合わせて編集する

if($filename != ""){
	endmacro;
}
$prefix = "pr";
$yyyymmdd = year + month +day;
$ext = ".txt";

$filename = $prefix + $yyyymmdd + $ext;
$absFileName = $path + $filename;

#ret = existfile($absFileName);

if(!existfile($absFileName)){
	#i = 1;
	while( #i < 100 ) {
		$suffix = sprintf("_%02d", #i);
		$absFileName = $path + $prefix + $yyyymmdd + $suffix + $ext;
		if(!existfile($absFileName)){
			disableerrormsg;
			saveas $absFileName, utf8 ;
			enableerrormsg;
			endmacro;
		}
		#i = #i+1;
	}
	message("indexが99を超えました");
	endmacro;
}