GitHub - MarcoIeni/intellimacs: Spacemacs' like key bindings for Intelli...
source link: https://github.com/MarcoIeni/intellimacs
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.org
Intellimacs
Presentation
This project tries to mimic Spacemacs key bindings in IDEs based on the IntelliJ platform, i.e. IntelliJ IDEA, PyCharm, CLion, PhpStorm, WebStorm, RubyMine, AppCode, DataGrip, GoLand, Rider, Cursive, and Android Studio.
For instance, SPC f f
in Spacemacs opens a file, so it makes sense to map it
to the “GotoFile” IntelliJ action.
How it works
This project can be seen as a set of configuration files for the IdeaVim plugin,
which enables vim emulation inside IntelliJ platform.
~/.ideavimrc
is the file where IdeaVim lets you add Vim initialization
commands, i.e. this file is like ~/.vimrc
for vim.
IdeaVim parses the 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.
Key bindings
Intellimacs is composed of three modules:
spacemacsContains Spacemacs settings and key bindings that can be replicated with a similar behaviour in the IntelliJ platform. extraContains settings and key bindings not present in Spacemacs, but that may be useful in the IntelliJ platform. majorContains key bindings that start withSPC m
, that may
or may not be present in some Spacemacs major mode.
Furthermore, Intellimacs provides some of the features of Spacemacs hybrid
mode, which may be enabled by sourcing the file ~/.intellimacs/hybrid.vim
.
Read KEYBINDINGS.org to see all 200+ available key bindings.
Installation
- Install IdeaVim by using the IDE’s plugin manager (File -> Settings -> Plugins -> Search for IdeaVim -> Install IdeaVim).
- Clone this repository in your home directory:
git clone https://github.com/MarcoIeni/intellimacs ~/.intellimacs
- In your home directory, create the file
.ideavimrc
and edit it in order to include the modules you want by sourcing the relative source files. In the following there is an example of.ideavimrc
file that includes all the functionalities offered by Intellimacs. In this file you can also include your own vim commands." Selected Intellimacs modules source ~/.intellimacs/spacemacs.vim source ~/.intellimacs/extra.vim source ~/.intellimacs/major.vim source ~/.intellimacs/hybrid.vim " My own vim commands nnoremap Y y$ " Add/edit actions nnoremap <leader>gl :action Vcs.Show.Log<CR> vnoremap <leader>gl :action Vcs.Show.Log<CR>
- (optional) source your vimrc file by adding the line
source ~/.vimrc
in.ideavimrc
(you may break something).
Update
In order to update run git pull
inside the intellimacs directory.
Read CHANGELOG.org to see what changed.
Suggested plugins
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 <Esc>
to focus the last visited code window and you will be able to
use spacemacs key bindings again.
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 this guide.
Resources
Contributions
Intellimacs needs you to keep it up to date and propose great and useful key bindings.
Before contributing, be sure to read CONTRIBUTING.org first!
Related projects
- Spaceclipse - Spacemacs’ like key bindings for Eclipse
- VSpaceCode - Spacemacs’ like key bindings for Visual Studio Code (thanks for the inspiration)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK