-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.ideavimrc
218 lines (196 loc) · 7.59 KB
/
.ideavimrc
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
" https://www.iteye.com/blog/kidneyball-1828427
" https://zx0211.gitee.io/2018/idea-vim/
" https://www.thisfaner.com/p/idea-vim/
" https://einverne.github.io/post/2020/07/idea-vim-usage.html
" https://cloud.tencent.com/developer/article/1525244
" https://www.zhihu.com/question/20783392
" https://segmentfault.com/a/1190000007061930
" https://isudox.com/2016/07/26/scheme-of-ideavim-keymap/
" https://www.dazhuanlan.com/2020/02/21/5e4fd919c639c/
" https://www.jianshu.com/p/ddd56ceeb83d
" https://blog.csdn.net/niuzaiwenjie/article/details/79634583
" https://www.jb51.net/article/187007.htm
" 文件目标:使用 .ideavimrc 达到习惯体验,尽量不依赖 idea 的配置定制
" 主要leader
let mapleader=' '
" ------------------------常用设置-----------------------
" 搜索高亮
set hlsearch
" 模式搜索实时预览,增量搜索
set incsearch
" 忽略大小写
set ignorecase
" 智能忽略大小写
set smartcase
" 显示当前的模式
set showmode
" 显示当前行号
set number
set relativenumber
set scrolloff=3
" 设置命令历史记录条数"
set history=1000
" 共享系统粘贴板"
set clipboard=unnamed
" 基于缩进或语法进行代码折叠
set foldmethod=indent
set foldmethod=syntax
" 启动vim 时关闭折叠代码
set nofoldenable
" 关闭兼容vi"
set nocompatible
" 开启高亮语法"
syntax enable
" 允许使用指定语法高亮配色方案替换默认方案"
syntax on
" vim 智能命令行模式智能补全"
set wildmenu
" 总是显示状态栏"
set laststatus=2
" 显示光标当前位置"
set ruler
" 禁止折行 "
set nowrap
" 将制表符扩展为空格 "
set expandtab
" 设置编辑时制表符占用空格数"
set shiftwidth=4
" 中英文自动切换
set keep-english-in-normal-and-restore-in-insert
" ------------------------按键绑定-----------------------
" -----------视图模式--------
vnoremap <Leader>ec :action ExtractMethod<CR>
" Quit visual mode
vnoremap v <Esc>
" -----------X X 模式--------
" clear the highlighted search result
nnoremap <Leader>sc :nohlsearch<CR>
nnoremap <Leader>sd :w!<CR>
nnoremap <Leader>sq :wq!<CR>
nnoremap <C-C> <Esc>
" 断行
nnoremap <CR> a<CR><Esc>k$
" project search
nnoremap <Leader>fu :action FindUsages<CR>
" Quit normal mode
nnoremap <Leader>qu :q<CR>
nnoremap <Leader>Q :qa!<CR>
" -----------输入模式--------
" Insert mode shortcut
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>
inoremap <C-a> <Home>
inoremap <C-e> <End>
inoremap <C-d> <Delete>
" Quit insert mode
inoremap jk <Esc>
" Move to the start of line
" nnoremap H ^
" Move to the end of line
" nnoremap L $
" Yank to the end of line
" nnoremap Y y$
" Window operation
nnoremap <Leader>ww <C-W>w
nnoremap <Leader>wd <C-W>c
nnoremap <Leader>wj <C-W>j
nnoremap <Leader>wk <C-W>k
nnoremap <Leader>wh <C-W>h
nnoremap <Leader>wl <C-W>l
nnoremap <Leader>ws <C-W>s
nnoremap <Leader>w- <C-W>s
nnoremap <Leader>wv <C-W>v
nnoremap <Leader>w\| <C-W>v
" Tab operation
nnoremap gn gt
nnoremap gp gT
" ==================================================
" Show all the provided actions via `:actionlist` , https://gist.github.com/zchee/9c78f91cc5ad771c1f5d
" ==================================================
" 单行 注释"
nnoremap <Leader>;; :action CommentByLineComment<CR>
" 可是模式下,选择区域注释"
vnoremap <Leader>;/ :action CommentByBlockComment<CR>
" 对z命令的追加,z一般用于光标调整,用得比较少,所以是一个比较好的选择,注意和原命令重复"
" 实现方法
nnoremap zi :action ImplementMethods<CR>
" 重写方法"
nnoremap zo :action OverrideMethods<CR>
" 重新格式化代码"
nnoremap <Leader>fc :action ReformatCode<CR>
" 运行class的主方法"
nnoremap <Leader>rm :action RunClass<CR>
" 新建class"
nnoremap <Leader>nc :action NewClass<CR>
nnoremap <Leader>br :action ViewBreakpoints<CR>
nnoremap <Leader>cv :action ChangeView<CR>
nnoremap <Leader>cd :action ChooseDebugConfiguration<CR>
nnoremap <Leader>cr :action ChooseRunConfiguration<CR>
nnoremap <Leader>rr :action Run<CR>
" 修正文档注释,没有自动添加"
nnoremap <Leader>dc :action FixDocComment<CR>
nnoremap <Leader>dd :action Debug<CR>
nnoremap <Leader>rs :action Stop<CR>
nnoremap <Leader>gs :action GotoSuperMethod<CR>
nnoremap <Leader>fp :action ShowFilePath<CR>
nnoremap <Leader>ic :action InspectCode<CR>
nnoremap <Leader>oi :action OptimizeImports<CR>
nnoremap <Leader>pm :action ShowPopupMenu<CR>
nnoremap <Leader>rc :action RunToCursor<CR>
nnoremap <Leader>re :action RenameElement<CR>
nnoremap <Leader>rf :action RenameFile<CR>
nnoremap <Leader>rr :action Rerun<CR>
nnoremap <Leader>se :action SearchEverywhere<CR>
nnoremap <Leader>su :action ShowUsages<CR>
nnoremap <Leader>tc :action CloseActiveTab<CR>
nnoremap <Leader>si :action StepInto<CR>
" 继承关系"
nnoremap <Leader>th :action TypeHierarchy<CR>
nnoremap <Leader>tb :action ToggleLineBreakpoint<CR>
nnoremap gi :action GotoImplementation<CR>
nnoremap ga :action GotoAction<CR>
nnoremap gc :action GotoClass<CR>
nnoremap gf :action GotoFile<CR>
nsoremap gi :action GotoImplementation<CR>
nnoremap gs :action GotoSymbol<CR>
nnoremap ge :action ShowErrorDescription<CR>
nnoremap <Leader>tl Vy<CR>:action ActivateTerminalToolWindow<CR>
vnoremap <Leader>tl y<CR>:action ActivateTerminalToolWindow<CR>
" 默认开启关闭vim模拟器是 Ctrl + Alt + V
" 设置为 ctrl + ;
" 快捷键 JetBrains IDE 功能 Vim 功能
" Ctrl+2 Project Directory √ 空缺
" Ctrl+Shift+2 插入/取消标记 2 √ 空缺
" Ctrl+Shift+6 插入/取消标记 6 √ 空缺
" Ctrl+A 全选 √ 光标所在数字递增
" Ctrl+B 跳转至引用 √ 向上翻一屏
" Ctrl+C 复制 退出插入模式 √
" Ctrl+D 复写当前行 向下翻半屏 √
" Ctrl+E 打开最近的文档 (改成 C_A + R) 向下滚动行 √
" Ctrl+F 查找 √ 向下翻一屏
" Ctrl+G 跳转到指定行 打印当前文件名 √
" Ctrl+H 当前类型的继承关系 (改为 Alt + H) 光标退格 √
" Ctrl+I Implement 方法 (改为 Alt + I) 跳转到 Jump List 下一个位置 √
" Ctrl+M 光标所在行滚动到屏幕中央 (改为 Alt + M) 移动到下一行的首个非空字符 √
" Ctrl+N 查找指定 Class (改为 Alt + N) 移动到下一行,光标相对位置不变 √
" Ctrl+O Override 方法 (改为 Alt + O) 跳转到 Jump List 上一位置 √
" Ctrl+P Show/Hide path text (改为 Alt + P) 移动到上一行,光标相对位置不变 √
" Ctrl+Q Quick Documentation (改为 C_A + Q) 代替 Ctrl-V 开启 Visual
" Ctrl+R 替换文本 (改为 Alt + R) 恢复上一次修改 √
" Ctrl+S 保存全部改动 √ 分割窗口
" Ctrl+T 更新工程 (改为 Alt + T) 跳转到 Tag Stack 上一位置 √
" Ctrl+U 跳转至父类方法 (改为 Alt + U) 向上翻半屏 √
" Ctrl+V 粘贴 √ 开启 Visual 模式
" Ctrl+W 智能选中 (改为 Alt + W) 窗口命令,后接具体指令
" Ctrl+X 剪切 √ 光标所在数字递减
" Ctrl+Y 删除光标所在行 向上滚动行 √
" Ctrl+[ 光标移动到代码块的起始位置 (改为 Alt + [) 退出插入模式 √
" Ctrl+] 光标移动到代码块的结束位置 (改为 Alt + ]) 跳转到关键字的声明处 √
" 教程集
" 光标移动 hjkl,w(空格符号)W(空格)b,f指定字符(正向跳转到指定字符),F(反向),t指定字符(正向跳转到指定字符的上一个位置),T(反向)
" *(跳转至下一个与当前光标相同字符的位置),#(上一个)
" gg(文件头),G(文件尾),行号G(跳至指定行的开头)
" 复制粘贴 yy,p(光标下一行),10p
" 删除撤销 5dd,u,x(正向删除),X(反向),df指定字符(从光标处删除至指定字符),di(删除引号内的内容),da(删除包含引号在内的内容)