ideavimrc配置和解读

ideavim配置

ideavim 是jetbrains 官方实现的插件和jetbrain 旗下的平台结合的很紧密,也可以通过设置实现vim 和jetbrains 旗下产品的深度绑定,但是只是实现vim 的部分功能。

无法通过 souce ~/.ideavimrc 来更新配置 必须通过再次打开软件来加载新的配置文件使其生效。

官方仓库

web-storm团队的一些入门介绍

Ideavim 有些插件可以通过官方仓库来安装,但是我看到ideavim 的仓库里这样介绍

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

可以解析一部分vim 插件,插件是通过idea vim 模拟的。不是原生的vim 插件

支持的插件有以下这些

  • vim-easymotion
  • NERDTree
  • vim-surround
  • vim-multiple-cursors
  • vim-commentary
  • argtextobj.vim
  • vim-textobj-entire
  • ReplaceWithRegister
  • vim-exchange
  • vim-highlightedyank
  • vim-paragraph-motion
  • vim-indent-object
  • match.it

通过插件提供的 IdeaVim: track action Ids 来查找ID 两下shift 来查找 可以帮经常使用的快捷键录制下来,制作成常用的暗转

官方演示gif

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177


" 搜索设置
set incsearch
set hlsearch
set ignorecase "搜索时智能匹配大小写
set smartcase
set wrapscan "环形搜索
"关闭搜索高亮
nnoremap <leader>/ :nohl<CR>


"""""""""""""""""""""""""""""""""""""""""""" 通用设置
"语法高亮显示
syntax on
" 不使用兼容模式
set nocompatible
"显示行号
set number
"显示相对行号
set relativenumber
"显示光标所在位置的行号和列号
set ruler
"自动折行
set wrap
"移位操作 >> 或 << 的缩进长度(以空格的数量表示)
set shiftwidth=4

"设置文件里的制表符 (TAB) 的宽度(以空格的数量表示
set tabstop=4
set softtabstop=4
"换行的时候下一行使用上一行的缩进
set smartindent
"将tab替换为相应数量空格
set expandtab
set backspace=2
" 上下滚动的时候保留5行
set co=5
"突出显示当前行
set cursorline
" 禁止创建备份文件
set nobackup
" 禁止创建交换文件 .swp 开头
set noswapfile
" Vim 的默认寄存器和系统剪贴板共享
set clipboard+=unnamed
" 显示当前的模式
set showmode
"光标距窗口上下保留 5 行
set scrolloff=5
"显示文件名、行号和列号
set laststatus=2
"创建undo文件
"set undofile
"关闭错误响铃
set noerrorbells

"屏幕命令显示
set showcmd
"当前所处的模式"
set showmode
"显示匹配的括号"
set showmatch
" 参考 https://linux265.com/news/3395.html
" 参考 http://t.zoukankan.com/fuhai0815-p-9443916.html


"""""""""""""""""""""""""""""""""""""""""""" 通用设置 结束


""""""""""""""""""""""""""""""""""""""""""" ideavim 插件配置
"设置space为leader
let mapleader=" "

"sneak 插件 s/S {char}{char} 跳转
set sneak
" 启用vim surround功能
set surround
"启用e asymotin 插件
set easymotion

"IdeaVim插件增加自动切换为英文输入法的功能
"set keep-english-in-normal

Plug 'preservim/nerdtree`
map <c-t> :NERDTree>

""""""""""""""""""""""""""""""""""""""""""" ideavim 插件配置 结束


""""""""""""""""""""""""""""""""""""""""""" idea的动作映射"
"idea的动作映射 https://github.com/JetBrains/ideavim#executing-ide-actions

