W.I.S. Laboratory
menu-bar

秀丸エディタ


編集中のファイルを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. 秀丸エディタを起動する
  2. メニューバーの「マクロ」をクリック。
  3. 「マクロ登録」をクリック。
  4. マクロ1~マクロ10の登録したい場所をクリック。(ここではマクロ1で説明します)
  5. 「タイトル」に「FTP」と入力。
  6. 「ファイル名」の右にある三点リーダー「…」をクリック。
  7. 保存しておいた「ftp.mac」を登録する。
  8. 「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 を置いてみる。


[ 戻る ]
saluteweb