Compatible with all products except MPS
15 009

Porting some great extensions of emacs to Intellij IDEA. such as AceJump, CopyWithoutSelectAction. And new created EditWithoutSelection (Cut/Move/Replace without selection).


  • C-L 't' 'm' : Basic Word Jump | Type C-L, then type target char (eg. 't') to jump to, then type marker char (eg. 'm') to move caret.
  • C-J 't' 'm' : Basic Char Jump

AceJump, jump to special place

  • C-L ' ' 'm' : Jump to line end or start. | To show marker on line end and line start, type space ' ' as target char
  • C-L ',' 'm' : Jump to symbol key | Show markers on .{}(|`/\;.{}()[]?_=-+'"!@#$%^&*)_=

Copy without selection:

  • C-c w : Copy word
  • C-c s : Copy string
  • C-c l : Copy line
  • C-c b : Copy block between balanced { and }
  • C-c q : Copy quoted, such as abcd in "abcd"
  • C-c a : Copy to line beginning
  • C-c A : Copy to file beginning
  • C-c e : Copy to line end
  • C-c E : Copy to file end
  • C-c p : Copy paragraph
  • C-c g : Copy paragraph group (e.g.: entire function including white lines)
  • C-c u : Copy to paragraph begining
  • C-c d : Copy to paragraph end
  • C-c ' ' (w | s | l | q | a | A | e | E | p | g | u | d | b) : Type one space to cut related area
  • C-c ' ' ' ' (w | s | l | q | a | A | e | E | p | g | u | d | b) : Type two space to select related area

Replace target (word | line | paragraph) with text at current caret:

  • C-i C-w 't' 'm' : replace target word
  • C-i C-s 't' 'm' : replace target string
  • C-i C-l 't' 'm' : replace target line
  • C-i C-b 't' 'm' : replace target block
  • C-i C-q 't' 'm' : replace target quote
  • C-i C-a 't' 'm' : replace target to line begining
  • C-i C-e 't' 'm' : replace target char to line end
  • C-i C-p 't' 'm' : replace target paragraph
  • C-i C-g 't' 'm' : replace target paragraph group
  • C-i C-u 't' 'm' : replace target to paragraph beginning
  • C-i C-d 't' 'm' : replace target to paragraph end

Obtain target (word | line | paragraph), then replace text at current caret:

  • C-o C-w 't' 'm' : obtain target word, then replace current word
  • C-o C-s 't' 'm' : obtain target string, then replace current string
  • C-o C-l 't' 'm' : obtain target line, then replace current line
  • C-o C-b 't' 'm' : obtain target block
  • C-o C-q 't' 'm' : obtain target quote
  • C-o C-a 't' 'm' : obtain target to line beginning
  • C-o C-e 't' 'm' : obtain target char to line end
  • C-o C-p 't' 'm' : obtain target paragraph
  • C-o C-g 't' 'm' : obtain target paragraph group
  • C-o C-u 't' 'm' : obtain target to paragraph beginning
  • C-o C-d 't' 'm' : obtain target to paragraph end

Copy target (word | line | paragraph), then insert text at current caret:

  • C-w C-w 't' 'm' : Copy target word, then insert at current caret
  • C-w C-s 't' 'm' : Copy target string, then insert at current caret
  • C-w C-l 't' 'm' : Copy target line, then insert at current caret
  • C-w C-b 't' 'm' : Copy target block
  • C-w C-q 't' 'm' : Copy target quote
  • C-w C-a 't' 'm' : Copy target to line beginning
  • C-w C-e 't' 'm' : Copy target char to line end
  • C-w C-p 't' 'm' : Copy target paragraph
  • C-w C-g 't' 'm' : Copy target paragraph group
  • C-w C-u 't' 'm' : Copy target to paragraph beginning
  • C-w C-d 't' 'm' : Copy target to paragraph end

Cut target (word | line | paragraph), then insert text at current caret:

  • C-x C-w 't' 'm' : Cut target word, then insert at current caret
  • C-x C-s 't' 'm' : Cut target string, then insert at current caret
  • C-x C-l 't' 'm' : Cut target line, then insert at current caret
  • C-x C-b 't' 'm' : Cut target block
  • C-x C-q 't' 'm' : Cut target quote
  • C-x C-a 't' 'm' : Cut target to line beginning
  • C-x C-e 't' 'm' : Cut target char to line end
  • C-x C-p 't' 'm' : Cut target paragraph
  • C-x C-g 't' 'm' : Cut target paragraph group
  • C-x C-u 't' 'm' : Cut target to paragraph beginning
  • C-x C-d 't' 'm' : Cut target to paragraph end

Delete target (word | line | paragraph...)

  • C-d C-w 't' 'm' : delete target word
  • C-d C-s 't' 'm' : delete target string
  • C-d C-l 't' 'm' : delete target line
  • C-d C-b 't' 'm' : delete target block
  • C-d C-q 't' 'm' : delete target quote
  • C-d C-a 't' 'm' : delete target to line beginning
  • C-d C-e 't' 'm' : delete target char to line end
  • C-d C-p 't' 'm' : delete target paragraph
  • C-d C-g 't' 'm' : delete target paragraph group
  • C-d C-u 't' 'm' : delete target to paragraph beginning
  • C-d C-d 't' 'm' : delete target to paragraph end

Highlight symbol:

  • C-, : hightlight-symbol-prev | Jump to prev occurrence of symbol that around caret
  • C-. : hightlight-symbol-next | Jump to next occurrence of symbol that around caret

Just one space:

  • C-M-Space : Make just one space around caret by Ctrl-Cmd-Space.

Separate AceJump copy,cut,select command:

  • C-i C-c 't' 'm' : Copy jump area
  • | C-i C-c means type C-i then continue type C-c
  • C-i C-x 't' 'm' : Cut jump area
  • C-i C-i 't' 'm' : Select jump area
  • C-i C-f 't' 'm' : Basic Jump alias

Copy and Replace:

  • C-I C-R (w | s | l | q | a | A | e | E | p | g | u | d) 't' 'm' : copy current word/line/paragraph, jump, then replace target word/line/paragraph

Download plugin

Recent change notes

--- fix issue in WebStorm reported by @Centaur.https://github.com/whunmr/emacsIDEAs/issues/18
--- fix wrong width of the jump marker background.
--- fix https://github.com/whunmr/emacsIDEAs/issues/14 overlay and markers in splitted panes not get cleared after jump.
--- Add support for jump/move/copy/cut texts cross Split pane editors.
--- Add `paragraph group' concept, which denotes the `paragraph' including white lines.
Useful when you need copy/cut/move/delete function with white lines inside.
--- fix post selection error, in C-O C-A command.
--- Add plugin settings panel in the Prefereces -> Other Settings -> emacsIDEAs.
to config jump marker char's color, and whether select the moved text.
--- zap-to-char and copy-to-char. Can be done by C-I C-X and C-I C-C
--- compile based on JDK 1.6. to fix error when running in Android Studio 2.1.3.
--- fix wrong selection range issue, after using AceJumpMove.* actions.
--- Add jump and delete target range action. such as delete target paragraph by: C-d C-p.
so do not need: First jump to target place, then delete paragraph by C-c space p.
also apply to other range like (w | s | l | q | a | A | e | E | p | u | d).
--- adjust mark char order to make the two level jump markers generates from easy press chars like 'lkasdfj'.
--- Upgrade the jump more like avy-jump. http://emacsredux.com/blog/2015/07/19/ace-jump-mode-is-dead-long-live-avy/
This also fix issue posted by @jmdodge [AceJump: Show two-letter combos up front], https://github.com/whunmr/emacsIDEAs/issues/3
--- fix wrong selection issue after "Cut target paragraph" command. C-x C-p 't' 'm'
1. C-i C-s 't' 'm': Select jump area ---changed_to----> C-i C-i 't' 'm'
2. Add obtain(copy) remote target(w,l,e,p,b) and replace current(w,l,e,p,b) command:
C-o C-(w | s | l | q | a | e | p | u | d | b) 3. extend C-i C-(w|l|p) to C-I C-(w | s | l | q | a | e | p | u | d | b)
--- Remove support for command: C-L 't' (c, x, p, P, s) 'm'
instead using the command: C-i C-(c,x,s) 't' 'm'
--- Add action to copy current word | line | paragraph, jump, then replace target word/line/paragraph.
C-I C-R (w | s | l | q | a | A | e | E | p | u | d) 't' 'm'
--- Add hightlight-symbol-prev and hightlight-symbol-next
--- Let cut to paragraph end(C-c ' ' d) and cut paragraph (C-c ' ' p) skip ending brackets.
--- Add Jump Word Action, and assigned to C-L. Jump Char Action assigned to C-J.
--- Changed AceJump's keymap to be more intuitive one. such as "C-L C-s" for select jump area.
--- Add copy without selection
--- Add basic AceJump function
C-c means Ctrl-c
@jmcmichael23, Are you using in Windows? if Yes, please down the windows version: https://raw.githubusercontent.com/whunmr/emacsIDEAs/master/emacsideas-windows.jar
I really want to use this plugin but I've tried again to install it, and I can't tell that it does anything for me. It doesn't appear like C-c has any effect - if I hit C-c a, IntelliJ just inserts an 'a', if I hit C-L , it just inserts a space. It appears that emacsIDEAs isn't responding at all to its initiation commands. Am I missing any post-install instructions? I'm using a custom keymap that is a slight variation to the built-in Emacs keymap - do I need to use the built in keymap?
A must-have. Take some time to get used to, but totally worth it.
Hi jmcmichael , I tried this plugin for Intellij IDEA 13 CE on Mac OS X 10.9.1, works fine.
Does this work in Intellij v13? I've installed it, but the key commands do not appear to work at all, and the keystrokes do not appear in the Keymap pane in Preferences.
easy to use just like emacs
Please  sign in  to leave a comment.