14 KiB
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 '<plugin-github-reference>'
If you reuse your existing .vimrc
file using source ~/.vimrc
, IdeaVim can parse and enable plugins that are defined
using vim-plug or vundle.
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<extension-name>
in ~/.ideavimrc
. E.g. set nosurround
.
Available plugins:
easymotion
Original plugin: vim-easymotion.
Setup:
- Install IdeaVim-EasyMotion and 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.
sneak
By Mikhail Levchenko
Original repository with the plugin: https://github.com/Mishkun/ideavim-sneak
Original plugin: 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 usingf
ort
commands
NERDTree
Original plugin: 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
surround
Original plugin: 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.
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
At the moment, the default key binds for this plugin do not get mapped correctly in IdeaVim (see VIM-2178). To enable the default key binds, add the following to your .ideavimrc
file...
" Remap multiple-cursors shortcuts to match terryma/vim-multiple-cursors
nmap <C-n> <Plug>NextWholeOccurrence
xmap <C-n> <Plug>NextWholeOccurrence
nmap g<C-n> <Plug>NextOccurrence
xmap g<C-n> <Plug>NextOccurrence
xmap <C-x> <Plug>SkipOccurrence
xmap <C-p> <Plug>RemoveOccurrence
" Note that the default <A-n> and g<A-n> shortcuts don't work on Mac due to dead keys.
" <A-n> is used to enter accented text e.g. ñ
" Feel free to pick your own mappings that are not affected. I like to use <leader>
nmap <leader><C-n> <Plug>AllWholeOccurrences
xmap <leader><C-n> <Plug>AllWholeOccurrences
nmap <leader>g<C-n> <Plug>AllOccurrences
xmap <leader>g<C-n> <Plug>AllOccurrences
commentary
By Daniel Leong
Original plugin: commentary.vim.
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
Original plugin: 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.
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.
exchange
By fan-tom
Original plugin: 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
Original plugin: 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
Original plugin: 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)"
If you want to change text color of highlight you can provide the rgba of the color you want e.g.
let g:highlightedyank_highlight_foreground_color = "rgba(0, 0, 0, 255)"
https://github.com/machakann/vim-highlightedyank/blob/master/doc/highlightedyank.txt
vim-paragraph-motion
Original plugin: 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
Original plugin: 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 Original plugin: matchit.vim.
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.
Setup:
- Install 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.
Setup:
- Install 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
Vim Peekaboo
By Julien Phalip
Original plugin: vim-peekaboo.
Setup
Add set peekaboo
to your ~/.ideavimrc
file, then run :source ~/.ideavimrc
or restart the IDE.
Instructions
FunctionTextObj
By Julien Phalip
Setup
Add set functiontextobj
to your ~/.ideavimrc
file, then run :source ~/.ideavimrc
or restart the IDE.
Instructions
https://plugins.jetbrains.com/plugin/25897-vim-functiontextobj
Switch
By Julien Phalip
Original plugin: switch.vim.
Setup
Add set switch
to your ~/.ideavimrc
file, then run :source ~/.ideavimrc
or restart the IDE.