[[file:docs/preview.gif]]
For instance, ~SPC f f~ in Spacemacs opens a file, so it makes sense to map it to the "GotoFile" IntelliJ action.
IdeaVim parses the [[https://github.com/JetBrains/ideavim/blob/master/src/com/maddyhome/idea/vim/package-info.java][most common]] vim commands, together with the custom =:action {name}= command, used to execute arbitrary IDE actions. To list all IDE actions use the command =:actionlist [pattern]=.
Intellimacs provides different files, which can be included individually in your own =.ideavimrc=, in order to get only the functionalities you want.
Furthermore, Intellimacs provides some of the features of Spacemacs hybrid mode, which may be enabled by sourcing the file =~/.intellimacs/hybrid.vim=.
Read [[file:docs/KEYBINDINGS.org][KEYBINDINGS.org]] to see all 200+ available key bindings.
Installation
git clone https://github.com/MarcoIeni/intellimacs ~/.intellimacs
source ~/.intellimacs/spacemacs.vim
" (Optional) Enable other Intellimacs modules source ~/.intellimacs/extra.vim source ~/.intellimacs/major.vim source ~/.intellimacs/hybrid.vim
" (Optional) Enable which-key plugin source ~/.intellimacs/which-key.vim
" (Optional) My own vim commands nnoremap Y y$
" (Optional) Comma for major mode
nmap ,
" (Optional) Add/edit actions
nnoremap
Update In order to update run =git pull= inside the intellimacs directory.
Read [[file:docs/CHANGELOG.org][CHANGELOG.org]] to see what changed.
Suggested plugins [[file:docs/PLUGINS.org][PLUGINS.org]] contains a list of useful plugins that help to replicate the Spacemacs experience.
Tips
** Go back to code
The key bindings work only when you are inside the code.
For example, if you are inside the project window they don't work.
Press ~
** Scroll menus without arrow keys In order to scroll menus without using arrow keys, press ~SPC f e d~ to go to IDE's settings and set a custom shortcut for the actions =Down= and =Up= in the menu =Keymap -> Editor Actions=. For example, you can bind them respectively to =Ctrl + j= and =Ctrl + k=. If you have some conflicts, search the editor action the key is assigned to, right click and remove the binding.
** Open a file in Emacs with keyboard shortcut In order to open a file in Emacs with a keyboard shortcut follow [[https://www.jetbrains.com/help/idea/using-emacs-as-an-external-editor.html][this]] guide.
Resources
[[https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf][Intellij default keymap]]
[[https://www.jetbrains.com/help/idea/sharing-your-ide-settings.html#settings-repository][Share IDE settings]]
Contributions Intellimacs needs you to keep it up to date and propose great and useful key bindings.
Before contributing, be sure to read [[file:docs/CONTRIBUTING.org][CONTRIBUTING.org]] first!
Related projects
[[https://github.com/MarcoIeni/spaceclipse][Spaceclipse]] - Spacemacs' like key bindings for Eclipse
[[https://github.com/SpaceVim/SpaceVim][SpaceVim]] - A community-driven modular vim distribution
[[https://github.com/VSpaceCode/VSpaceCode][VSpaceCode]] - Spacemacs' like key bindings for Visual Studio Code (thanks for the inspiration)
Related projects (No Spacemacs keys)
[[https://glimpse.ieni.dev][Glimpse]] - Mnemonic key bindings for VSCode commands