Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/AlexPl292/IdeaVim-EasyMotion

EasyMotion emulation plugin for IdeaVim
https://github.com/AlexPl292/IdeaVim-EasyMotion

acejump ideavim ideavim-easymotion jetbrains vim

Last synced: 3 months ago
JSON representation

EasyMotion emulation plugin for IdeaVim

Awesome Lists containing this project

README

        

# IdeaVim-EasyMotion

[![][jetbrains-team-svg]][jetbrains-team-page]
[![][apache-license-svg]](LICENSE)

Created for [IdeaVim](https://plugins.jetbrains.com/plugin/164-ideavim)
Powered by [AceJump](https://plugins.jetbrains.com/plugin/7086-acejump)

[EasyMotion](https://github.com/easymotion/vim-easymotion) plugin emulation for IdeaVim.

#### Setup

- Install [IdeaVim](https://plugins.jetbrains.com/plugin/164-ideavim),
[AceJump](https://plugins.jetbrains.com/plugin/7086-acejump) and
[IdeaVim-EasyMotion](https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion/) plugins.
- Add `set easymotion` to your `~/.ideavimrc`

#### How does it work?

Please check the docs of the [vim-easymotion](https://github.com/easymotion/vim-easymotion#usage-example-for-the-base-features) plugin.

Keep in mind that labels should be typed in lower case.

#### What are the features of this new plugin and how does this plugin differ from AceJump?

- With IdeaVim-EasyMotion, you get good integration with IdeaVim.
- Now you can use EasyMotion commands as an argument for `d`, `c`, or any other command that takes motion as an argument.
- Use your existing EasyMotion mappings or create new mappings that will work both in Vim and IdeaVim.
- If you use the `iskeyword` option, check out the ` (easymotion-iskeyword-*)` commands.
- There is now an additional set of commands. Use `(easymotion-e)` to jump to a word end, or `(easymotion-sl)` for jumping within the line. See the [full list of supported commands](#supported-commands).

#### Keep typing

You don’t have to limit yourself to using only one char of the target word. Type as many chars as you need.

#### AceJump mapping

For it to work properly, the mappings of IdeaVim-EasyMotion should be
executed instead of AceJump mappings. This plugin maps the shortcuts
of AceJump to the corresponding actions in IdeaVim-EasyMotion to
improve the experience of AceJump users. You can disable this feature by
adding `let g:EasyMotion_override_acejump = 0` to your `~/.ideavimrc`.

An additional feature of this plugin: AceJump jumps will be added to IdeaVim jump list (no need for `set easymotion`).

#### `mapleader` mapping

If you want to change your leader key, please make sure the `mapleader` command appears before the `set easymotion` command in your `~/.ideavimrc`:
```
let mapleader=","
set easymotion
```

#### Supported options:

- `g:EasyMotion_re_anywhere` - Regex for `(easymotion-jumptoanywhere)`.
- `g:EasyMotion_re_line_anywhere` - Regex for `(easymotion-lineanywhere)`.
- `g:EasyMotion_do_mapping` - Set this option to 0 if you want to disable the default mappings.
- `g:EasyMotion_startofline` - The default behavior of the |j| and |k| is to move your cursor to the
start of the line. Set this option to 0 to force the cursor to stay in
the same column.

#### Supported commands:
80 of the original 87 vim-easymotion commands are supported.
[Here](https://github.com/easymotion/vim-easymotion/blob/master/doc/easymotion.txt) you can get
the description of each `` command.

> - `` means that you have to prefix the command with ``.
So, type `w` to execute `w` command.
> - The default `` key is `\`. Use `\\w` to perform word motion if you don't have any overrides.
> - You can change the default prefix using mapping to `(easymotion-prefix)`.
E.g. use `map (easymotion-prefix)` to change the prefix to a single leader - `\w`.
>
```

Default Mapping | command |
-----------------------------------------------------------------
f{char} | (easymotion-f) | mapped to fn
F{char} | (easymotion-F) | mapped to Fn
t{char} | (easymotion-t) | mapped to tn
T{char} | (easymotion-T) | mapped to Tn

w | (easymotion-w) |
W | (easymotion-W) |
b | (easymotion-b) |
B | (easymotion-B) |
e | (easymotion-e) |
E | (easymotion-E) |
ge | (easymotion-ge |
gE | (easymotion-gE |
j | (easymotion-j) |
k | (easymotion-k) |
n | (easymotion-n) |
N | (easymotion-N) |
s | (easymotion-s) | mapped to sn

More Mapping Table | Note
----------------------------------|----------------------
(easymotion-bd-f) |
(easymotion-bd-t) | mapped to bd-tn
(easymotion-bd-w) |
(easymotion-bd-W) |
(easymotion-bd-e) |
(easymotion-bd-E) |
(easymotion-bd-jk) |
(easymotion-bd-n) |
(easymotion-jumptoanywhere) |

(easymotion-repeat) | UNSUPPORTED
(easymotion-next) | UNSUPPORTED
(easymotion-prev) | UNSUPPORTED

(easymotion-sol-j) |
(easymotion-sol-k) |
(easymotion-eol-j) |
(easymotion-eol-k) |
(easymotion-iskeyword-w) |
(easymotion-iskeyword-b) |
(easymotion-iskeyword-bd-w) |
(easymotion-iskeyword-e) |
(easymotion-iskeyword-ge) |
(easymotion-iskeyword-bd-e) |
(easymotion-vim-n) |
(easymotion-vim-N) |

Within Line Motion | Note
----------------------------------|---------------------------------
(easymotion-sl) | mapped to sln
(easymotion-fl) | mapped to fln
(easymotion-Fl) | mapped to Fln
(easymotion-bd-fl) | mapped to sln
(easymotion-tl) | mapped to tln
(easymotion-Tl) | mapped to Tln
(easymotion-bd-tl) | mapped to bd-tln

(easymotion-wl) |
(easymotion-bl) |
(easymotion-bd-wl) |
(easymotion-el) |
(easymotion-gel) |
(easymotion-bd-el) |
(easymotion-lineforward) |
(easymotion-linebackward) |
(easymotion-lineanywhere) |

Multi Input Find Motion | Note
----------------------------------|---------------------------------
(easymotion-s2) | mapped to sn
(easymotion-f2) | mapped to fn
(easymotion-F2) | mapped to Fn
(easymotion-bd-f2) | mapped to sn
(easymotion-t2) | mapped to tn
(easymotion-T2) | mapped to Tn
(easymotion-bd-t2) | mapped to bd-tn
|
(easymotion-sl2) | mapped to sln
(easymotion-fl2) | mapped to fln
(easymotion-Fl2) | mapped to Fln
(easymotion-tl2) | mapped to tln
(easymotion-Tl2) | mapped to Tl2
|
(easymotion-sn) |
(easymotion-fn) |
(easymotion-Fn) |
(easymotion-bd-fn) |
(easymotion-tn) |
(easymotion-Tn) |
(easymotion-bd-tn) |
|
(easymotion-sln) |
(easymotion-fln) |
(easymotion-Fln) |
(easymotion-bd-fln) |
(easymotion-tln) |
(easymotion-Tln) |
(easymotion-bd-tln) |

Over Window Motion | Note
----------------------------------|---------------------------------
(easymotion-overwin-f) | UNSUPPORTED
(easymotion-overwin-f2) | UNSUPPORTED
(easymotion-overwin-line) | UNSUPPORTED
(easymotion-overwin-w) | UNSUPPORTED

Doesn't exist in EasyMotion | Description
----------------------------------|----------------------------------
(acejump-linemarks) | Analog of Line Motion in AceJump
```

[jetbrains-team-page]: https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub
[jetbrains-team-svg]: http://jb.gg/badges/team.svg
[plugin-download-svg]: https://img.shields.io/jetbrains/plugin/d/7086-acejump.svg
[apache-license-svg]: https://img.shields.io/badge/License-GPL%20v3-blue.svg