Next: , Up: 1


1.1 改造版導入

cftp.zip (2007/06/20)

上記中の cftp.lcftp.lc を xyzzy の site-lisp ディレクトリに置き、.xyzzysiteinit.l に以下のように記述します。

     (in-package "editor")
     (export '(cftp) "editor")
     (autoload 'cftp "cftp" t)
     (in-package "user")

また好みに応じ上記 ‘(autoload 'cftp "cftp" t)’ の下に以下の各種設定を記述して下さい。以下の例はデフォルト値です。変更する必要がない場合は記述しなくてかまいません。

     (add-hook '*cftp-mode-hook*
               #'(lambda ()
                     (setf
                      ;; パッシブモード
                      user::*ftp-passive-mode* nil
                      ;; ローカルのデフォルトディレクトリ
                      *cftp-default-directory* (default-directory)
                      ;; アカウントやパスワードを保存するファイルのパス
                      *cftp-account-file* (merge-pathnames ".cftp" (user-config-path))
                      ;; リモートファイル閲覧時に作成される一時ファイルのパス
                      *cftp-tmp-file* (merge-pathnames ".cftp_tmp" (user-config-path))
                      ;; Anonymous FTP サーバー用パスワード
                      *cftp-anonymous-password* nil
                      ;; パスワード保存するか
                      *cftp-save-password* t
                      ;; 一時ファイルを削除するか
                      *cftp-tmp-file-delete-p* nil
                      ;; 2 画面表示のときの 1 出力バッファの幅 (文字数)
                      *cftp-window-width* 68
                      ;; ディレクトリを先に表示するか
                      *cftp-list-dir-p* t
                      ;; アカウント文字色
                      *cftp-account-color* 1
                      ;; リモート文字色
                      *cftp-remote-color* 2
                      ;; ローカル文字色
                      *cftp-local-color* 6
     
                      ;;====================================
                      ;; 出力バッファ色付け用の正規表現キーワードリスト
     
                      *cftp-regexp-keyword-list*
                      (compile-regexp-keyword-list '(
                                                     ("^d[rwx-]\\{9\\} .*" nil 2)
                                                     (".*\t<DIR>\t.*"      nil 2)
                                                     ("^[RS]: .*"          nil 1)
                                                     ("^L: .*"             nil (:color 6))
                                                     )
                                                   )
     
                      ;; 出力バッファ色付け用の正規表現キーワードリスト
                      ;;====================================
     
                      ;;====================================
                      ;; キーバインド
     
                      ;; コマンド実行
                      (define-key *cftp-mode-map* #\RET 'cftp-command)
                      ;; コマンド、ファイル、ディレクトリ名を補完
                      (define-key *cftp-mode-map* #\TAB 'cftp-complete)
                      ;; 左側の出力バッファをアクティブに
                      (define-key *cftp-mode-map* #\C-1 'cftp-set-output-buffer-1)
                      ;; 右側の出力バッファをアクティブに
                      (define-key *cftp-mode-map* #\C-2 'cftp-set-output-buffer-2)
                      ;; 出力バッファ分割トグル
                      (define-key *cftp-mode-map* #\C-3 'cftp-set-output-buffer-3)
                      ;; ローカルパスをファイラで開く
                      (define-key *cftp-mode-map* '(#\C-c #\f) 'cftp-filer)
                      ;; プロンプト先頭へ
                      (define-key *cftp-mode-map* #\C-a 'cftp-command-goto-bol)
                      ;; 履歴進む
                      (define-key *cftp-mode-map* #\C-n 'cftp-history-next)
                      ;; アクティブな出力バッファを 1 行上にスクロール
                      (define-key *cftp-mode-map* #\M-n 'cftp-scroll-up-other-window)
                      ;; 2 つの出力バッファを 1 行上にスクロール
                      (define-key *cftp-mode-map* #\C-M-n 'cftp-scroll-up-both-window)
                      ;; 履歴戻る
                      (define-key *cftp-mode-map* #\C-p 'cftp-history-previous)
                      ;; アクティブな出力バッファを 1 行下にスクロール
                      (define-key *cftp-mode-map* #\M-p 'cftp-scroll-down-other-window)
                      ;; 2 つの出力バッファを 1 行下にスクロール
                      (define-key *cftp-mode-map* #\C-M-p 'cftp-scroll-down-both-window)
                      ;; アクティブな出力バッファを上にページスクロール
                      (define-key *cftp-mode-map* #\M-v 'cftp-next-page-other-window)
                      ;; アクティブな出力バッファを下にページスクロール
                      (define-key *cftp-mode-map* #\M-z 'cftp-previous-page-other-window)
     
                      ;; キーバインド
                      ;;====================================
                      )
                     )
               )

以上の設定を済ませると、M-x cftp と入力することにより cFTP が起動します。

☆‘出力バッファ色付け用の正規表現キーワードリスト’ の補足

     (setf *cftp-regexp-keyword-list*
           (compile-regexp-keyword-list '(
                                          ("regexp1" case-fold color)
                                          ...
                                          ("regexpN" case-fold color)
                                          )
                                        )
           )