" 撤回
nnoremap U <C-r>
" 复制到行尾
nnoremap Y y$
"格式化代码 \r
map \r <Action>(ReformatCode)
" Debug
map <leader>d <Action>(Debug)
"运行当前文件
nnoremap <leader>r :action RunClass<CR>
"改变量名
nnoremap <leader>s :action RenameElement<CR>
"新建一个文件
nnoremap <leader>n :action NewFile<CR>
"Ctrl + Shift + I查看快速定义
nnoremap <leader>v :action QuickImplementations<CR>
noremap <leader>gc :action GotoClass<CR>

"noremap / :action Find<CR>
"noremap f :action AceAction<CR>
"noremap F :action AceTargetAction<CR>



" 后退
nnoremap [[ :action Back<CR>

"前进"

noremap ]] :action Forward<CR>
" 弹出输入框,可以跳到指定类
nnoremap <Space>gc :action GotoClass<CR>
" 弹出输入框,跳转到指定操作
nnoremap <Space>ga :action GotoAction<CR>
" 跳转到定义
nnoremap <leader>gd :action GotoDeclaration<CR>
" 跳转到实现
nnoremap <Space>gi :action GotoImplementation<CR>
" 跳转到指定的文件
nnoremap <Space>gf :action GotoFile<CR>
" 跳转到方法的声明
nnoremap <Space>gs :action GotoSuperMethod<CR>
" 跳转到测试
"nnoremap <Space>gT :action GotoTest<CR>
" 弹出输入框,跳转到符号
nnoremap <Space>gS :action GotoSymbol<CR>
" 弹出输入框 跳转到文件结构 不是command +7
noremap <leader>fs :action FileStructurePopup<CR>
"noremap <leader>v :action VimVisualToggleBlockMode<CR>
" 查找使用
nnoremap <Space>fu :action FindUsages<CR>
" 显示使用
nnoremap <Space>su :action ShowUsages<CR>
" 窗口切换
nnoremap <Space><TAB>:action Switcher<CR>

" 查看文档 F1
nnoremap <Space>h :action QuickJavaDoc<CR>

" 显示错误信息 鼠标悬停在错误页面上的效果
nnoremap <Space>se :action ShowErrorDescription<CR>
"nnoremap :action ShowErrorDescription 鼠标悬停在错误页面上的效果



" gh=go head, 映射vim中的^
nnoremap gh ^
" gl=go last,映射vim中的$
nnoremap gl $

" Window operation
"nnoremap <Space>ww <C-W>w "切换窗口"
"nnoremap <Space>wc <C-W>c "关闭窗口"
"nnoremap <Space>wj <C-W>j
"nnoremap <Space>wk <C-W>k
"nnoremap <Space>wh <C-W>h
"nnoremap <Space>wl <C-W>l
"nnoremap <Space>ws <C-W>s
"nnoremap <Space>w- <C-W>-
"nnoremap <Space>w+ <C-W>+




掘金上有篇文章介绍的还挺全的 但是我不是Java 开发有好些功能用不上传送门在这,还是根据自己的需要定制,适合自己的才是最好的

插件用法介绍

Ace-jump 插件

Vim-surround

https://blog.csdn.net/zwlove5280/article/details/108276285

参考文章

1
2
3
4
5
6
7
8
9
10
11
12

"https://javaforall.cn/186961.html
"https://blog.csdn.net/weixin_33859844/article/details/91658609
"https://github.com/JetBrains/ideavim#executing-ide-actions
"https://github.com/JetBrains/ideavim/wiki/%22set%22-commands
"https://blog.csdn.net/kl28978113/article/details/53980440
"https://gist.github.com/AlexPl292/50a3ff4cef1badcbb23436b22cbd3cf4"
"https://blog.csdn.net/weixin_33859844/article/details/91658609"
"https://zhuanlan.zhihu.com/p/404818431"
"https://zhuanlan.zhihu.com/p/579636452"
"https://www.jianshu.com/p/ddd56ceeb83d"

isneedpay


ideavimrc配置和解读
https://kingjem.github.io/2024/10/14/ideavimrc配置和解读/
作者
Ruhai
发布于
2024年10月14日
许可协议