mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 02:20:03 +08:00
130 lines
5.1 KiB
Plaintext
130 lines
5.1 KiB
Plaintext
*vimregstyle.txt* Extended regular expressions & pattern library
|
||
|
||
|
||
VIM REFERENCE MANUAL by Barry Arthur
|
||
|
||
|
||
Help on using vimregstyle *vimregstyle*
|
||
|
||
1. Introduction |vimregstyle-intro|
|
||
2. Functions |vimregstyle-functions|
|
||
3. Patterns |vimregstyle-patterns|
|
||
4. External Resources |vimregstyle-resources|
|
||
|
||
==============================================================================
|
||
1. INTRODUCTION *vimregstyle-intro*
|
||
|
||
VimRegStyle is a Regular Expression Pattern Library and suite of
|
||
utilities for operating on matches within text.
|
||
|
||
==============================================================================
|
||
2. FUNCTIONS *vimregstyle-functions*
|
||
|
||
VimRegStyle maintains an internal library of named patterns. This section
|
||
details the public interface for that library.
|
||
|
||
*vimregstyle-set*
|
||
vrs#set({name}, {flavour}, {pattern})
|
||
|
||
Used to add new patterns to the library. {flavour} should be either 'vim' or
|
||
'pcre'. There is a single namespace per {flavour} for all VimRegStyle patterns
|
||
and attempting to add a pattern with a name that already exists in the library
|
||
will generate an error message like:
|
||
|
||
*Error* VRS: A pattern of that flavour (vim) already exists under "ip4".
|
||
|
||
NOTE: Casual users will almost never use the |vrs#set()| function. The better
|
||
way to add patterns is through additions to the |vrs-files|. See
|
||
|vimregstyle-contribute| for contributing patterns back to the library.
|
||
|
||
*vimregstyle-get*
|
||
vrs#get({name}[, {flavour}='vim')
|
||
|
||
Get the pattern for the given {name} and {flavour} (defaulting to 'vim').
|
||
|
||
|
||
*vimregstyle-match*
|
||
vrs#match({string}, {named-pattern} [, {start}[, {count}]])
|
||
|
||
Replica of builtin |match()| function.
|
||
|
||
*vimregstyle-matchend*
|
||
vrs#matchend({string}, {named-pattern} [, {start}[, {count}]])
|
||
|
||
Replica of builtin |matchend()| function.
|
||
|
||
*vimregstyle-matches*
|
||
vrs#matches({string}, {named-pattern} [, {start}[, {count}]])
|
||
|
||
Predicate returning true if {string} contains {named-pattern} anywhere within
|
||
it. Anchoring to the start and end of the {string} will only occur if the
|
||
{named-pattern} specifically includes the associated anchors. Use
|
||
|vrs#exactly()| to force an anchored match.
|
||
|
||
*vimregstyle-exactly*
|
||
vrs#exactly({string}, {named-pattern} [, {start}[, {count}]])
|
||
|
||
Predicate returning true if {string} exactly matches {named-pattern}. Use
|
||
|vrs#matches()| to check if the {string} contains the {named-pattern} anywhere
|
||
within the {string}.
|
||
|
||
|
||
==============================================================================
|
||
*vrs-files*
|
||
3. PATTERNS *vimregstyle-patterns*
|
||
|
||
The patterns are stored in {*.vrs} files within the plugin's
|
||
{/patterns/} directory. The {.vrs} files have the following format:
|
||
|
||
name flavour pattern ~
|
||
|
||
Where:~
|
||
|
||
* {name} contains no whitespace and must not be preceded by whitespace
|
||
* {flavour} can be {vim} or {pcre}
|
||
* {pattern} is not delimited — use a bare regex
|
||
|
||
The patterns are further enhanced in that they:
|
||
|
||
* Accept PCRE style multiline, whitespace insensitive syntax. All multiline
|
||
patterns must commence on the line below the named entry and must be
|
||
indented with whitespace.
|
||
|
||
* Accept a new regex atom: \%{name,count,separator} providing pattern
|
||
composition by inline-expanding the {name}d pattern at the current point in
|
||
the regex optionally {count} times, each one separated by {separator} (which
|
||
is a multicharacter string literal, not using regular syntax).
|
||
|
||
Example:~
|
||
|
||
Assuming the VRS library had a pattern called <_ip4_segment>
|
||
that represented a single 0-255 chunk, an <ip4> regex could then be written
|
||
using this composition atom as:
|
||
>
|
||
ip4 vim \<\%{_ip4_segment,4,.}>
|
||
<
|
||
Which would concatenate four copies of the <_ip4_segment> partial pattern,
|
||
each separated by the literal string '.'.
|
||
|
||
------------------------------------------------------------------------------
|
||
*vimregstyle-contribute*
|
||
Pattern contributors can submit additional patterns to VimRegStyle through
|
||
pull requests on the main Github repository:
|
||
https://github.com/Raimondi/VimRegStyle
|
||
|
||
Please ensure that all patterns are accompanied with tests. VimRegStyle uses
|
||
the runVimTests (https://github.com/vim-scripts/runVimTests) unit testing
|
||
framework.
|
||
|
||
*TODO* Allow user-crafted patterns in a nominal directory (defaulting
|
||
to ~/.vim/patterns/ ?)
|
||
|
||
==============================================================================
|
||
4. EXTERNAL RESOURCES *vimregstyle-resources*
|
||
|
||
* http://www.regexlib.com/
|
||
* http://www.programmersheaven.com/2/Regex
|
||
* http://www.asiteaboutnothing.net/regex/
|
||
|
||
vim:tw=78:ts=8:ft=help:norl:
|