An open API service indexing awesome lists of open source software.

https://github.com/cufarvid/lazy-idea

LazyVim key mappings for JetBrains IDEs. Making IdeaVim feel like home.
https://github.com/cufarvid/lazy-idea

ideavim jetbrains keymaps lazyvim neovim vim vim-keybindings

Last synced: 6 months ago
JSON representation

LazyVim key mappings for JetBrains IDEs. Making IdeaVim feel like home.

Awesome Lists containing this project

README

          

# lazy-idea

[LazyVim](https://github.com/LazyVim/LazyVim) key mappings for JetBrains IDEs. Making [IdeaVim](https://github.com/JetBrains/ideavim) feel like home.

## Prerequisites

Required plugins from the [JetBrains Marketplace](https://plugins.jetbrains.com):

- [IdeaVim](https://github.com/JetBrains/ideavim)
- [Which-Key](https://github.com/TheBlob42/idea-which-key)
- [EasyMotion](https://github.com/AlexPl292/IdeaVim-EasyMotion)

## Installation

1. Download the `.ideavimrc` file from this repository to your home directory:

```bash
# Unix/Linux/macOS
curl -Lo ~/.ideavimrc https://raw.githubusercontent.com/cufarvid/lazy-idea/refs/heads/main/.ideavimrc

# Windows
Invoke-WebRequest -OutFile "$HOME/.ideavimrc" -Uri https://raw.githubusercontent.com/cufarvid/lazy-idea/refs/heads/main/.ideavimrc
```

2. Restart your JetBrains IDE

## Configuration Notes

### TODO Navigation

The TODO navigation keymaps (`st`, `xt`) use IDEA's built-in TODO tool window.

**Note:** To support additional patterns beyond `TODO` (like `FIX` or `PERF`), configure them in `Settings → Editor → TODO → Patterns`.

## Development

### Notes and Caveats

- Not all mappings have been thoroughly tested
- Potential ctrl key conflicts: 6, b, e, f, h, j, k, l, o, r, s, v, w
- See [IdeaVim sethandler documentation](https://github.com/JetBrains/ideavim/blob/master/doc/sethandler.md)

### Roadmap

- [x] Improve Todo comments functionality
- [ ] Add Which-Key labels for all mappings
- [ ] Test all mappings side-by-side with LazyVim
- [ ] Compare Which-Key popups with LazyVim

### Future Considerations

Potential integrations with LazyVim features:

- Flash
- Noice
- Trouble
- Mini.diff
- Harpoon
- Outline
- Markdown Preview

## Issues and Limitations

- Local leader key mappings are not currently supported by IdeaVim
- Some LazyVim features don't have direct equivalents in JetBrains IDEs

## Credits

- [Original gist](https://gist.github.com/mikeslattery/d2f2562e5bbaa7ef036cf9f5a13deff5) by [@mikeslattery](https://github.com/mikeslattery)
- [LazyVim](https://github.com/LazyVim/LazyVim) by [@folke](https://github.com/folke)