OutlineX

Last modified: "2010/04/14 07:51:11"

Description

横割り 縦割り

バッファから指定したパターンにマッチする行を抽出します。


Download ...

Install

NetInstaller からインストールして、自動設定機能を利用していれば、 xyzzy を再起動するなりして設定を反映させればおしまいです。 (siteinit.l に自動設定機能の記述をしている場合は、ダンプファイルを作成しなおしてください)。

NetInstaller を使用していない場合、もしくは、自動設定機能を利用していない場合は、 outlinex.l のコメント文を参照ください。


Usage

    M-x olx           : 正規表現を指定して実行

    M-x olx-selection : セレクションの文字列をキーとして実行
                        正規表現OFFで実行します。

    M-x olx-flex      : 正規表現既定値を使って実行
                        ローカル変数 olx-pattern に設定された正規表現で実行します。
                        モード毎に既定値を設定するなどして使います。(設定例参照)

    M-x olx-reload    : 前回の検索パターンで再度実行
                        outlinex バッファが存在している&outlinex バッファがアクティブ
                        でない場合に実行すると,outlinex バッファを更新します。

    M-x olx-dialog    : ダイアログからパターンを指定して実行
                        単語単位検索,大文字小文字区別,分割方法を指定する場合は,
                        このコマンドで。

