marcoieni / intellimacs Goto Github PK
View Code? Open in Web Editor NEWSpacemacs' like key bindings for IntelliJ platform.
License: MIT License
Spacemacs' like key bindings for IntelliJ platform.
License: MIT License
In Spacemacs, pressing <leader> X
leads to a small tooltip window popping up and showing you what keys you might be able to press and what they might do. Is there such a thing here?
P.s do you know how this works (if at all) with KeyPromoterX?
BTW, Thanks for the awesome job on this! Having 1 set of efficient keybindings across my editor was something I sorely missed when I moved away from Spacemacs (now using Clion, Pycharm and IntelliJ)
All the actions prefixed with VimWindow
do not work anymore.
I fixed almost all the actions under SPC w
by replacing VimWindow
actions with vim keys, for example VimWindowDown
was replaced with <C-w>j
.
The problem is with SPC w S
and SPC w V
.
When I replace them with the following code it doesn't work.
" Split window below and focus
nnoremap <leader>wS :action SplitHorizontally<CR><C-w>j
vnoremap <leader>wS <Esc>:action SplitHorizontally<CR><C-w>j
" Split window right and focus
nnoremap <leader>wV :action SplitVertically<CR><C-w>l
vnoremap <leader>wV <Esc>:action SplitVertically<CR><C-w>l
When opening multiple windows, it would be helpful to be able to focus them via keybinds similar to spacemacs. Space + 1 should focus the first window, Space + 2 should focus the second window, Space + 0 should focus the file tree browser, etc
Observed behavior
Pressing the key combination SPC -> '
to open a terminal causes a new terminal to be opened everytime.
Desired behavior
Should reuse the last open terminal.
Proposed solution:
Change SPC -> '
from executing the ideavim action Terminal.OpenInTerminal
to instead executing ideavim action ActivateTerminalToolWindow
Hi,
i got used to comma to access major mode key bindings. I saw no other way just to copy your files and hardcode it.
The question, do you know any other convinient methods to do so? I am not a vim specialist. Or i can write a script which generate additional package based on major mode files provided.
You can't use SPC f f when no files are open. It breaks the user flow a little
Hello! I'm really enjoying this project and depend on it for all my kotlin dev. However, I am increasingly missing the structural editing slurp and barf keys from spacemacs.
I was looking around the intellij plugin ecosystem and it looks like the Cursive is the best bet there -- but structural editing is just a small part of that plugin being for clojure language support, which seems like more than I want. And I'm not sure how to map the keys to my preferred spacemacs bindings.
Is there any chance of this possibly eventually making it into intellimacs, or is that beyond the scope of this project? Thanks!
I don't have experience with IntelliJ plugin development, so I would like to discuss with you if it is possible to implement something like which-key:
That is, when you press a key, all the possible key bindings are showed.
In order to implement this, a which-key
IntelliJ plugin should be developed.
This plugin should be able to do the following things:
The plugin shall be able to read all the key bindings and the associated actions defined by intellimacs.
I think that it can do it in two ways:
*.vim
files.
*.vim
kotlin/java parser library?The plugin shall be able to read the keyboard input in order to dinamically show available key bindings.
If which-key plugin doesn't interfere with IdeaVim, it only has to show the action names.
hi first of all, thanks for the shortcuts. As a spacemacs
lover, I really like the idea of using that in intellij.
Anyways, I have been trying to make it work and could not make it recognize the bindings. After a lot of trial and error, it seems that switching imports like:
source ./intelli-space/spacemacs/settings.vim
to
source ~/intelli-space/spacemacs/settings.vim
fixed my issue. I'm not sure if this a problem with my own setup, but I think it is pretty vanilla, so I'm not sure if this is a general fix or if it is only for me
Hey, thanks for working on this. It's looking great :)
I was wondering if you could provide a different method of installing the vim configs in future versions. I'm switching between different machines quite frequently and therefore have to keep my .ideavimrc file in sync. That's why it would be awesome to be able to have one big file that I can just add to the end of my .ideavimrc file or something like that. Bundling this as a plugin that can just be installed from within the IDE would of course be the best way, but that's probably not really feasible, is it?
Anyways, keep up the great work ๐
Hi there, firstly thank you for making this plugin it's amazing. I'm extremely new to Jetbrains and specifically Rubymine. I'm trying it out after being on Spacemacs for some years and just got tired of its endless struggles.
As I learn the keybindings and how to do remappings and navigation and such, I thought I might suggest that we change the visual mode remap when using spc + ]
and spc +[
to EditorCodeBlockEndWithSelection
and its start equivalent. This seems to map more closely with at least my configuration in spacemacs which I think is quite standard, that when in visual mode and jumping to matching braces, visual highlights the selection.
Your thoughts?
" Go to code block start with selection
" (I'm not sure what this line will do so I've left it commented out) let g:WhichKeyDesc_Leader_GotoCodeBlockStartSelection = "<leader>[ goto-code-block-start with selection"
vnoremap <leader>[ <Esc>:action EditorCodeBlockStartWithSelection<CR>
" Go to code block end with selection
" (I'm not sure what this line will do so I've left it commented out) let g:WhichKeyDesc_Leader_GotoCodeBlockEndSelection = "<leader>] goto-code-block-end with selection"
vnoremap <leader>] <Esc>:action EditorCodeBlockEndWithSelection<CR>
Hi, Thanks a lot for creating intellimacs
. It had made life so easy on IntelliJ Idea
and Android Studio
as an emacs user.
This is a nit pick. The space + tab
keybinding, where space
is leader
key, does not appear in which-key. That is not an issue. The issue is that when I press space + tab
fast, it does move focus to last-buffer, though which-key keeps showing at the bottom of the frame. It does not happen with other keybindings. This is a nit pick as it only makes me pause a bit while moving to last-buffer which I do a lot, but not a functional issue.
My config: MacBook with M1 chip
Please feel free to close the issue if there is no simple quick-fix.
Thanks!
I saw your new project "Glimpse" for vs code. Are you planning to create one for intellij as well? I like the "why"(your reasoning behind glimpse). Do you think it makes sense to shortcut sequences for intellij as well?
And I also have a question regarding uppercase letters that you use in the sequences... Generally uppercase letters are harder to type compared to lowercase, because they require holding or tapping shift key. E.g. lazygit uses uppercase keys for commands that are a more dangerous or could cause a negative effect(like git push). Do you try to do the same? I think often used commands should consist of lowercase letters... What do you think about it? I know that main point of these sequences is mnemonics and not necessarily speed, because speed will come over time, but still uppercase is extra effort compared to lowercase.
IdeaVim update v2.8.0, after installation, SPC stops working as a leader key and behaves just as a regular space button. Reverting plugin to 2.7.5 fixes the problem
Which Key descriptions aren't showing up in android-studio
the only things I have enabled in .ideavimrc are spacemacs
and which-key
Hi,
IntelliJ IDEA 2021.2.2-1 (Community Edition)
It's work,But no popup anything?I can use shortcut,but no popup?
hay I'm trying to get this to work on Rider on windows i have wsl installed but my ideavimrc is located on my windows partition what do i need to change to make this work
.ideavimrc
(the issue can be reproduced with the default one, but the rest doesn't make a difference):
source ~/.intellimacs/spacemacs.vim
V
, j
, j
, j
), and press Esc
to return to normal mode.p
).This is annoying when attempting to replace one piece of text with another. Usually I do it like this:
This no longer works, since on step 2 I lose the yanked data.
This seems to be an Intellimacs bug because with empty .ideavimrc
selection works as expected.
We are working on the branch which-key in order to add which-key support to intellimacs.
We have to assign to each key binding the name to be showed in idea-which-key.
You can see the current status of the work in PR #15. This PR is automatically updated once PR against the which-key
branch are merged.
In order to contribute, leave a comment to tell on which module you want to work and then open a PR against the which-key
branch where you add the name of the key bindings. For an example, see #16.
As you can see from the examples, modules can be both under spacemacs
and extra
.
updated modules:
If you want to try this follow the instructions of the readme of #15 and do:
cd ~/.intellimacs
git pull
git checkout which-key
P.s. you don't need to be an expert to contribute, you can also edit a file from your browser. Just make sure you are in the which-key branch.
Hey there!
I know you're not working on this any longer, so apologies for bothering you. I'm just curious as the
nnoremap <leader>mgi :action GotoImplementation<CR>
vnoremap <leader>mgi <Esc>:action GotoImplementation<CR>
I'm trying to create custom bindings and I'm having issues. Thank you!
When tool windows are focused they ignore hotkeys that begin with <SPACE>
even though other hotkeys work fine.
https://github.com/MarcoIeni/intellimacs/blob/main/spacemacs/errors.vim#L5 and https://github.com/MarcoIeni/intellimacs/blob/main/spacemacs/errors.vim#L13
Same action bound to 2 bindings; which one would you want to be correct?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.