vim-easymotion/README.md

110 lines
4.3 KiB
Markdown
Raw Normal View History

2013-05-16 12:43:18 -04:00
# Modifications to Lokaltog's EasyMotion
2013-05-16 12:42:57 -04:00
1. Use one - two character key jump. Display two keys if one-character key is not enough, so you can see what two keys to type without waiting after pressing the first key.
2013-06-03 17:50:22 -04:00
2. Added forward-backward search (bidirectional) search. You can jump forward or backward at the same time. `<Leader>s`. One useful trick is to map `nmap <SPACE> <leader>s` and `vmap <SPACE> <leader>s` to use space bar instead and save one keystroke!
2013-10-04 07:35:22 -04:00
3. Added SelectLines function which allows you to select any range of lines using two consecutive easymotion calls. Default mappings are `c<Leader>l, d<Leader>l, v<Leader>l, y<Leader>l`. To yank a single line you can either type the same character(s) twice, or use '.' character. E.g. `vlb.` will select the line with character 'b'. Note: to promote good Vim habits, you should learn standard movement commands like `}}, vi(, va(, %, ][, ]], [(, etc.` before resorting to this function.
2013-10-04 07:32:37 -04:00
4. (Experimental) Added SelectPhrase function which allows you to make selection between any two characters. Default mapping are `c<Leader>p, d<Leader>p, v<Leader>p, y<Leader>p`. Example usage: type `v<Leader>p` then press two input characters. Now the two input characters will be highlight on the same screen, and you can then type two combos to make selection.
5. Added matching target keys by smartcase option.
6. Added keep cursor column option when JK motion.
2013-06-03 19:29:50 -04:00
2013-06-03 18:53:59 -04:00
## Animated demonstration
Two-key combo
2013-06-03 18:54:49 -04:00
2013-06-03 17:42:26 -04:00
![two-character key](http://homes.cs.washington.edu/~supasorn/easymotion.gif)
2013-06-03 18:54:49 -04:00
2013-10-04 07:32:37 -04:00
Select lines using `v<Leader>l`
2013-06-03 18:54:49 -04:00
let g:EasyMotion_special_select_line = 1 " Default:0
let g:EasyMotion_special_mapping_l = '{anykeys}' " Customize keymap
2013-06-03 18:53:59 -04:00
![two-character key](http://homes.cs.washington.edu/~supasorn/easymotion2.gif)
2013-06-03 18:54:49 -04:00
2013-10-04 07:32:37 -04:00
Yank lines using `y<Leader>l`. You can copy lines without moving cursor back and forth between line you want to yank and line you want to paste.
2013-06-03 18:54:49 -04:00
let g:EasyMotion_special_select_phrase = 1 " Default:0
let g:EasyMotion_special_mapping_p = '{anykeys}' " Customize keymap
2013-06-03 18:53:59 -04:00
![two-character key](http://homes.cs.washington.edu/~supasorn/easymotion3.gif)
2013-05-16 12:42:57 -04:00
2013-05-16 13:02:42 -04:00
This is an alpha version, which breaks multi-byte support, and others.
2011-03-31 02:23:06 -04:00
# Introduction
2011-03-28 06:54:03 -04:00
2011-06-01 04:14:20 -04:00
EasyMotion provides a much simpler way to use some motions in vim. It
takes the `<number>` out of `<number>w` or `<number>f{char}` by
highlighting all possible choices and allowing you to press one key to
2011-03-28 06:54:03 -04:00
jump directly to the target.
2011-06-01 04:14:20 -04:00
When one of the available motions is triggered, all visible text
preceding or following the cursor is faded, and motion targets are
2011-03-28 06:54:03 -04:00
highlighted.
2011-03-31 02:23:06 -04:00
EasyMotion is triggered by one of the provided mappings.
2011-03-28 06:54:03 -04:00
2011-04-07 04:29:03 -04:00
# Important notes about the default bindings
2013-10-04 07:35:22 -04:00
**The default leader has been changed to `<Leader><Leader>` to avoid
conflicts with other plugins you may have installed.** This can easily be
2011-11-07 08:39:51 -05:00
changed back to pre-1.3 behavior by rebinding the leader in your vimrc:
2011-04-07 04:29:03 -04:00
2011-06-01 04:14:20 -04:00
let g:EasyMotion_leader_key = '<Leader>'
2011-04-07 04:29:03 -04:00
2011-11-07 08:39:51 -05:00
All motions are now triggered with `<Leader><Leader>` by default, e.g.
`<Leader><Leader>t`, `<Leader><Leader>gE`.
2011-04-07 04:29:03 -04:00
2011-03-31 02:23:06 -04:00
## Usage example
2011-03-28 06:54:03 -04:00
2011-11-07 08:39:51 -05:00
Type `<Leader><Leader>w` to trigger the word motion `w`. When the motion is
2011-06-01 04:14:20 -04:00
triggered, the text is updated (no braces are actually added, the text
2011-03-31 02:23:06 -04:00
is highlighted in red by default):
2011-03-28 06:54:03 -04:00
<cursor>Lorem {a}psum {b}olor {c}it {d}met.
Press `c` to jump to the beginning of the word "sit":
Lorem ipsum dolor <cursor>sit amet.
2011-06-01 04:14:20 -04:00
Similarly, if you're looking for an "o", you can use the `f` motion.
2011-11-07 08:39:51 -05:00
Type `<Leader><Leader>fo`, and all "o" characters are highlighted:
2011-03-31 02:23:06 -04:00
<cursor>L{a}rem ipsum d{b}l{c}r sit amet.
Press `b` to jump to the second "o":
Lorem ipsum d<cursor>olor sit amet.
2011-06-01 04:14:20 -04:00
Jeffrey Way of Nettuts+ has also [written
a tutorial](http://net.tutsplus.com/tutorials/other/vim-essential-plugin-easymotion/)
2011-03-31 02:23:06 -04:00
about EasyMotion.
2011-03-28 06:54:03 -04:00
## Animated demonstration
![Animated demonstration](http://oi54.tinypic.com/2yysefm.jpg)
## Vim-Lazymotion!
Matching target keys by smartcase. You can type targets more lazily.
Type `<Leader><Leader>sv`, and all "v" and "V" characters are highlighted:
<cursor>V{a}im v{b}im V{c}IM.
Press `b` to jump to the second "v":
Vim <cursor>vim VIM.
Type `<Leader><Leader>sV`, and all "V" characters are highlighted, not "v":
<cursor>V{a}im vim V{b}IM.
Press `b` to jump to the second "V":
Vim vim <cursor>VIM.
Add following description in your vimrc:
let g:EasyMotion_smartcase = 1
Default:0