| 秀丸エディタ編集中のファイルをFTPで直接アップロードする秀丸マクロ
 
秀丸エディタでコードを編集し、上書き保存してFTPソフトを起動して接続してアップロード、という作業を何度も繰り返すのは地味に大変だ。秀丸エディタから直接このファイルをサーバーにアップロードできればいいのに・・と思ってやってみた。
 まずマクロを作成して、ftp接続用の設定ファイルを作って保存し、秀丸エディタにマクロを登録という流れになる。
 動作条件として、ローカルとサーバーのディレクトリ構造を同じにする必要がある。
 
 
 1. マクロを作成する
秀丸エディタでテキストファイルを新規作成し、上のコードをコピー&貼り付けして、ファイル名「ftp.mac」、文字コードShiftJISで保存する。保存する場所は、自分が管理しやすければどこでもOK。
 
 
 2. ftp接続用設定ファイルを作成する
秀丸エディタでテキストファイルを新規作成して、上の内容を貼り付けて自分のサーバー用に編集する。ここでは例としてさくらインターネット用の設定にしているが、FTP接続できるサーバーならどこでも大丈夫なはず。
 以下解説。
 
 
username.sakura.ne.jp ← アップロード先のホスト名/www ← アップロード先のパス(最後の「/」は不要)
 username ← サーバーのユーザー名
 password ← サーバーのパスワード
 
 
編集が終わったら、ローカル上のアップロードしたいファイルが入っているフォルダ直下に「.ftp」というフォルダを作る。(例えば「index.html」をアップロードしたいなら、その「index.html」がある場所と同じ階層に「.ftp」フォルダを作成する)作成した「.ftp」フォルダの中に、上の設定ファイルを「ftp.txt」という名前をつけてShiftJISで保存する。
 
 3. 秀丸エディタにマクロを登録する
秀丸エディタを起動するメニューバーの「マクロ」をクリック。「マクロ登録」をクリック。マクロ1~マクロ10の登録したい場所をクリック。(ここではマクロ1で説明します)「タイトル」に「FTP」と入力。「ファイル名」の右にある三点リーダー「…」をクリック。保存しておいた「ftp.mac」を登録する。「OK」をクリック。 
 4. ローカルとサーバーのディレクトリ構造を同じにしておく
すでに同じ構造になっていればこの作業は不要。いつも使っているFTPソフト(FFFTPなど)を起動し、ミラーリングアップロードするなどしてディレクトリ構造を同じにする。
 ただし .ftp フォルダはアップしないようにする。
 
 
以上で準備完了。Ctrl + 1(テンキーではなくフルキーの方) を押すと、編集中のファイルをサーバーにアップできる。
 具体的にどんな処理をしているかというと、スクリプトファイル ftp.scr を生成し、それをWindows標準装備の ftp.exe で実行している。
 ちなみにこのマクロでは.ftpフォルダがある階層から10階層下までのファイルがアップロード対象になる。
 秀丸エディタはvscodeのような「フォルダを開く」という機能がなく、マクロから設定ファイルまでのパスを知る方法が無いので、しかたなく実行するたびに階層を上に辿っていって.ftpフォルダを探すような動作をしている。
 他のフォルダにも同じように設定したい場合は、.ftpフォルダをコピーして、ftp.txtの中身を必要に応じて書き換えればOK。
 うまくいかないときは、以下の点を確認すると解決するかもしれない。
 
 
マクロが動いていれば一瞬コマンドプロンプトが開くので、開かないようならマクロの登録自体がうまくいっていない。「10階層上までの範囲に ftp.txt が見つかりません」とエラーが出るときは .ftp フォルダを作る場所が違うか ftp.txt のファイル名が違っている。コマンドプロンプトが開くがアップロードできないときは、ftp.txt内の情報に間違いがあるか、.ftpフォルダを作る場所を間違っている可能性がある。アクセスに管理者権限が必要なフォルダ(Program Files など)にマクロを置くとセキュリティで動かないことがあるので、別の場所に ftp.mac を置いてみる。 |