diff --git a/README.md b/README.md index 09ea469..004de54 100644 --- a/README.md +++ b/README.md @@ -3,28 +3,30 @@ Vim motion on speed! [![Build Status](https://travis-ci.org/Lokaltog/vim-easymot ![Animated demonstration](https://f.cloud.github.com/assets/3797062/2039359/a8e938d6-899f-11e3-8789-60025ea83656.gif) -About authors +About the authors ===== -- Kim Silkebækken (https://github.com/Lokaltog) -- haya14busa (https://github.com/haya14busa) (from version 2.0) -Now, EasyMotion project revived! +- Kim Silkebækken (https://github.com/Lokaltog) +- haya14busa (https://github.com/haya14busa) (since version 2.0) + +The EasyMotion project was revived! ====== -[haya14busa](https://github.com/haya14busa) took over the project from -version 2.0. Improved default motions, implemented new useful features, + +Since version 2.0 [haya14busa](https://github.com/haya14busa) took over the project from +[Lokaltog](https://github.com/Lokaltog). He improved the default motions, implemented many new useful features, and fixed some bugs. -Now, EasyMotion is completely +EasyMotion is now completely -- **Well-behaved**. It is consistent with the default motions of Vim and works well in all mode including dot repeat support. -- **Configurable**. You can easily configure its behavior and map any key you want. -- **Sophisticated**. It provide bi-directional motion, showing two label feature, smartcase & smartsign sensitive feature, repeat motion, and 'increment search' motion which can jump to even off-screen and so forth. +- **Well-behaved**: It's consistent with the default motions of Vim and works well in all modes. And it now suports dot repeat. +- **Configurable**. You can easily configure its behavior and map it to any key you want. -haya14busa implemented a lot of new feature and modify default behaviors, but I carefully considered backward compatibility, so you can easily update and enjoy significant benefit! +Even though some default behaviors where modified and many new features where added, I carefully considered backward compatibility, so you can easily update and enjoy significant benefit! Introduction ===== + EasyMotion provides a much simpler way to use some motions in vim. It takes the `` out of `w` or `f{char}` by highlighting all possible choices and allowing you to press one key to @@ -36,10 +38,14 @@ highlighted. EasyMotion is triggered by one of the provided mappings. +See `:help easymotion.txt` for more detail! + + Important notes ===== -### About the default bindings +### Default bindings + **The default leader has been changed to `` to avoid conflicts with other plugins you may have installed.** This can easily be changed back to pre-1.3 behavior by rebinding the leader in your vimrc: @@ -51,15 +57,19 @@ map (easymotion-prefix) All motions are now triggered with `` by default, e.g. `s`, `gE`. -### About SelectLines & SelectPhrase for fork version user -These features are not **motion**, so I separated them as different plugins. +### For users of the forked version + +SelectLines and SelectPhrase are not related to *motion*, so I've moved them out +to seperate plugins. - https://github.com/haya14busa/vim-easyoperator-line - https://github.com/haya14busa/vim-easyoperator-phrase -Usage example +Usage example for the base features ===== + Lorem ipsum dolor sit amet. + Type `w`(`(easymotion-w)`) to trigger the word motion `w`. When the motion is triggered, the text is updated (no braces are actually added, the text is highlighted in red by default): @@ -84,38 +94,46 @@ a tutorial](http://net.tutsplus.com/tutorials/other/vim-essential-plugin-easymot about EasyMotion. -New feature from 2.0 ------ -## Two key combo -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. +New features since 2.0 +==== -## Support bidirectional motion -It provide forward-backward (bidirectional) search feature to all motion. -(e.g. `(easymotion-s)`, `(easymotion-bd-w)` and so forth) +### Two key highlighting -You can jump forward or backward at the same time by `s`. -One useful trick is to map `nmap s (easymotion-s)` to use `s` instead and save one keystroke! +When EasyMotion runs out of single characters to highlight movement targets, it now tells you +right away both keys you have press. -## 2 key find motion -EasyMotion provide 2-key find motions like [vim-seek](https://github.com/goldfeld/vim-seek)/[vim-sneak](https://github.com/justinmk/vim-sneak). (e.g. `(easymotion-s2)`) +In previous versions you would see the same character repeated over and over again for distant +movement targets. You first had to type this key before the highlighting changed to expose the +next key you had to press. + +### Bidirectional motions + +All motions now come in a bidirectional variant (e.g. `(easymotion-s)`, `(easymotion-bd-w)` and so forth). +By default you can already jump forward or backward with `s`. A useful trick is to map `nmap s (easymotion-s)` to use `s` instead and save one keystroke! + +### 2-character search motion + +You can now also perform a 2-character search, similar to [vim-seek](https://github.com/goldfeld/vim-seek)/[vim-sneak](https://github.com/justinmk/vim-sneak) with `(easymotion-s2)`. For example you can highlight all words that start with `fu`. ![2-key-find-motion](https://f.cloud.github.com/assets/3797062/2039612/7cafcec8-89a5-11e3-8f2c-5f26a6b83efd.gif) + ```vim " Gif config nmap s (easymotion-s2) nmap t (easymotion-t2) ``` -## 'n' key find motion -EasyMotion also provide 'n' key find motion like default 'search' motion of Vim. +### n-character search motion -- Incremental highlight -- Search off-screen by `` & `` +You can also search for `n` characters, which basically can be used to replace the default search of Vim. +It suports incremental highlighting and you can use `` and `` to scroll down/up a page. If you press +`` you get the usual EasyMotion highlighting and can jump to any matching target destination with a +single keystroke. + +What sounds complicated should become clear if you look at the following examples. -Scroll by `` key (`` is backward) and `` to execute. ![n-key-motion-scroll](https://f.cloud.github.com/assets/3797062/2039254/4fbf7276-899e-11e3-9bf3-1e446cabc097.gif) -Completely replace default search of Vim with EasyMotion example. ![replace-search](https://f.cloud.github.com/assets/3797062/2039751/64b72bd8-89a8-11e3-80ea-2a6b578040b2.gif) ```vim @@ -126,13 +144,17 @@ map n (easymotion-next) map N (easymotion-prev) ``` -## Within line motion -Every motion also support within line motion.(e.g. `(easymotion-sl)`, -`(easymotion-bd-wl)`, etc...) +### Within line motion -These motion matches only current line. +Every motion can also be restricted to the current line (e.g. `(easymotion-sl)`, +`(easymotion-bd-wl)`, etc...). These motions match only the current line. + +### hjkl motions + +EasyMotion can be configured to avoid repetitive use of the `h` `j` `k` and `l`keys. + +![hjkl-motoin](https://f.cloud.github.com/assets/3797062/2039413/d8b32ab2-89a0-11e3-894f-3e81db084cfd.gif) -Example: these motion extend `hjkl` motion! ```vim " Gif config map h (easymotion-lineforward) @@ -143,26 +165,15 @@ map l (easymotion-linebackward) let g:EasyMotion_startofline = 0 " keep cursor colum when JK motion ``` -![hjkl-motoin](https://f.cloud.github.com/assets/3797062/2039413/d8b32ab2-89a0-11e3-894f-3e81db084cfd.gif) +### Smartcase & Smartsign -## Find target by smartcase & smartsign! +With this new setting EasyMotion works similar to Vim's smartcase option. -Matching target keys by smartcase. You can type targets more easily. +```vim +let g:EasyMotion_smartcase = 1 +``` -In find motion(e.g. `(easymotion-s)`), type 'v' and matches 'v' & 'V', -and 'V' matches only 'V'. - -Add following description in your vimrc: - - let g:EasyMotion_smartcase = 1 - -Default:0 - -Matching target keys by smartsign. You can type targets more easily. - -In find motion, type '1' and matches '1' & '!', and '!' matches only '!'. - -Add following description in your vimrc: +Type `v` to match `v` and `V`. Type `V` to match `V` only. Default: 0. ```vim let g:EasyMotion_use_smartsign_us = 1 " US layout @@ -170,36 +181,43 @@ let g:EasyMotion_use_smartsign_us = 1 " US layout let g:EasyMotion_use_smartsign_jp = 1 " JP layout ``` -## Migemo feature (for Japanese user) -Easymotion can match multibyte Japanese characters with a alphabet input. -For example, `sa` can search 'あ'. -This feature doesn't require cmigemo because Easymotion includes regex -patterns generated by cmigemo. However if you installed `cmigemo`, -2-key and 'n' key find motion also support migemo feature. +Type `1` to match `1` and `!`. Type `!` to match `!` only. Default: 0. -Add following description in your vimrc: + +### Migemo feature (for Japanese user) ```vim let g:EasyMotion_use_migemo = 1 ``` + +Easymotion can match multibyte Japanese characters with a alphabet input. +For example, `sa` can search 'あ'. +This feature doesn't require cmigemo because Easymotion includes regex +patterns generated by cmigemo. However if you installed `cmigemo`, +2-character and n-character search motions also support the migemo feature. Default:0 -## Repeat motion -**Repeat last motion:** `(easymotion-repeat)` -**Repeat last find motion:** +### Repeat motions -In find motion(e.g. `(easymotion-s)`), to type `` without -input characters invoke last find motion. +#### Repeat the last motion -**Jump to next/previous match even off-screen:** +`(easymotion-repeat)` -`(easymotion-next)` & `(easymotion-prev)` +#### Repeat the last find motion -**Dot repeat support:** +In a find motion (e.g. `(easymotion-s)`), type `` without +input characters to find the last motion again. -Require https://github.com/tpope/vim-repeat +#### Jump to next/previous match (even on next/previous page) + +* `(easymotion-next)` +* `(easymotion-prev)` + +#### Support for dot repeat + +This requires https://github.com/tpope/vim-repeat. You can use EasyMotion in operator-pending and press `.` to repeat! It is well-behaved, consistent with default behavior of Vim. @@ -223,7 +241,3 @@ let g:EasyMotion_smartcase = 1 let g:EasyMotion_use_smartsign_us = 1 ``` -See `:help easymotion.txt` for more detail! - -Pull requests are welcome including my English check! :) -