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

秀丸のブラウザ枠で左で編集・右でChatGPTを使う

機能

  • 左半分を秀丸、右半分をChatGPTの画面にして秀丸を起動する
  • 編集したプロンプトを自動保存できる(オプション)

何がうれしいの?

  • 秀丸の常駐機能+ショートカットキーで秀丸+ChatGPTが爆速で起動する
  • ChatGPTの入力フォームが小さくて編集がしにくい問題が解決し、秀丸の強力な編集機能を用いてプロンプトが書ける
  • [オプション]プロンプトのファイルが自動保存され、使いまわしたいときにGREPで検索できる

セットアップ手順

  1. 秀丸のマクロフォルダにChatGPT.macを保存する(文字コードはShift-JIS or BOMありUTF-8 or BOMありUTF-16)マクロの登録画面の下のマクロファイルのフォルダを開く
  2. マクロファイルのフォルダにChatGPT.macを保存する
オプションの自動保存を使用する場合は下記を行う
    ChatGPT.macの5行目の//を削除して上書き保存する プロンプトDirに保存.mac の2行目に保存先フォルダを記入して同じフォルダに保存する マクロの登録画面でマクロを選び、ショートカットキーを割り当てる(Ctrl+Alt+なにか) 設定→動作環境→秀丸の常駐をONにする 割り当てたショートカットキーを押して実行できるか確認する

     

    使い方

    • 割り当てたショートカットキーを打つ。秀丸の常駐がONの状態なら場面を選ばずに使える

    コード

    秀丸マクロで使える文字コードは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;
    }