Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/AlexPl292/IdeaVim-EasyMotion
- Owner: AlexPl292
- License: gpl-3.0
- Created: 2019-10-03T11:55:19.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-28T12:15:26.000Z (5 months ago)
- Last Synced: 2024-06-28T13:34:11.638Z (5 months ago)
- Topics: acejump, ideavim, ideavim-easymotion, jetbrains, vim
- Language: Kotlin
- Homepage: https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion/
- Size: 590 KB
- Stars: 333
- Watchers: 6
- Forks: 9
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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 Tnw | (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 snMore 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) | UNSUPPORTEDDoesn'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