updating.
This commit is contained in:
parent
879a7b6bd4
commit
1f0dc50da6
1 changed files with 120 additions and 120 deletions
|
@ -1,120 +1,120 @@
|
|||
*indent-object.txt* Text objects based on indent levels.
|
||||
|
||||
Copyright (c) 2010 Michael Smith
|
||||
|
||||
Indent Text Objects
|
||||
|
||||
INTRODUCTION |idntobj-introduction|
|
||||
TEXT OBJECTS |idntobj-objects|
|
||||
BLANK LINES |idntobj-blanklines|
|
||||
ABOUT |idntobj-about|
|
||||
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *idntobj-introduction*
|
||||
|
||||
Vim text objects provide a convenient way to select and operate on various
|
||||
types of objects. These objects include regions surrounded by various types of
|
||||
brackets and various parts of language (ie sentences, paragraphs, etc).
|
||||
|
||||
This plugin defines a new text object, based on indentation levels. This is
|
||||
very useful in languages such as Python, in which the syntax defines scope in
|
||||
terms of indentation. Using the objects defined in this plugin, an entire if
|
||||
structure can be quickly selected, for example.
|
||||
|
||||
|
||||
==============================================================================
|
||||
TEXT OBJECTS *ai* *ii* *aI* *iI* *idntobj-objects*
|
||||
|
||||
This plugin defines two new text objects. These are very similar - they differ
|
||||
only in whether they include the line below the block or not.
|
||||
|
||||
Key Mapping Description ~
|
||||
>
|
||||
<count>ai (A)n (I)ndentation level and line above.
|
||||
<count>ii (I)nner (I)ndentation level (no line above).
|
||||
<count>aI (A)n (I)ndentation level and lines above/below.
|
||||
<count>iI (I)nner (I)ndentation level (no lines above/below).
|
||||
<
|
||||
|
||||
Note that the iI mapping is mostly included simply for completeness, it is
|
||||
effectively a synonym for ii.
|
||||
|
||||
Just like regular text objects, these mappings can be used either with
|
||||
operators expecting a motion, such as 'd' or 'c', as well as in visual mode.
|
||||
In visual mode the mapping can be repeated, which has the effect of
|
||||
iteratively increasing the scope of indentation block selected. Specifying a
|
||||
count can be used to achieve the same effect.
|
||||
|
||||
The difference between |ai| and |aI| is that |ai| includes the line
|
||||
immediately above the indentation block, whereas aI includes not only that,
|
||||
but also the line below. Which of these is most useful largely depends on the
|
||||
structure of the language being edited.
|
||||
|
||||
For example, when editing the Python code, |ai| is generally more useful, as
|
||||
the line above the indentation block is usually related to it. For example, in
|
||||
the following code (* is used to indicate the cursor position):
|
||||
>
|
||||
if foo > 3:
|
||||
log("foo is big") *
|
||||
foo = 3
|
||||
do_something_else()
|
||||
<
|
||||
the if clause is logically related to the code block, whereas the function
|
||||
call below is not. It is unlikely we would want to select the line below when
|
||||
we are interested in the if block.
|
||||
|
||||
However, in other languages, such as Vim scripts, control structures are
|
||||
usually terminated with something like 'endif'. Therefore, in this example:
|
||||
>
|
||||
if foo > 3
|
||||
echo "foo is big" *
|
||||
let foo = 3
|
||||
endif
|
||||
call do_something_else()
|
||||
<
|
||||
we would more likely want to include the endif when we select the if
|
||||
structure.
|
||||
|
||||
|
||||
==============================================================================
|
||||
BLANK LINES *idntobj-blanklines*
|
||||
|
||||
When scanning code blocks, the plugin usually ignores blank lines. There is an
|
||||
exception to this, however, when the block being selected is not indented. In
|
||||
this case if blank lines are ignored, then the entire file would be selected.
|
||||
Instead when code at the top level is being indented blank lines are
|
||||
considered to delimit the block.
|
||||
|
||||
|
||||
==============================================================================
|
||||
ABOUT *idntobj-about*
|
||||
|
||||
vim-indent-object was written by Michael Smith <msmith@msmith.id.au>. The
|
||||
project repository is kept at:
|
||||
|
||||
http://github.com/michaeljsmith/vim-indent-object
|
||||
|
||||
Any feedback or criticism is welcome, and can be mailed to the author at the
|
||||
above email address. Alternatively issues can be raised on the project
|
||||
website.
|
||||
|
||||
Licence:
|
||||
|
||||
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.
|
||||
*indent-object.txt* Text objects based on indent levels.
|
||||
|
||||
Copyright (c) 2010 Michael Smith
|
||||
|
||||
Indent Text Objects
|
||||
|
||||
INTRODUCTION |idntobj-introduction|
|
||||
TEXT OBJECTS |idntobj-objects|
|
||||
BLANK LINES |idntobj-blanklines|
|
||||
ABOUT |idntobj-about|
|
||||
|
||||
|
||||
==============================================================================
|
||||
INTRODUCTION *idntobj-introduction*
|
||||
|
||||
Vim text objects provide a convenient way to select and operate on various
|
||||
types of objects. These objects include regions surrounded by various types of
|
||||
brackets and various parts of language (ie sentences, paragraphs, etc).
|
||||
|
||||
This plugin defines a new text object, based on indentation levels. This is
|
||||
very useful in languages such as Python, in which the syntax defines scope in
|
||||
terms of indentation. Using the objects defined in this plugin, an entire if
|
||||
structure can be quickly selected, for example.
|
||||
|
||||
|
||||
==============================================================================
|
||||
TEXT OBJECTS *ai* *ii* *aI* *iI* *idntobj-objects*
|
||||
|
||||
This plugin defines two new text objects. These are very similar - they differ
|
||||
only in whether they include the line below the block or not.
|
||||
|
||||
Key Mapping Description ~
|
||||
>
|
||||
<count>ai (A)n (I)ndentation level and line above.
|
||||
<count>ii (I)nner (I)ndentation level (no line above).
|
||||
<count>aI (A)n (I)ndentation level and lines above/below.
|
||||
<count>iI (I)nner (I)ndentation level (no lines above/below).
|
||||
<
|
||||
|
||||
Note that the iI mapping is mostly included simply for completeness, it is
|
||||
effectively a synonym for ii.
|
||||
|
||||
Just like regular text objects, these mappings can be used either with
|
||||
operators expecting a motion, such as 'd' or 'c', as well as in visual mode.
|
||||
In visual mode the mapping can be repeated, which has the effect of
|
||||
iteratively increasing the scope of indentation block selected. Specifying a
|
||||
count can be used to achieve the same effect.
|
||||
|
||||
The difference between |ai| and |aI| is that |ai| includes the line
|
||||
immediately above the indentation block, whereas aI includes not only that,
|
||||
but also the line below. Which of these is most useful largely depends on the
|
||||
structure of the language being edited.
|
||||
|
||||
For example, when editing the Python code, |ai| is generally more useful, as
|
||||
the line above the indentation block is usually related to it. For example, in
|
||||
the following code (* is used to indicate the cursor position):
|
||||
>
|
||||
if foo > 3:
|
||||
log("foo is big") *
|
||||
foo = 3
|
||||
do_something_else()
|
||||
<
|
||||
the if clause is logically related to the code block, whereas the function
|
||||
call below is not. It is unlikely we would want to select the line below when
|
||||
we are interested in the if block.
|
||||
|
||||
However, in other languages, such as Vim scripts, control structures are
|
||||
usually terminated with something like 'endif'. Therefore, in this example:
|
||||
>
|
||||
if foo > 3
|
||||
echo "foo is big" *
|
||||
let foo = 3
|
||||
endif
|
||||
call do_something_else()
|
||||
<
|
||||
we would more likely want to include the endif when we select the if
|
||||
structure.
|
||||
|
||||
|
||||
==============================================================================
|
||||
BLANK LINES *idntobj-blanklines*
|
||||
|
||||
When scanning code blocks, the plugin usually ignores blank lines. There is an
|
||||
exception to this, however, when the block being selected is not indented. In
|
||||
this case if blank lines are ignored, then the entire file would be selected.
|
||||
Instead when code at the top level is being indented blank lines are
|
||||
considered to delimit the block.
|
||||
|
||||
|
||||
==============================================================================
|
||||
ABOUT *idntobj-about*
|
||||
|
||||
vim-indent-object was written by Michael Smith <msmith@msmith.id.au>. The
|
||||
project repository is kept at:
|
||||
|
||||
http://github.com/michaeljsmith/vim-indent-object
|
||||
|
||||
Any feedback or criticism is welcome, and can be mailed to the author at the
|
||||
above email address. Alternatively issues can be raised on the project
|
||||
website.
|
||||
|
||||
Licence:
|
||||
|
||||
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.
|
||||
|
|
Loading…
Reference in a new issue