IdeaVim Plugins -------------------- IdeaVim plugins work like the original Vim plugins. If you want to turn any of them on, you have to enable it via this command in your `~/.ideavimrc`: ``` Plug '' ``` If you reuse your existing `.vimrc` file using `source ~/.vimrc`, IdeaVim can parse and enable plugins that are defined using [vim-plug](https://github.com/junegunn/vim-plug) or [vundle](https://github.com/VundleVim/Vundle.vim). No additional set commands in `~/.ideavimrc` are required. If you'd like to disable some plugin that's enabled in `.vimrc`, you can use `set no` in `~/.ideavimrc`. E.g. `set nosurround`. Available plugins:

easymotion

Original plugin: [vim-easymotion](https://github.com/easymotion/vim-easymotion). ### Setup: - Install [IdeaVim-EasyMotion](https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion/) and [AceJump](https://plugins.jetbrains.com/plugin/7086-acejump/) plugins. - Add the following command to `~/.ideavimrc`: `Plug 'easymotion/vim-easymotion'`
Alternative syntax Plugin 'easymotion/vim-easymotion'
Plug 'https://github.com/easymotion/vim-easymotion'
Plug 'vim-easymotion'
set easymotion
### Instructions All commands with the mappings are supported. See the [full list of supported commands](https://github.com/AlexPl292/IdeaVim-EasyMotion#supported-commands).

sneak

icon By [Mikhail Levchenko](https://github.com/Mishkun) Original repository with the plugin: https://github.com/Mishkun/ideavim-sneak Original plugin: [vim-sneak](https://github.com/justinmk/vim-sneak). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'justinmk/vim-sneak'` ### Instructions * Type `s` and two chars to start sneaking in forward direction * Type `S` and two chars to start sneaking in backward direction * Type `;` or `,` to proceed with sneaking just as if you were using `f` or `t` commands

NERDTree

Original plugin: [NERDTree](https://github.com/preservim/nerdtree). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'preservim/nerdtree'`
Alternative syntax Plugin 'preservim/nerdtree'
Plug 'https://github.com/preservim/nerdtree'
Plug 'nerdtree'
set NERDTree
### Instructions [See here](NERDTree-support.md).

surround

Original plugin: [vim-surround](https://github.com/tpope/vim-surround). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'tpope/vim-surround'`
Alternative syntax Plugin 'tpope/vim-surround'
Plug 'https://www.vim.org/scripts/script.php?script_id=1697'
Plug 'vim-surround'
set surround
### Instructions https://github.com/tpope/vim-surround/blob/master/doc/surround.txt

multiple-cursors

Original plugin: [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'terryma/vim-multiple-cursors'`
Alternative syntax Plugin 'terryma/vim-multiple-cursors'
Plug 'https://github.com/terryma/vim-multiple-cursors'
Plug 'vim-multiple-cursors'
set multiple-cursors
### Instructions https://github.com/terryma/vim-multiple-cursors/blob/master/doc/multiple_cursors.txt

commentary

By [Daniel Leong](https://github.com/dhleong) Original plugin: [commentary.vim](https://github.com/tpope/vim-commentary). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'tpope/vim-commentary'`
Alternative syntax Plugin 'tpope/vim-commentary'
Plug 'https://github.com/tpope/vim-commentary'
Plug 'vim-commentary'
Plug 'tcomment_vim'
set commentary
### Instructions https://github.com/tpope/vim-commentary/blob/master/doc/commentary.txt

ReplaceWithRegister

By [igrekster](https://github.com/igrekster) Original plugin: [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'vim-scripts/ReplaceWithRegister'`
Alternative syntax Plugin 'vim-scripts/ReplaceWithRegister'
Plug 'ReplaceWithRegister'
Plug 'https://github.com/inkarkat/vim-ReplaceWithRegister'
Plug 'inkarkat/vim-ReplaceWithRegister'
Plug 'vim-ReplaceWithRegister'
Plug 'https://www.vim.org/scripts/script.php?script_id=2703'
set ReplaceWithRegister
### Instructions https://github.com/vim-scripts/ReplaceWithRegister/blob/master/doc/ReplaceWithRegister.txt

argtextobj

Original plugin: [argtextobj.vim](https://www.vim.org/scripts/script.php?script_id=2699). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'vim-scripts/argtextobj.vim'`
Alternative syntax Plugin 'vim-scripts/argtextobj.vim'
Plug 'https://github.com/vim-scripts/argtextobj.vim'
Plug 'argtextobj.vim'
Plug 'https://www.vim.org/scripts/script.php?script_id=2699'
set argtextobj
### Instructions By default, only the arguments inside parenthesis are considered. To extend the functionality to other types of brackets, set `g:argtextobj_pairs` variable to a comma-separated list of colon-separated pairs (same as VIM's `matchpairs` option), like `let g:argtextobj_pairs="(:),{:},<:>"`. The order of pairs matters when handling symbols that can also be operators: `func(x << 5, 20) >> 17`. To handle this syntax parenthesis, must come before angle brackets in the list. https://www.vim.org/scripts/script.php?script_id=2699

exchange

By [fan-tom](https://github.com/fan-tom) Original plugin: [vim-exchange](https://github.com/tommcdo/vim-exchange). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'tommcdo/vim-exchange'`
Alternative syntax Plugin 'tommcdo/vim-exchange'
Plug 'https://github.com/tommcdo/vim-exchange'
Plug 'vim-exchange'
set exchange
### Instructions https://github.com/tommcdo/vim-exchange/blob/master/doc/exchange.txt

textobj-entire

By [Alexandre Grison](https://github.com/agrison) Original plugin: [vim-textobj-entire](https://github.com/kana/vim-textobj-entire). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'kana/vim-textobj-entire'`
Alternative syntax Plugin 'kana/vim-textobj-entire'
Plug 'vim-textobj-entire'
Plug 'https://www.vim.org/scripts/script.php?script_id=2610'
set textobj-entire
### Instructions https://github.com/kana/vim-textobj-entire/blob/master/doc/textobj-entire.txt

highlightedyank

By [KostkaBrukowa](https://github.com/KostkaBrukowa) Original plugin: [vim-highlightedyank](https://github.com/machakann/vim-highlightedyank). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'machakann/vim-highlightedyank'`
Alternative syntax Plugin 'machakann/vim-highlightedyank'
Plug 'https://github.com/machakann/vim-highlightedyank'
Plug 'vim-highlightedyank'
set highlightedyank
### Instructions If you want to optimize highlight duration, assign a time in milliseconds: `let g:highlightedyank_highlight_duration = "1000"` A negative number makes the highlight persistent. If you want to change background color of highlight you can provide the rgba of the color you want e.g. `let g:highlightedyank_highlight_color = "rgba(160, 160, 160, 155)"` https://github.com/machakann/vim-highlightedyank/blob/master/doc/highlightedyank.txt

vim-paragraph-motion

Original plugin: [vim-paragraph-motion](https://github.com/dbakker/vim-paragraph-motion). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'dbakker/vim-paragraph-motion'`
Alternative syntax Plugin 'dbakker/vim-paragraph-motion'
Plug 'https://github.com/dbakker/vim-paragraph-motion'
Plug 'vim-paragraph-motion'
Plug 'https://github.com/vim-scripts/Improved-paragraph-motion'
Plug 'vim-scripts/Improved-paragraph-motion'
Plug 'Improved-paragraph-motion'
set vim-paragraph-motion
### Instructions https://github.com/dbakker/vim-paragraph-motion#vim-paragraph-motion

vim-indent-object

By [Shrikant Sharat Kandula](https://github.com/sharat87) Original plugin: [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object). ### Setup: - Add the following command to `~/.ideavimrc`: `Plug 'michaeljsmith/vim-indent-object'`
Alternative syntax Plugin 'michaeljsmith/vim-indent-object'
Plug 'https://github.com/michaeljsmith/vim-indent-object'
Plug 'vim-indent-object'
set textobj-indent
### Instructions https://github.com/michaeljsmith/vim-indent-object/blob/master/doc/indent-object.txt

matchit.vim

By [Martin Yzeiri](https://github.com/myzeiri) Original plugin: [matchit.vim](https://github.com/chrisbra/matchit). ### Setup: - Add the following command to `~/.ideavimrc`: `packadd matchit`
Alternative syntax Plug 'vim-matchit'
Plug 'chrisbra/matchit'
set matchit
### Instructions https://github.com/adelarsq/vim-matchit/blob/master/doc/matchit.txt

IdeaVim-Quickscope

Original plugin: [quick-scope](https://github.com/unblevable/quick-scope). ### Setup: - Install [IdeaVim-Quickscope](https://plugins.jetbrains.com/plugin/19417-ideavim-quickscope) plugin. - Add the following command to `~/.ideavimrc`: `set quickscope` ### Instructions https://plugins.jetbrains.com/plugin/19417-ideavim-quickscope

Which-Key

Original plugin: [vim-which-key](https://github.com/liuchengxu/vim-which-key). ### Setup: - Install [Which-Key](https://plugins.jetbrains.com/plugin/15976-which-key) plugin. - Add the following command to `~/.ideavimrc`: `set which-key` ### Instructions https://github.com/TheBlob42/idea-which-key?tab=readme-ov-file#installation