vim-sneak


Ⅰ. 插件描述

The missing motion for Vim :athletic_shoe:

Ⅱ. 基本信息

创建日期:  2013-09-21
使用用户:  1234
Github星:  1691
插件作者:  Justin Keyes

Ⅲ. 安装方法

使用Vundle管理器安装

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

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

使用NeoBundle管理器安装

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

使用VimPlug管理器安装

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

使用Pathogen管理器安装

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

Ⅳ. 文档说明

sneak.vim :shoe:

Jump to any location specified by two characters.

Sneak is a powerful, reliable, yet minimal motion plugin for Vim. It works with **multiple
lines, operators** (including repeat . and [surround]), motion-repeat
(; and ,), [keymaps], visual mode, [multibyte] text, and
macros.

Try label-mode for a minimalist alternative to
EasyMotion:

let g:sneak#label = 1

Usage

Sneak is invoked with s followed by exactly two characters:

s{char}{char}
  • Type sab to move the cursor immediately to the next instance of the text "ab".

    • Additional matches, if any, are highlighted until the cursor is moved.
  • Type ; to go to the next match (or s again, if s_next is enabled; see :help sneak).
  • Type 3; to skip to the third match from the current position.
  • Type ctrl-o or `` to go back to the starting point.

    • This is a built-in Vim motion; Sneak adds to Vim's jumplist
      only on s invocation—not repeats—so you can

    abandon a trail of ; or , by a single ctrl-o or `` .

  • Type s<Enter> at any time to repeat the last Sneak-search.
  • Type S to search backwards.

Sneak can be limited to a vertical scope by prefixing s with a [count].

  • Type 5sxy to go immediately to the next instance of "xy" within 5 columns
    of the cursor.

Sneak is invoked with operators
via z (because s is taken by surround.vim).

  • Type 3dzqt to delete up to the third instance of "qt".

    • Type . to repeat the 3dzqt operation.
    • Type 2. to repeat twice.
    • Type d; to delete up to the next match.
    • Type 4d; to delete up to the fourth next match.
  • Type yszxy] to [surround] in brackets up to xy.

    • Type . to repeat the surround operation.
  • Type gUz\} to upper-case the text from the cursor until the next instance
    of the literal text \}

    • Type . to repeat the gUz\} operation.

Install

  • vim-plug

    • Plug 'justinmk/vim-sneak'
  • Pathogen

    • git clone git://github.com/justinmk/vim-sneak.git ~/.vim/bundle/vim-sneak
  • Manual installation:

    • Copy the files to your .vim directory.

To repeat Sneak operations (like dzab) with dot .,
repeat.vim is required.

FAQ

Why not use /?

For the same reason that Vim has motions
like f and t: common operations should use the fewest keystrokes.

  • /ab<cr> requires 33% more keystrokes than sab
  • Sets only the initial position in the Vim jumplist—so you can explore a
    trail of matches via ;, then return to the start with a single ctrl-o or ``
  • Doesn't clutter your search history
  • Input is always literal (don't need to escape special characters)

    • Ignores accents ("equivalence class") when matching
      (#183)
  • Smarter, subtler highlighting

Why not use f?

  • 50x more precise than f or t
  • Moves vertically
  • Highlights matches in the direction of your search

How dare you remap s?

You can specify any mapping for Sneak (see :help sneak).
By the way: cl is equivalent to s, and cc is equivalent to S.

How can I replace f with Sneak?

map f <Plug>Sneak_s
map F <Plug>Sneak_S

How can I replace f and/or t with one-character Sneak?

Sneak has <Plug> mappings for f and t 1-character-sneak.
These mappings do not invoke label-mode, even if you have it enabled.

map f <Plug>Sneak_f
map F <Plug>Sneak_F
map t <Plug>Sneak_t
map T <Plug>Sneak_T

Related

License

Copyright © Justin M. Keyes. Distributed under the MIT license.

添加新评论