Some patches to make the IntelliJ Emacs+ plugin work correctly with recent versions of IntelliJ.
This is a repackaged version of the original Mulgasoft Emacs+ plugin for IntelliJ. Unfortunately the project was never open sourced and was effectively abandoned in a state which made the plugin unusable on recent IntelliJ versions. I've repackaged the original jar and have made some minimal fixes to keep the plugin working. I made several attempts to contact the original author offering to take over maintenance of the plugin but never received a reply. I'm releasing this under the original licence which seems to permit this.
I don't actually use this myself but many of my users do. So if something doesn't work, please file an issue and I'll do what I can.
Here are the changes from the original website, preserved for posterity.
Enhance C-s
and C-r
to support these additional sub-commands on the search string. When using the replace versions
(M-%
and C-M-%
), ENTER
is a no-op in the search field, and executes a single replace when entered in the replace
field (unless in multiline mode):
M-p
- Search for the previous item in the search historyM-n
- Search for the next item in the search historyC-w
- Yank the next word from the buffer onto end of the search string and search for resultC-y
- Yank the rest of line onto the end of the search string and search for resultM-y
- Yank the last killed text onto end of the search string and search for resultC-M-y
- Yank one character from current position and search for resultC-M-w
- Delete one character from the end of the search string and search for resultENTER
- Exit, leaving the caret at the most recent found textC-g
- While searching or when search has failed cancels the input back to what has been found successfully.C-g
- When search is successful aborts and moves back to the starting point.M-c
- Toggle case sensitivityM-m
- Toggle multi-line searchM-w
- Toggle word searchM-r
- Toggle regexp searchRegexp I-Search forward (C-M-s
) - Incremental search forward for a regular expression.
Regexp I-Search backward (C-M-r
) - Incremental search backward for a regular expression.
NB: These commands just enter the search with the Regexp option already selected
Extends the default Kill Ring behavior in IntelliJ IDEA so that the following bindings act as expected:
C-y
): Insert the last stretch of killed textM-y
) or (ESC-y
): Replace a just-yanked stretch of killed text with a different stretchC-M-w
): If the following command is a kill command, append its text to the last killed text
instead of starting a new entry on the kill ringNB: When Kill Ring entry has been constructed with multiple carets, the yank operation will convert it to a single string before inserting the text into the buffer. This may change in the future to support multiple text for multiple carets on yank.
M-;
): Call the comment command you want (Do what I mean)M-n
): Go to/Insert comment on the following line. M-p
): Go to/Insert comment on the previous line.C-M-j
): Break line at point and indent, continuing comment.C-u M-;
): Kill comment on the current lineC-c C-c
)NB: The comment commands rely on a file's PSI implementation.
M-f
): Move forward one word (providing the expected Emacs behavior).M-b
): Move backward one word (providing the expected Emacs behavior).C-t
): Interchange characters around point
M-t
): Interchange words around point, leaving point at end of them.C-x C-t
): Exchange current line and previous line, leaving point after both.C-x C-o
):
M-\
): Delete all tabs and spaces from around the cursorM-SPACE
): Delete all spaces and tabs around the cursor, leaving one spaceM-m
): Position point at the first nonblank character on the lineM-^
): Join two lines cleanlyC-l
): Provide a recenter to move current line to window center, top, and bottom, successively.
M-c
): Capitalize the following wordM-l
): Lower case the selected region or the following wordM-u
): Upper case the selected region or the following wordC-x =
): Print information on cursor positionC-x C-e
): Popup menu of applicable vcs diff commandsC-x v
): Popup menu of applicable vcs commandsC-x b
): Use Recent Files switcher panel (that supports searching) and enhance to support navigation keys (when not searching).C-x 1
): If in split window(s), unsplit all, else (toggle) maximize within frame
M-i
):C-M-u
):M-s
):M-g g
, M-g M-g
)C-M-k
): Temporary binding for kill-sexpC-M-f
): Temporary binding for forward-sexpC-M-b
): Temporary binding for backward-sexpM-g n
, M-g M-n
): Navigate to next highlighted errorM-.
):C-u M-.
):C-x C-v
):C-m
):C-x <SPACE>
): Toggle a breakpoint on the source line that point is on.C-c C-s
): Execute a single line of code. If the line contains a function call, execution stops after entering the called function.C-c C-n
): Execute a single line of code, stepping across entire function callsC-c C-r
): Continue execution without specifying any stopping point.C-c C-u
): Continue execution to the line point is onC-c C-t
): Toggle temporary line breakpoint at caret.C-c C-p
): Evaluate expression.