お品書き

概要 *

filecomplete+-2007.12.21.zip

xyzzyの$XYZZY/lisp/complete.lの*do-completion等を拡張し、
ミニバッファ等で

  • 先頭一致/Migemo/部分一致/スキップマッチングで絞り込み、
    かつ全ての項目に先頭一致する文字列で補完
  • ファイルでないものをファイルのように補完
    実際にファイルを開くにはvirtual-fileやその他もろもろ(virtual-file-*.l)が必要です
  • 大文字・小文字の区別をしたりしなかったり、大文字の時だけ区別したりする
  • ディレクトリのスキップマッチング( c:/d/m/hoge => c:/data/music/hoge )(ネタ元)
  • 指定文字で区切り、AND検索 ( c:/data/zip;xyz => c:/data/xyzzy.zip )
  • インクリメンタルに補完候補を表示(補完自体は行わない)
  • ↑を有効にしてる場合、補完できるところまでハイライトで表示(ネタ元)
  • *Completion*バッファの候補のマッチしてる部分を強調表示
  • cygwin-mountと連携してcygwinのパスを補完
  • ファイル補完時に空白ならドライブも候補に入れる
  • C-i(TAB)やSpaceの直後の新規ファイル作成はRET2回で行なう(ネタ元)
    を可能にするものです

動作環境 *

設定 *

  1. $XYZZY/site-lisp/ 以下にコピーし、バイトコンパイルしてください
  2. .xyzzy や siteinit.l に以下を参考に記述し、
    siteinit.lに記述した方は再ダンプしてください。
    (require "complete+")    ; ni-autoloadしている人は不要
    (use-package "complete+"); ni-autoloadしている人は不要
    (dolist (keymap (list minibuffer-local-completion-map
                          minibuffer-local-must-match-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+-toggle-incremental))    ; インクリメンタル
    (setf *complete+-and-search* ";") ;AND検索
    (setf *complete+-show-drive* t)   ;ドライブを表示
    (setf *complete+-current-item-attribute* '(:foreground 1)) ; *Completion*バッファ
    (setf *complete+-highlight-color*        '(:foreground 2)) ; ハイライト
    (complete+-toggle-incremental t);最初からインクリメンタルに補完候補を表示

使い方 *

上記の設定さえすれば特別なことは何もしなくて良いです。
適当にミニバッファで補完する動作をすると違いが分かるかと思います。
(例えばfind-fileや、KamailV3でアドレスを入力するところ)

履歴 *

2007.12.21

  • 補完候補なしのcompleti
  • g-read中にエラーが出ていたのを修正

2007.07.09

  • virtual-fileのリスト取得中にバッファを変更したらエラーが出たのを修正

2007.05.30

  • インクリメンタルに補完候補を表示している時に~/を入力したら即移動するようにした

2007.04.24

  • *virtual-file-add-slash-automatically* 追加

2007.04.15

  • 阿呆なバグ修正

2007.03.23

  • virtual-fileで:no-completionsな時にエラーになっていたのを修正
  • virtual-fileのlistの仕様を変更

2007.03.22

  • find-file-in-archiveの関数上書きが残っていたのを削除
  • completion-do-virtual側で前方一致候補の絞込みを行うようにした

2007.03.07

  • パスの途中に[a-zA-Z]:/があっても大丈夫にした
  • 先頭以外に//があっても大丈夫にした
  • 圧縮ファイルの補完の処理を外に出した
  • cygwin-mountが入っていない状態で先頭に/が1つだけだと変になっていたのを修正

2007.03.02

  • パスの途中に~/があっても大丈夫にした

2007.02.19

  • message, plain-error quitが2つ出る*do-completionのバグにとりあえず対応

2007.02.15

  • キーボードマクロ実行時にちらつかないようにした
  • いつのまにかcygwinのパスが補完できなかくなってたのを修正

2007.02.11

  • バグ修正

2007.01.29

  • ショートカット経由で設定を変更したときにスクロールしないようにした

2006.11.21

  • UNC形式も補完できるようにした
  • キー入力が溜まったら適当な量だけ飛ばすようにした

2006.11.15

  • 元が大文字のところは可能な限り大文字化するようにした
  • マッチする候補がなくなったら自動で補完しないようにした
    (ただし、C-h,BackSpace,C-b,Left,ESC ESCを押したら自動で補完するように)

2006.10.21

  • C-i(TAB)やSpaceの直後の新規ファイル作成はRET2回で行なうオプション追加
  • *complete+-case-fold*の状態をモードラインに表示するようにした
  • *complete+-case-fold*をインタラクティブに変更する関数を追加
  • モードラインに表示する変数の状態の書式を変更可能にした
  • ハイライト部分で小文字化出来ていなかったのを今度こそ修正

2006.10.20a

  • ハイライト部分を小文字化出来ていなかったのを修正

コメント *

最新の10件を表示しています。 コメントページを参照

  • ありがとうございます。問題なさそうです。 -- 2007-03-09 (金) 00:33:00
  • complete+.l 832行目の completion-get-virtual-list が定義では2引数ですが、1引数で呼び出されています。 -- 中野? 2007-04-15 (日) 12:57:04
  • 引数の数を変更して、別の場所から呼び出されてるかチェックするのを忘れていたみたいです orz
    修正しました。 -- snj14 2007-04-15 (日) 22:59:30
  • L.1683 の
               (unless (string= "~" (substring string -1))
    は、
               (unless (and (not (equal string ""))
                            (string= "~" (substring string -1)))
    としないと、completing-read で何もないとき、もしくは1文字入力された
    状態で C-h をすると、エラーがでます。 -- 中野? 2007-12-21 (金) 00:33:12
  • 早速修正しました! -- snj14 2007-12-21 (金) 05:12:29
  • はじめまして。vista環境にて、部分一致検索で補完しようとTabキーを何度か押す(タイミングはまちまちですが、Tabキーを連打すると高確率で発生)と、xyzzyが落ちてしまいます。XP環境では発生しないため、Vista特有の症状かもしれませんが、問題を回避する方法あるものなのでしょうか。 -- takets? 2009-09-12 (土) 18:16:46
  • Aloha! dmj -- Gundoslup? 2009-12-29 (火) 07:38:13
  • UNCパスを補完しようと、(complete+::*do-completion+ "//hoge/" :file-name nil) とすると無限ループになってしまいます。 -- kome? 2010-01-28 (木) 23:56:27
  • Your post has lietfd the level of debate -- Mateen? 2016-01-27 (水) 19:11:09
  • Your post has lietfd the level of debate -- Mateen? 2016-01-27 (水) 19:11:11
お名前:

Tag: xyzzy script



添付ファイル: filecomplete+-2007.12.21.zip 1567件 [詳細] filecomplete+-2007.07.09.zip 617件 [詳細] filecomplete+-2007.05.30.zip 508件 [詳細] filecomplete+-2007.04.24.zip 511件 [詳細] filecomplete+-2007.04.15.zip 460件 [詳細] filecomplete+-2007.03.23.zip 511件 [詳細] filecomplete+-2007.03.22.zip [詳細] filecomplete+-2007.03.07.zip 506件 [詳細]
トップ   編集 凍結 差分 BACKUP 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-21 (金) 05:09:10 (3387d)