-
Notifications
You must be signed in to change notification settings - Fork 0
Raimondi/reggie_viml
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
*reggie_to.txt* For Vim version 7.0 Last change: 2011 February 22 xxxxx xxx ~ xxxxxx x xx x ~ xx x x xx xxx ~ x x x xx x ~ x x x ~ xx xx x xxx xxxx xxxx xxx xxx ~ xx xx x x xxx x xxx x x xxx x xxx x xxx ~ xx xxxx x xxx x xxxx x xxxx xx x xxx ~ xx xx xxx xx xxx xx xx xx xx xx xx xxx ~ xx xx xx xxxxxxxx xx xx xx xx xx xxxxxxxx ~ x xx xx xxxxxxx xx xx xx xx xx xxxxxxx ~ x xx xx xx xx xx xx xx xx ~ xxxx xxx xxxx x xx xx xx xx xx xxxx x ~ x xxxx xx xxxxxxx xxxxxxxx xxxxxxxx xxx x xxxxxxx ~ x xx x xxxxx xxx xxx xxx xxx xxx xxxxx ~ x xxx xxx ~ xx xxxx xxx xxxx xxx ~ xxxxxxx xx xxxxxxx xx ~ x xxxx x xxxx ~ Helping you tame those beasts!~ Reggie T.O.: RegExp Based Text Objects *reggie_to* v1.0 This library allows to create regexp based text objects that follow the behaviour of the built-in Vim text objects. It supports Ruby and VimL by default. ============================================================================== How to use it *reggie_to_use* If your language of choice is not supported by default, you can create the text objects (ik for inner and ak for all) for it. Create the file ftplugin/[filetype]/reggie_to.vim somewhere in your 'runtimepath' ($HOME/.vim is a usual place) and call reggie_to#init() after creating the following variables as needed (see |reggie_to_example|): b:reggie_to_start *b:reggie_to_start* b:reggie_to_middle *b:reggie_to_middle* b:reggie_to_end *b:reggie_to_end* Value: string Default: "" These variables hold the patterns that will be used to match the start, middle and end of the text object respectively. See |searchpair()|for more details. Note: At least b:reggie_to_start and b:reggie_to_end must be set. b:reggie_to_skip *b:reggie_to_skip* Value: expression Default: 0 This variable is used to skip over areas where it should not make sense to match for the start/middle/end of a text objects. When this expression evaluates to 1, the matched string will we skipped. See |searchpair()| for more details. b:reggie_to_map *b:reggie_to_map* Value: string Default: 'k' The value of this variable is used to create the mappings by appending them to i and a. e.g.: the default value of k will create the ik and ak text objects. ============================================================================== Example *reggie_to_example* We will create text objects to handle the following text: > 1 if number of users == 1 2 send this to user 3 else 4 for every user in users 5 send this instead 6 send this multiline string "First line 7 end of indentation." 8 end 9 end < Let's say that the corresponding filetype for that language is "mine", so we need to create the following file: > ~/.vim/ftplugin/mine/reggie_to.vim < That file will be sourced when the 'filetype' option is set to "mine", so we will set the variables and create the text objects using the following lines: > 1 " Text objects start with 'if' and 'for' at the beginning of the line 2 " following 0 or more white spaces. 3 let b:reggie_to_start = '^\s*\zs\(if\|for\)' 4 5 " Middle of the text objects matches 'else' following 0 or more white 6 " space. 7 let b:reggie_to_middle = '^\s*\zselse' 8 9 " The end of the text objects matches 'end' following 0 or more white 10 " space. 11 let b:reggie_to_end = '^\s*\zsend' 12 13 " We don't like the default ik/ak mappings, so we'll use in/an. 14 let b:reggie_to_map = 'n' 15 16 " We should not match for limits of the text object inside strings or 17 " comments, the following expression returns 1 when evaluated with the 18 " cursor on a string or comment. 19 let b:reggie_to_skip = 20 \ 'synIDattr(synID(line("."),col("."),1),"name") =~? '. 21 \ '"comment\\|string"' 22 23 " Now let's create our beloved text objects. 24 call reggie_to#init() < Enjoy! ============================================================================== Limitations *reggie_to_limitations* - Works linewise. - It might not work correctly or at all when any start/middle/end is part of a multi statement line. - Continued lines are not considered in inner text objects. ============================================================================== Maintainer *reggie_to_maintainer* Hi there! My name is Israel Chauca F. and I can be reached at: mailto:[email protected] Feel free to send me any feedback about this plugin, I'll be very pleased to read it. If you build a new ftplugin for a language, please send it to me and I'll add it to the library. ============================================================================== History *reggie_to_history* Version Date Release notes ~ |------------------------------------------------------------------------------| 1.0 2011-02-22 * Current Release: - Initial upload. |------------------------------------------------------------------------------| .-.._ ___ ~ ,-' |:\ /'--.`. ~ /' ,|:|/::::| '\ ~ ,' ,.-:::::::::::. \ ~ _/' /::::::::::::::::` \ ~ /' ':::::::_,--.::::::`.'\ ~ / ,'::::.,-' `\::::::|| ~ | /:::_/' `\::::|| ~ | \::- \:::|| ~ /_ \_/ | ~ | '-._ / ~ |'. '`-..._ | ~ .. '--_ ''----.| ~ | `._ '----- '''----__,..\ ~ |.._ '-.._________..--' ,'|_ ~ | `--..__ _,' /| ''--. ~ ''''''---..__ | '`-------''' /-\ .-.._\_ ~ '-\__ \-----....__ _..' ,.-. `. .`\ ~ '`. """--""" _/' _. \ \ | \ ~ \--..___ ___..-- / | ' | | \ ___...--- ~ _,........\ """--"" ./ |/-..__=..|,-' ~ ______, '' ` __,...-'' ,' -.. ' ~ -' `.-...,-'''' - | '`---------- ~ \ _.,-'' .' ~ \ ..______.,-' ,' ~ '-. ,/' ~ ''---'......-' ~ /`-._ ~ |::::""--.._ ~ /( )\ /::::::;;;;;\____ ~ \\ _ // /;;::::::;;;;;;;;;\ ~ _ / \(_)/ \ /;;;;:::::::;;;;;;;;\___ ~ /;| | < |;;;;;;;:::::::;;;;;;:::;\ ~ ,-._/;;\ \_ / /;;;;;;;;;:::::::::::;;;;;;| ~ _.-;;::::;;;;\ / | /;;;;;:::::::::;;;:::::;;;;;;\ ~ /;;::;;;;;;;;;;\ | / _/;;;;::::::::::;;;;;:::::;;;;;;\ ~ _.-;::::::;;;;;;;;;;\ \__ \ /;;;;;:::::::::;;;;;::::;;;;;;;;;;\ ~ .-;;;::::::::::;;;;;;;;;\ `-' /;;;;:::::::::;;;;;;;;;::;;;;;;;;;;;\ ~ ;;;;:::::::::::::;;;;;;;;| /;;;;;:::::;;;;;;;;;;;:::::;;;;;;;;JRO\~ Sand opened only two body lengths from him. Crystal teeth flashed in the dim~ light. He saw the yawning mouth-cavern with, far back, the ambient movement of~ dim flame. The overpowering redolence of the spice swept over him. But the ~ worm had stopped. ~ vim:tw=78:et:ts=8:sw=2:ft=help:norl:formatoptions+=tcroqn:autoindent:
About
Vim Text objects for VimL based on the Reggie library.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published