※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

@あれこれ-2009年3月



[2009-03-25]

Everything everything はてなブックマークに登録

まあ、FTP クライアントソフトを使えば簡単なわけで、例えば FFFTP なら
FFFTP.exe "ftp://ユーザ名@サーバ名:/E:/Artist/Album/02. audio.mp3"
とかで、ディレクトリ移動してダウンロードできちゃう。(#1)
 #1 この場合、サーバ名の後の :(セミコロン)は必須

もちろん、エクスプローラ(IE)も除外。ファイルを開くダイアログに直接 URL を
入れれば Temporary Internet Files にダウンロードしたファイルを開けたりする。
また、関連付け実行じゃ面白くないわけで。(FFFTP はアプリの登録が可能だが。)

でも、なかなか FTP + コマンドライン対応ソフトって見つからない。。。
以下は悪あがきの記録。

FTP 対応エディタ はてなブックマークに登録

FTPエディタ v2.2.4.0
ローカルのテキストファイルだけでなく、サーバ上のテキストファイルを指定して編集・
再アップ・保存など。
もっとも、 Everything のサーバ機能は簡易なものなので、パーミッションの変更などは
できないから、閲覧とクライアント保存のみ。
一時ファイルダウンロード場所は、SmFtpEdit.exe があるフォルダ。(直接って表現は
適切じゃないよな)

コマンドラインは不可。

設定
[オプション]→[オプション設定]→
[Network]タブ
  • 「PASSIVE モードで接続する」にチェック
[FTP]タブ
  • [設定 NO:]を指定して、サーバ名称・FTPユーザ名を入力
  • パスワードが不要でもパスワードを指定しないと怒られるので、半角スペースを入力
  • コード体系は、開くテキストファイルの文字コードを指定(サーバ一覧からファイルを開くときに指定することも可能)

その他
  • デフォルト設定 NO は、インターネット上のサーバを指定しておく。でないと、次回起動時に「サーバーに接続」機能が有効にならない。(もち、サーバの設定が必要)
  • Everything サーバのファイルを開いて閉じた後も、オプション設定ウインドウを開いて「OK」しないと「サーバーに接続」機能が有効にならない。
 いずれもインターネット上のサーバの場合は問題ないのだが。
  • 最近開いたファイルの履歴は一時ファイルのパス。。。

xyzzy + cFTP
cFTP
xyzzy 上で動作する FTP クライアント。
コマンドで操作する。ダウンロードしたファイルを xyzzy で開く機能は無い。

■準備
cFTP.l を ~/site-lisp にコピー、バイトコンパイル

■~/.xyzzy に設定追加
;;; cFTP
(autoload 'cftp "cftp" t)
;ローカルのデフォルトのディレクトリ
(setq *cftp-default-directory* "D:/etc/ftp")
;Passive Modeをデフォルトにする("~/lisp/wip/ftp.l")
(setq *ftp-passive-mode* t)

その他は readme.txt や cFTP.l を参考に。

■起動
M-X cftp

■接続
 cFTP:INPUT バッファで「open」コマンド入力 → Enter
 ミニバッファで
  Server 名入力 → Enter
  USER Name 入力 → Enter

 または、

 cFTP:INPUT バッファで「open サーバ名」入力 → Enter
 ミニバッファで「USER Name」入力 → Enter

■操作
 cd DIRECTORY     :サーバのディレクトリを移動
 ls [FILES]      :サーバ上のファイルリスト表示
 get [-R] [-c] FILES :ファイルをダウンロード
 その他 readme.txt や cFTP.l を参考に。
 コマンドや履歴の補完が可能。

サーバ接続時にはサーバの初期ディレクトリの指定ができず、また、 Everything サーバ
の場合、サーバに接続しただけではコマンドも受け付けないが、アカウント設定ファイル
(~/.cftp)で初期ディレクトリを指定しておけばオッケー。

.cftp
設定名 サーバ名 ユーザ名 パスワード サーバの初期ディレクトリ ローカルの初期ディレクトリ
Dynabook	Server	User	pass	/	D:/etc
 各項目の区切りはタブで、パスワード不要ならスペースに、
 ディレクトリの区切り文字は /(スラッシュ)

xyzzy + virtual-file-ftp
virtual-file-ftp
xyzzy 上で動作する virtual-file の FTP 用プラグイン

■lisp ファイルの準備
  ~/site-lisp/virtual-file フォルダの中身
virtual-file-ftp.l
virtual-file-ftp.lc
virtual-file.l
virtual-file.lc

■ホスト設定ファイル(filename._ftp)を作成
 分かりやすい名前をつける。
 保存場所はどこでもいいけど、Tab,c-i でパスを補完するにしても、c-x c-f
 (find file)でたどり着きやすいところがいい。
sample._ftp
:user   "ユーザ名"
:pass   "パスワード"  ; 必要な場合のみ
:host   "サーバ(ホスト)名"
;(必要なら)初期ディレクトリを指定
:cwd    "/E:/etc"  ; とか "public_html" とか
;(必要なら)文字コードを Shift_jis に
:encode  map-euc-to-sjis

■~/.xyzzy に設定追加
;Passive Mode をデフォルトにする("~/lisp/wip/ftp.l")
;cFTP で設定してあればここでは不要
(setq *ftp-passive-mode* t)
;;; virtual-file-ftp 関連一式
(require "virtual-file/virtual-file")
(require "virtual-file/virtual-file-ftp")
(require "complete+")
(use-package "complete+")
  session-ext は virtual-file から呼ばれる。以下の使い方なら設定不要だけど、
  どうも正しいやり方だとは思えない。。。

■その他の設定(必要なら)
FTP サーバのメッセージをバッファ(*FTP Message*)に出力
virtual-file-ftp.l の 115 行目あたり
(setf complete+::*plugin-ftp-message-buffer* t)
;(defvar *plugin-ftp-message-buffer* nil)

■使用法
1.find file(c-x c-f)で接続したいサーバの設定ファイルを指定(sample._ftp)
2.ミニバッファで表示中の sample._ftp のパスの後ろに /(スラッシュ)、続けて
  ファイル名を入力 → Enter
Find file: D:/xyzzy/etc/sample._ftp/test.txt
3.指定したファイルがサーバ上に存在するものであれば、一時ファイルにダウンロード
  してバッファに読み込む。存在しなければ仮想ファイル(virtual file)として
  新規にバッファが作成される。
4.編集後、保存(c-x c-s)すると自動でアップロードされる。
  ステータスバーに「Wrote サーバ名: ファイル名」と表示されれば成功
  ただし、 Everything サーバの場合は読み出しのみなので、アップはできない。
  (エラー表示は無いので注意)

ローカルに保存するなら、c-x c-w(write-file) でバッファをファイルに保存する。

ファイル1つごとにログイン・ファイルの取得・ログアウトするので切断コマンドがない
のだけど、c-x k(kill-buffer)すれば終わり、ってことなんかな。

■ファイル名の補完
Tab または c-i でパスの補完が可能なのだけど、 complete+.l のおかげで上記の設定
(~/.xyzzy)だけでもスキップマッチングや migemo によるインクリメンタルサーチも
migemo.l C/Migemo 一式 と設定が必要)可能になる。
けど、どうせなら、以下の設定も付け加えてしまうと、c-x c-f でサーバ設定ファイル
(._ftp)の末尾に / が補完されたり、補完候補にあわせて*Completion*バッファで
インクリメンタルしたり、マッチ部分の色づけなどなどさらに便利になる。
M-x で(ミニバッファの)関数名の補完もインクリメンタルするし!
たとえ、 virtual-file-ftp を使わなくても、 complete+ は使いたい。
(詳細は complete+.l を参照のこと)

(require "complete+")
(use-package "complete+")
 (dolist (keymap (list minibuffer-local-completion-map
                       minibuffer-local-must-match-map
                       minibuffer-local-command-line-map))
   (define-key keymap '#\C-n  'complete+-select-next-item)
   (define-key keymap '#\C-p  'complete+-select-prev-item)
   (define-key keymap '#\C-<  'complete+-substring-match-rotate)
   (define-key keymap '#\C->  'complete+-skip-match-rotate)
   (define-key keymap '#\C-\, 'complete+-case-fold-ratate)
   (define-key keymap '#\C-.  'complete+-toggle-incremental))
 (setf *complete+-and-search* ";")
 (setf *complete+-show-drive* t)
 (setf *complete+-current-item-attribute* '(:foreground 1))
 (setf *complete+-highlight-color*        '(:foreground 2))
 (setf *virtual-file-add-slash-automatically* t)           
 (setf *complete+-create-new-file-check* t)                
 (complete+-toggle-incremental t)                          

xyzzy_vFTP.jpg

■サーバ上のファイル名補完
サーバの仕様の所為か、どうもプロバイダ等によって挙動が違う。

Tab,c-i(補完)、C-.(インクリメンタルサーチ)等でルートディレクトリから補完候補
(つまりファイル・ディレクトリの一覧)の取得が可能なところ(atWiki、DTI)と、
一文字でも入力していないと補完候補が出ないところ(OCN)、補完が全くできない、
つまり LIST の取得ができていないところ(geocities)とある。設定が間違ってるのかな?

そういうところは、cFTP と併用かな。

で、肝心な Everything サーバなのだけど、xxx._ftp/ の後にローカルパスの形式で
入力とか補完とかすると、それはほんとにローカルパス(自分ち)になっちゃう。。。

[2009-03-14]

Everything OK? はてなブックマークに登録

ファイル検索の速さに定評のある Everything には ETP/FTP サーバ機能もあり、
LAN 内の( Everything をサーバとして起動している)PC の、クライアント PCからの
ファイル検索もこれまた速い。(以下、portable 版利用)

everyFTP3.jpg
Use FTP links にチェックする。
初回接続時、Windows ファイアウォールの警告が出たら「ブロックを解除する」

Everything を FTP クライアントにする場合([Tools]→[Connect to ETP server])
デフォルトではブラウザを介しての関連付け実行になるが、Everything.ini の
open_file_command や open_folder_command を編集して ftp 対応のアプリにパスを
渡せるようにできたらいいな。(#1)

パスが ftp かどうかは AHK で振り分けるとして、「ftp://サーバ名/ローカルパス」
形式に対応している(コマンドラインで渡せる)ソフトを探さにゃならん。(#2)

  #1 ローカルパスを「あふ」で開くなら、
open_folder_command=$exec("path\to\yaafxcmd.exe" -O "%1")
open_folder_path_command=$exec("path\to\yaafxcmd.exe" -P "$parent(%1)")

  #2 実際には「"ftp://ユーザ名@サーバ名/ローカルパス"」と言う形に編集して渡す
    また、パッシブモードにする必要がある

ftp 対応ファイラー

muCommander
Cross-platform file manager.(要 JAVA)
Portable version 0.8.4 Nightly build 使用

ftp_muCommander2.jpg

パスの形式
"ftp://ユーザ名@サーバ名/E:/etc"
  パスの末端の / の有無の区別は無い(フォルダ内に移動)
  デフォルトでパッシブモードが有効になっている
一時ファイルダウンロード場所:
C:\Documents and Settings\ログオンユーザ名\Local Settings\Temp
GUI から操作する場合
  [移動]→[サーバーへ接続]→[FTP]タブ
  サーバー名・ユーザ名を入力、「パッシブモードを有効にする」チェックを確認

Commander 1.33.1
File management utility and image viewer.
ZIP 版使用。圧縮ファイル展開後、Commander.exe と同じ場所に空の Commander.ini を
作成しておくと、Portable 版として(レジストリを使わずに)使用できる。
FTP 接続時、日本語のファイル名は文字化け。

ftp_commander3.jpg

パスの形式:
"ftp://ユーザ名@サーバ(ホスト)名:P/E:\etc"
  ローカルパスの区切り文字は \ にする
  パスの末端の \ の有無を区別する
  サーバ名の後にパッシブモードを指定する
一時ファイルダウンロード場所:
C:\Documents and Settings\ログオンユーザ名\Local Settings\Temp\Commander
GUI から操作する場合はショートカットを作成する
  [Shortcuts]→[Add...]→[FTP]→[Create shortcut]
  サーバ名(Host)・ユーザ名(User)を入力、「Passive transfer」にチェック
  [Shortcuts]メニュー下に表示される

wiro
2画面タブ型ファイラー
コマンドラインオプション指定はだめっぽい。
FTP 接続時、日本語のファイル名は文字化け。

ftp_wiro.jpg

パスの形式:
"ftp://ユーザ名@サーバ名/E:/etc"
  詳細は Readme.txt 参照
一時ファイルダウンロード場所:
C:\Documents and Settings\ログオンユーザ名\Local Settings\Temp\wir3745.tmp
GUI から操作する:
  "Z"キー、または、[オプション]→[設定]→[FTP]タブ→[新規追加]
  サーバ(Host)名・ユーザ名を入力、「Passiveモード」にチェックする
  "L"キー、または、[ファイル]→[ディレクトリ移動]→[ドライブ移動]

だいなファイラー DYNA
コマンドラインオプション指定はだめっぽい。

GUI から操作する:
  "L"キー、または、「ドライブの変更」ダイアログ→[ftp:// FTP接続]
  サーバ名・ユーザ名を入力、「PASV モード」にチェック(→[設定を追加])
残念ながら Enter キーでドライブ・ディレクトリ移動不可。

jFD2
[2009-04-21] 追記

マルチプラットフォーム対応、キーボード操作主体のファイル管理ソフト。
FD、WinFD に準じた操作性。Migemo 対応。

  • 初回起動時にエディタのパスとシェルを指定する。とりあえずそのままにしておいて、後で変更可能。

  • (必要なら)[オプション]→[パス]タブで、ユーザ設定ファイルや一次ファイルなどの保存場所を変更する。FTP 接続時の一次ファイルもここで設定したフォルダになる。

  • [オプション]→[ファイルシステム]タブで FTP に関する設定をする。
    • 「パッシブ接続」にチェック
    • 必要に応じて FTPエンコーディングを変更

  • FTP サーバーに接続
L または F9 でディレクトリを移動
ftp://サーバー(ホスト)名
を入力すると、ユーザ名・パスワード入力ウインドウが表示される。

ftp_jFD2.jpg

または

ftp://ユーザ名:パスワード@サーバ名
と入力すると、ユーザ名・パスワード入力ウインドウは省略可能

FTP サーバー接続中に Shift + Q でショートカットを作成しておくと
Q キーで表示されるショートカットのリストから選択して実行、接続することができる。
.jfd2_user\shortcut フォルダに作成される .jfdlnk ファイルをエディタで開いて
ユーザ名・パスワードを含めたパスに編集しておくと便利。(行末で改行しないこと。)

「ftp://ユーザ名:パスワード@サーバ名」で接続、開いたまま jfd2 を終了すると
次回起動時に自動的に接続してくれるのでけっこう便利かも。

ただし、ベータ19 現在、「パッシブ接続」ができない状態なので、 Everything サーバ
には接続不可。いや、「パッシブ接続」にチェックしていても繋がる所(プロバイダ)
には繋がるので別の問題かもしれないが、その場合も、ファイルを DL できても中身が
無い、Shift + Enter で編集できない状態(入出力エラー表示)。
ウチの環境では、 jFD2 起動時に IME が ON になってしまい、
キーボード操作に入る前に OFF にしなければならず。。。
発展途上なので今後に期待。

コマンドライン引数指定は不可。



-