Indentwise


Ⅰ. 插件描述

A Vim plugin for indent-level based motion.

Ⅱ. 基本信息

创建日期:  2015-01-27
使用用户:  263
Github星:  151
插件作者:  Jeet Sukumaran

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'jeetsukumaran/indentwise'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'jeetsukumaran/indentwise'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'jeetsukumaran/indentwise'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/jeetsukumaran/vim-indentwise

Ⅳ. 文档说明

# IndentWise

Description

IndentWise is a Vim plugin that provides for motions based on indent depths
or levels in normal, visual, and operator-pending modes.

Movements by Relative Indent-Depth

The following key-mappings provide motions to go to lines of lesser, equal, or
greater indent than the line that the cursor is currently on:

  • [- : Move to previous line of lesser indent than the current line.
  • [+ : Move to previous line of greater indent than the current line.
  • [= : Move to previous line of same indent as the current line that
    is separated from the current line by lines of different indents.
  • ]- : Move to next line of lesser indent than the current line.
  • ]+ : Move to next line of greater indent than the current line.
  • ]= : Move to next line of same indent as the current line that
    is separated from the current line by lines of different indents.

The above all take a {count}, so that, e.g., 4[- will move to the
previous line that is 4 indent-depths less than the current one. An
"indent-depth" is simply the indentation of the line, and thus any line with a
smaller amount of indentation relative to current line is considered at a
lesser indent depth, and, conversely, any line with a greater indentation than
the current line is considered to be at a greater indent-depth.

Movements by Absolute Indent-Levels

In addition, you can navigate directly to a line of a particular
indent-level, with the level specified by a (mandatory)
{count} directive, using:

  • {count}[_ : Move to previous line with indent-level of {count}.
  • {count}]_ : Move to next line with indent-level of {count}.

An "indent-level" of a line is the number of shiftwidth units that the
line is indented (as opposed to the "indent-depth", which is just the
indentation amount of a line).

Movements by Indent-Block Scope

The following key-mappings provide motions based on indent-block scope
boundaries, with an optional {count} directive specifying the number
of levels of scope to include:

  • [% : Move to beginning of indent-block scope (i.e., move to the
    line just after the previous line of lesser indent); repeat
    for {count} outer scopes.
  • ]% : Move to end of indent-block scope (i.e., move to the line
    just before the next line of lesser indent); repeat
    for {count} outer scopes.

Customization

If you are unhappy with the default key-mappings you can provide your own by
defining custom mappings in your _.vimrc_. For example to replicate the
default mappings, you would define the following:

map [- <Plug>(IndentWisePreviousLesserIndent)
map [= <Plug>(IndentWisePreviousEqualIndent)
map [+ <Plug>(IndentWisePreviousGreaterIndent)
map ]- <Plug>(IndentWiseNextLesserIndent)
map ]= <Plug>(IndentWiseNextEqualIndent)
map ]+ <Plug>(IndentWiseNextGreaterIndent)
map [_ <Plug>(IndentWisePreviousAbsoluteIndent)
map ]_ <Plug>(IndentWiseNextAbsoluteIndent)
map [% <Plug>(IndentWiseBlockScopeBoundaryBegin)
map ]% <Plug>(IndentWiseBlockScopeBoundaryEnd)

Installation

pathogen.vim

$ cd ~/.vim/bundle
$ git clone git://github.com/jeetsukumaran/vim-indentwise.git

Vundle

:BundleInstall jeetsukumaran/vim-indentwise

Add the line below into your _.vimrc_.

Bundle 'jeetsukumaran/vim-indentwise'

Manually

Copy the plugin/indentwise.vim file to your .vim/plugin directory and the
doc/indentwise.txt file to your .vim/doc directory.

Acknowledgements

IndentWise is based on the following:

添加新评论