Setting

  ○F3 系占有設定例

    ;;; セレクションの文字列をキーとして実行 (非正規表現)
    (global-set-key #\F3 'olx-selection)
    (set-function-bar-label #\F3 "olx-select")

    ;;; 正規表現を指定して実行
    (global-set-key #\S-F3 'olx)
    (set-function-bar-label #\S-F3 "olx")

    ;;; ローカルな正規表現を使って実行
    (global-set-key #\S-C-F3 'olx-flex)
    (set-function-bar-label #\S-C-F3 "olx-flex")

    ;;; 前回の検索パターンで再度実行
    (global-set-key #\M-F3 'olx-reload)
    (set-function-bar-label #\M-F3 "olx-reload")

    ;;; ダイアログからパターンを指定して実行
    (global-set-key #\C-F3 'olx-dialog)
    (set-function-bar-label #\C-F3 "olx-dialog")
    
  ○既定値の変更

    ;;; 検索パターンの既定値
    (setq-default olx-pattern "[■□●○◎◆◇]")

    ;;; 縦に分割する
    (setq-default olx-vert-p t)

    ;;; 行番号の表示色
    (setq *olx-color-line-number* '(:color 6 9))

  ○桃好きな方psearch愛好者向け

    ;;; psearch のような色付けをする
    (setq *olx-coloring-like-psearch* t)

    ;;; psearch のような色付けをした場合の色設定
    (setq *olx-attribute-like-psearch* '(:foreground 1 :background 2))

    ;;; psearch のような色付けを削除
    (global-set-key '(#\C-c #\F3) 'olx-delete-attributes)

Sample

  ○モード毎の検索パターンを設定例

    ;;; lisp-mode
    (add-hook '*lisp-mode-hook*
              #'(lambda ()
                  (setq olx-pattern "^\\(;;;\\|(def\\)")
                  (setq olx-vert-p t)))

    ;;; html-mode
    (add-hook 'ed::*html-mode-hook*
              #'(lambda ()
                  (setq olx-pattern "\\(\\| +.*?>\\)")
                  (setq olx-coloring nil)))
以下は,psearch をロードした後に設定すること。
    ;;; psearch 実行時に olx の色を消す
    (add-hook '*psearch-hook* 'olx-delete-attributes)

    ;;; olx 実行時に psearch の色を消す
    (defun olx-delete-psearch-attributes ()
      "outlinex: psearch の色付けを削除"
      (when (fboundp 'psearch-delete-attributes)
        (psearch-delete-attributes)))
    (add-hook '*olx-pre-hook* 'olx-delete-psearch-attributes)

    ;;; 色を消したい時は psearch の色付けも同時に削除
    (defun olx-delete-attributes-with-psearch ()
      "outlinex: olx と psearch の色付けを同時に削除"
      (interactive)
      (olx-delete-attributes)
      (olx-delete-psearch-attributes))
    (global-set-key '(#\C-c #\]) 'olx-delete-attributes-with-psearch)

    ;;; olx-selection でポイントの文字列を取得
    (setq *olx-use-psearch-get-string* t)

  とか。

History

  [Version 3.06] 2010-04-14 (水)
  ・olx-reload の際に,場合によりソースバッファのデータを壊してしまう
    不具合を修正した。(T-T)
  ・抽出対象がなかった場合に,アウトラインバッファを削除しないようにした。
    (リロード時に抽出対象がないと穴があくため)
  ・ノードに移動時,必ずソースバッファに移動するように。
  ・olx-rerun を追加した。昔の olx-reload と同じ。現在の olx-reload との
    違いは,既にアウトラインバッファが存在する場合に,どちらがアクティブ
    になるかだけ。
  ・その他細かな修正。

  [Version 3.05.1] 2010-04-02 (金)
  ・psearch.l より先にロードすると,psearch-delete-attributes の export に
    失敗する不具合を修正した(はず)。 
    olx-delete-psearch-attributes, olx-delete-attributes-with-psearch は,
    必要に応じ初期設定ファイルで設定するように。

  [Version 3.05] 2010-04-01 (木)
  ・ヒットした文字列が point より前にしかない場合にリストが作成され
    ない不具合を修正した。
  ・正規表現を使わない場合,regexp t のまま指定文字列を regexp-quote 
    して実行していたが,regexp nil で実行するようにした。
  ・複数のフレームで実行すると表示が崩れてしまうので,ソースバッファ毎に
    アウトラインバッファを持つようにした。
  ・dialogs.l から search-dialog と *search-dialog-template* を拝借。
      - ダイアログから検索オプションを指定できるようにした。
      - 検索オプションは,すべてバッファローカルな値として保持するようにした。
  ・psearch に改めて感化された。
      - ポイントの文字列を取得できるようにした。(要 psearch)
      - 色付けできるようにした。
          *olx-coloring-like-psearch*, *olx-attribute-like-psearch* 追加。
      - 色付け削除を考慮した。
          *olx-pre-hook*, olx-delete-attributes, olx-delete-psearch-attributes, 
          olx-delete-attributes-with-psearch 追加。
  ・モード行に,検索オプションを表示するようにした。
      [SWRE]─┬─ S or C : 大文字小文字を区別
              ├─ W      : 単語単位で検索
              ├─ R      : 正規表現
              └─ E      : エスケープシーケンスを理解
  ・olx-reload の挙動を多少変更した。(アウトラインの更新をそれらしく)
  ・縦分割を復活(--)。ついでに,ポップアップ表示するようにした。
      olx-vert-p 追加。
  ・検索文字列を *minibuffer-search-string-history* に追加するようにした。
  ・上下ノード入替(olx-transpose-node-up と olx-transpose-node-down)を廃止した。
    これで,ソースバッファを編集することはなくなった。
  ・olx-left-press(ダブルクリックで開く) は,デフォルトではキー割り当てをしない
    ようにした。(マウス選択ができなくなってしまうので)
  ・その他細かな修正多数。

  [Version 3.04] 2007-12-31 (月)
  ・MITライセンスにした。

  [Version 3.03] いつ?
  ・検索パターンの設定方法を変更した。設定方法は,設定例を参考に。検索パ
    ターンと着色有無は,以下のローカル変数で設定するように。
      olx-pattern
      olx-coloring
  ・以下の変数を削除した。
      *olx-pattern-default*
      *olx-coloring*
      *olx-coloring-exception-mode*
      *olx-flex-mode-list*
  ・行番号を削除できるようにした。(Jump はできなくなります)
  ・関数 outlinex を interactive でなくした。
  ・関数 olx-toggle-coloring を削除した。

  [Version 3.02] 2005-02-03 (Thu)
  ・grep を使用すると,隠しバッファに対して実行できないようなので,やは
    り自前でアウトラインを作成するようにした。(-.-)
  ・olx-scroll-up-both-window, olx-scroll-down-both-window を復活。(-.-)

  [Version 3.01] 2004-12-09 (Thu)
  ・マーク&削除マークの着色方法を少し変更した。

  [Version 3.00] 2004-12-01 (Wed)
  ・スクラッチから書き直し,xyzzy の標準機能である grep を使用してアウト
    ラインを作成するようにした。
  ・ライセンスを NYSL とした。
  ・モード毎の検索パターンを変数で指定できるようにした。
  ・上下のノードを入れ替えられるようにした。
    (試作品:ソースバッファを編集します。)
  ・マークを付けたり,行削除とかできるようにした。
    (ソースバッファは編集しません。)
  ・着色しないモードをあらかじめ指定しておくようにした。
  ・行番号は常に表示するようにした。
  ・左右に表示できなくした。
  ・需要のなさそうな検索コマンドを削除した。
  ・その他いろいろな機能削除を含む変更。

  [Version 2.02] 2004/03/12 06:25:43 +0900
  ・行番号を text-attribute に持つようにした。
  ・キーワードの色付けをするようにした(適当)。
  ・ノード移動時にマークをつけるようにした。共通設定の「マーク行の行番号を反転」
    にチェックを入れておくと,移動した場所がわかりやすいかも。
  ・行番号を表示できるようにした。(但し,行番号を表示すると,モードによっては
    キーワードの色付けができなくなるものがありますのであしからず)。
  ・表示位置を切り替えられるようにした。
  ・olx-search では,キーワードを regexp-quote するようにした。
  ・ヘッダとフッタを削除した。
  ・かわりにパターンを表示したり,コピーしたりできるようにした。
  ・*outlinex-mode-hook* を作成した。
  ・*outlinex-default-size* を *outlinex-default-height* と *outlinex-default-width*
    に分けた。
  ・*outlinex-colors* を *outlinex-buffer-colors* に変更した。
  ・キーバインドを変更した。(私が使ってないものを削除してしまった)。
  ・なるべく余計な処理をしないように。
  ・それらしいとこに移動するのをもう少しそれらしく。
  ・サンプルを少し変更。
  ・その他いろいろ。

  [Version 2.01] 2003/04/19 13:52:37 +0900
  ・user パッケージに入れた。(__)
  ・関数名 outlinex を olx に変更した。
  ・psearch.l をまねて,olx-search を追加した。
  ・作成する対象がない場合は,アウトラインウィンドウを作らないようにした。
  ・スクロールマージンの既定値を 2 にした。
  ・サンプルの my-outlinex にちょっと追加。

  [Version 2.00] 2003/01/25 22:02:28 +0900
  ・outlinex パッケージに入れてみた。
  ・モード毎に処理を判断するあたりを削除し,「設定例」に加えてみた。
  ・スクロールマージンを設定した。
  ・色付けを変更できるようにした。
  ・パターンにマッチする文字列が無かった場合に,エラーが発生するよ
    うになっていたのを修正した。
  ・検索時に,マッチする文字列が無いと,カーソルが一人歩きしてしま
    うのを修正した。
  ・outlinex-auto, *outlinex-make-and-move* 削除。
  ・その他いろいろ。

  (snip)

  [Version 1.00] 2002/08/18(日)
  ・初版作成。(おそらく)
    

License

  outlinex.l はMITライセンスに基づいて利用可能です。
  

Copyright (c) 2007-2010 HIE Masahiro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
    

Spcial Thanks

outlinex を作成するにあたり,使わせていただいたり,参考にさせていただいたりしたもの。

亀井さんの xyzzy (dialogs.l)
http://www.jsdlab.co.jp/~kei/xyzzy/

ふかえさんの psearch
http://www5e.biglobe.ne.jp/~fukafuka/xyzzy/script/

感謝です。