*pi_logipat.txt*	論理パターン			May 01, 2019

Author:  Charles E. Campbell  <NcampObell@SdrPchip.AorgM-NOSPAM>
Copyright: (c) 2004-2016 by Charles E. Campbell	*logiPat-copyright*
           The VIM LICENSE applies to LogiPat.vim and LogiPat.txt
           (see |copyright|) except use "LogiPat" instead of "Vim"
	   No warranty, express or implied.  Use At-Your-Own-Risk.

==============================================================================
1. 目次						*logiPat* *logiPat-contents*

	1. 目次.....................: |logiPat-contents|
	2. LogiPat マニュアル.......: |logiPat-manual|
	3. LogiPat 使用例...........: |logiPat-examples|
	4. 注意.....................: |logiPat-caveat|
	5. LogiPat 変更履歴.........: |logiPat-history|

==============================================================================
2. LogiPat マニュアル			*logiPat-manual* *logiPat-man*


	*logiPat-arg* *logiPat-input* *logiPat-pattern* *logiPat-operators*
	Boolean logic pattern (論理集合演算パターン) は以下によって構成される

			オペレータ    ! = 否定
			              | = 論理和
			              & = 論理積
			グルーピング  ( ... )
			パターン      "pattern"

	*logiPat-cmd*
	:LogiPat {boolean-logic pattern}		*:LogiPat*
		:LogiPat は論理集合演算を引数に取るコマンドである
		(|logiPat-arg|)。

	:LP {boolean-logic pattern}			*:LP*
		:LP は :LogiPat の省略形式コマンドである (|logiPat-cmd|)。

	:LPE {boolean-logic pattern}			*:LPE*
		検索は行わないが論理集合演算パターンから正規表現への変換を行い
		画面に表示する。

	:LogiPatFlags {search flags}			*LogiPat-flags*
		LogiPat は |search()| コマンドを使用する。search() に指定され
		るフラグを :LogiPatFlags に渡す。

	:LPF {search flags}				*:LPF*
		:LPF は :LogiPatFlags の省略形式である。

	:let pat=LogiPat({boolean-logic pattern})	*LogiPat()*
		LogiPat() を直接呼び出す場合は検索は行わない。しかし論理集合演
		算パターンから正規表現への変換が行われ返却される。

	パターン内部で " をマッチしたい場合はパターンにデリミタを用いるのでは
	なく 2 重にする。


==============================================================================
3. LogiPat 使用例					*logiPat-examples*

	LogiPat は論理集合演算を引数に取り抜き出す為の正規表現を提供する。
	以下に例を列挙する:
>
	:LogiPat "abc"
<		文字列 :abc: を含む行を検索する
>
	:LogiPat "ab""cd"
<		文字列 :ab"cd: を含む行を検索する
>
	:LogiPat !"abc"
<		文字列 :abc: を含まない行を検索する
>
	:LogiPat "abc"|"def"
<		文字列 :abc: もしくは :def: のどちらかを含む行を検索する
>
	:LogiPat !("abc"|"def")
<		文字列 :abc: または :def: をどちらも含まない行を検索する
>
	:LogiPat "abc"&"def"
<		文字列 :abc: と :def: を両方含む行を検索する
>
	:let pat= LogiPat('!"abc"')
<		文字列 :abc: を含む全ての行にマッチする正規表現を返す。ダブル
		クォートを通常のパターンとして LogiPat へ渡すには論理集合オペ
		レータと区別する為にネストして渡す。


==============================================================================
4. 注意							*logiPat-caveat*

	"not" オペレータは脆いかもしれない。つまり、& (論理積) と | (論理和)
	のオペレータとの組み合わせでは、必ずしもうまく動作しない可能性がある。
	期待通りにマッチさせる為には、できれば :set hls でパターンを良く試して
	ほしい。

==============================================================================
5. LogiPat 変更履歴					*logiPat-history*

	v4 Jun 22, 2015 * LogiPat has been picked up by Bram M for standard
			  plugin distribution; hence the name change
	v3 Sep 25, 2006 * LP_Or() fixed; it now encapsulates its output
	                  in \%(...\) parentheses
	   Dec 12, 2011 * |:LPE| added
			* "" is mapped to a single " and left inside patterns
	v2 May 31, 2005	* LPF and LogiPatFlags commands weren't working
	v1 May 23, 2005	* initial release


==============================================================================
vim:tw=78:ts=8:noet:ft=help
