1 Star 3 Fork 0

ifnk / 我自己的ideavimrc

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or Download
.ideavimrc 8.92 KB
Copy Edit Web IDE Raw Blame History
ifnk authored 2021-09-22 03:24 . update .ideavimrc.
"基本设置{{{1
"设置相对行号"
" shift-j 以后 符合 idea 的行为
set ideajoin
" 可以令屏幕滚动时在光标上下方保留5行预览代码(也就是光标会在第5行触发向上滚动,或者在倒数第5行触发向下滚动)。
"触发idea 全局标签
set ideamarks
set nu
set relativenumber
" yiw 的时候 短暂的高亮复制 的对象
set highlightedyank
" 选择缩进的对象 vii vai
set textobj-indent
" 类似全选 配合 =ae 可以将整个文件格式化
"set textobj-entire
" cx{范围} 再 cx{范围后} 交换 俩 ,或者 v 选中后 X 交换
set exchange
" 寄存器的相关操作,目前还不会 griw gri( gri" 范围替换寄存器内的东西
set ReplaceWithRegister
" 快速选中 函数的参数
set argtextobj
" 设置在(a,b) 、{a,b} 、<a,b> 这种括号里面
let g:argtextobj_pairs="(:),{:},<:>"
"在对话框编辑器中禁用IdeaVim
set ideavimsupport+=dialog
set ideaenabledbufs+=singleline
"在底部显示 当前模式(normal 或者 insert)
set showmode
"搜索高亮显示
set hls
"设置啥时候都不可以打开折叠 hor 就是水平移动 的时候 不要打开折叠
set foldopen-=hor
" 修改leader键
" 搜索时忽略大小写
set ignorecase
" 搜索时立即高亮 结果
set incsearch
" 有一个或以上大写字母时仍大小写敏感
set smartcase
"easymotion插件
set easymotion
"禁用 easymotion 默认映射
let g:EasyMotion_do_mapping = 0
"多光标支持插件
"set multiple-cursors
"注释插件
set commentary
"surround 插件
set surround
"自动切换 输入法
set keep-english-in-normal "}}}
"通用映射{{{2
"进入全屏装B 模式
"扩展选择
" noremap K :action EditorSelectWord<CR>
:map K <Action>(EditorSelectWord)
" :map K <Action>(EditorSelectWord):action EditorSelectWord<CR>
" 跳到文件搜索 经常用
nnoremap <BS> :action GotoFile<CR>
" 窗口循环切换
nnoremap m <C-W>w
"这个粘贴 不知道咋说 ,就是在块后面 进行 粘贴
noremap gp gP
" 打开过的历史记录文件夹
nnoremap <C-E> :action RecentFiles<CR>
" 查看光标下的对应文档(如果有的话)
nnoremap <C-Q> :action QuickJavaDoc<CR>
" ide 自带的回退
nnoremap <C-O> :action Back<cr>
" ide 自带的前进
nnoremap <C-I> :action Forward<cr>
"在当前行的下一行粘贴
nnoremap gop :pu<CR>
"在当前行的上一行粘贴
nnoremap gip k:pu<CR>
" 选中时 调用ide 的 格式化代码
vnoremap = :action ReformatCode<CR>
"折叠
nnoremap zm zM
nnoremap zr zR
nnoremap zc zC
" 取消高亮
nnoremap <C-,> :noh<CR>
" 显示 ide 推荐给你的操作
nnoremap <C-.> :action ShowIntentionActions<CR>
" 单行注释
nnoremap <C-/> :action CommentByLineComment<CR>
vnoremap <C-/> :action CommentByLineComment<CR>
"快速换行 需要安装 wrap to column 插件
nnoremap gqq :action com.andrewbrookins.idea.wrap.WrapAction<CR>
vnoremap gq :action com.andrewbrookins.idea.wrap.WrapAction<CR>
"当前tab 往左/右移动 需要安装 move tab 和 tab shifter 插件 插件
nnoremap <C-H> :action com.mikejhill.intellij.movetab.actions.MoveTabLeft<CR>
nnoremap <C-L> :action com.mikejhill.intellij.movetab.actions.MoveTabRight<CR>
:map <C-K> <Action>(EditorSelectWord)
:map <C-J> <Action>(EditorUnSelectWord)
" 移动 焦点 到拆分 窗口
map gh <C-W>h
map gl <C-W>l
map gk <C-W>k
map gj <C-W>j
" 上一个tab 这个把 宏的按钮 给替换 了,所以下面就把 Q 用来代替宏
nnoremap q gT
nnoremap Q q
" 下一个tab
nnoremap w gt
"
nnoremap <C-F> :action FindInPath<CR> "全局搜索
vnoremap <C-F> :action FindInPath<CR> "全局搜索
" tab shifter 相关插件 的操作
" 改变分隔方向"
noremap <C-W>n :action ChangeSplitOrientation<CR>
noremap <C-W><C-N> :action ChangeSplitOrientation<CR>
" 最大化当前分隔的窗口 "
noremap g<Space> :action TabShiftActions.ToggleMaximizeRestore<CR>
" 将当前的窗口移到右边的分隔窗口里面
noremap <A-H> :action TabShiftActions.ShiftLeft<CR>
" 将当前的窗口移到左边的分隔窗口里面
noremap <A-L> :action TabShiftActions.ShiftRight<CR>
"替换当前选中的文本
vnoremap <Leader>r "ry:%s/<C-R>r/
vnoremap <C-C> "+y
vnoremap <C-Insert> "+y
vnoremap <C-V> "+P
imap <C-V> <C-R>+
map <S-Insert> "+P
cmap <C-V> <C-R>+
cmap <S-Insert> <C-R>+
" 复制别处单词替换当前单词
noremap giw :action emacsIDEAs.AceJumpObtainThenReplace.Word<CR>
noremap gic :action emacsIDEAs.AceJumpObtainThenReplace.Quote<CR>
noremap giz :action emacsIDEAs.AceJumpObtainThenReplace.Quote<CR>
noremap gim :action emacsIDEAs.AceJumpObtainThenReplace.Block<CR>
noremap gie :action emacsIDEAs.AceJumpObtainThenReplace.Block<CR>
noremap gir :action emacsIDEAs.AceJumpObtainThenReplace.Block<CR>
noremap gi, :action emacsIDEAs.AceJumpObtainThenReplace.Block<CR>
noremap gii :action emacsIDEAs.AceJumpObtainThenReplace.Line<CR>
noremap gil :action emacsIDEAs.AceJumpObtainThenReplace.Line<CR>
" 复制别处单词到当前光标
noremap gyw a<Esc>:action emacsIDEAs.AceJumpCopy.Word<CR>
imap <A-I> <C-O>:action emacsIDEAs.AceJumpCopy.Word<CR>
noremap gyc a<Esc>:action emacsIDEAs.AceJumpCopy.Quote<CR>
noremap gyz a<Esc>:action emacsIDEAs.AceJumpCopy.Quote<CR>
noremap gym a<Esc>:action emacsIDEAs.AceJumpCopy.Block<CR>
noremap gye a<Esc>:action emacsIDEAs.AceJumpCopy.Block<CR>
noremap gy, a<Esc>:action emacsIDEAs.AceJumpCopy.Block<CR>
noremap gyy a<Esc>:action emacsIDEAs.AceJumpCopy.Line<CR>
noremap gyl a<Esc>:action emacsIDEAs.AceJumpCopy.Line<CR>
" 移动别处单词到当前光标
noremap gmw a<Esc>:action emacsIDEAs.AceJumpMove.Word<CR>
noremap gmc a<Esc>:action emacsIDEAs.AceJumpMove.Quote<CR>
noremap gmz a<Esc>:action emacsIDEAs.AceJumpMove.Quote<CR>
noremap gmm a<Esc>:action emacsIDEAs.AceJumpMove.Block<CR>
noremap gme a<Esc>:action emacsIDEAs.AceJumpMove.Block<CR>
noremap gm, a<Esc>:action emacsIDEAs.AceJumpMove.Block<CR>
noremap gmy a<Esc>:action emacsIDEAs.AceJumpMove.Line<CR>
noremap gml a<Esc>:action emacsIDEAs.AceJumpMove.Line<CR>
" 复制当前单词替换别处单词
noremap gow :action emacsIDEAs.AceJumpAndReplace.Word<CR>
noremap goc :action emacsIDEAs.AceJumpAndReplace.Quote<CR>
noremap goz :action emacsIDEAs.AceJumpAndReplace.Quote<CR>
noremap gom :action emacsIDEAs.AceJumpAndReplace.Block<CR>
noremap goe :action emacsIDEAs.AceJumpAndReplace.Block<CR>
noremap gor :action emacsIDEAs.AceJumpAndReplace.Block<CR>
noremap go, :action emacsIDEAs.AceJumpAndReplace.Block<CR>
noremap goo :action emacsIDEAs.AceJumpAndReplace.Line<CR>
noremap gol :action emacsIDEAs.AceJumpAndReplace.Line<CR>
"visual 模式 下 按* 号 搜索 光标选中的内容(对已选中的内容进行查找)
vmap * "ry/<C-R>r<CR>N
vmap # "ry/<C-R>r<CR>n
"复制当前tab 到对面
noremap <leader><leader> :action OpenEditorInOppositeTabGroup<CR>
"重新加载ideavimrc
nnoremap <leader>rr :source ~/.ideavimrc<CR>
"关闭其他所有tab
noremap gxo :action CloseAllEditorsButActive<CR>
"关闭右侧的tab
noremap gx$ :action CloseAllToTheRight<CR>
"关闭左侧的tab
noremap gx^ :action CloseAllToTheLeft<CR>
"
" 全部选中
map <leader>sa ggVG
" 快速保存
"
"
"
noremap <c-s> :w<CR>
"设置断点
nnoremap <leader>dd :action ToggleLineBreakpoint<CR>
"禁用断点
noremap <leader>f :action XDebugger.MuteBreakpoints<CR>
"需要安装 ideavim easymotion acejump 插件 "
map <Space> <Plug>(easymotion-s)
"调用ide的自动完成功能 "
nnoremap <C-Space> i<C-O>:action CodeCompletion<CR>
"以后不要用s 了 用 cl 来修改单个单词吧
"跳转到vue 的 props (搜索之类)
unmap s
nnoremap sp /props:<CR>:noh<CR>zt5j
nnoremap sd /data:<CR>:noh<CR>zt5j
nnoremap sc /computed:<CR>:noh<CR>zt5j
nnoremap sw /watch:<CR>:noh<CR>zt5j
nnoremap sm /methods:<CR>:noh<CR>zt5j
"nnoremap sr /render().*{<CR>:noh<CR>zt5j
nnoremap sr /return \(<CR>:noh<CR>zt5j
nnoremap sf /a-form<CR>:noh<CR>zt5j
nnoremap st /a-table<CR>:noh<CR>zt5j
nnoremap ss /render() {<CR>/\<Sm<CR>:noh<CR>zt
nnoremap se /useEffect<CR>n:noh<CR>zz
nnoremap sa /render() {<CR>/\<a\-
nnoremap s, /\<
"显示光标下的错误信息
noremap gee :action ShowErrorDescription<CR>
"下一个错误
noremap <C-N> :action GotoNextError<CR>
"上一个错误
noremap <C-P> :action GotoPreviousError<CR>
"查找文件
map <C-B> :action GotoAction<CR>
noremap ga :action GotoAction<CR>
"内部的iw{{{
nnoremap vn v^
nnoremap vq v$
" vnoremap q g_
onoremap n ^
onoremap q $
"内部
onoremap w iw
onoremap , i(
onoremap ( i(
"onoremap ie i(
onoremap r i[
"onoremap ir i[
onoremap m i{
onoremap . i<
onoremap z i'
onoremap c i"
"外部
onoremap aw aw
onoremap a, a(
onoremap ae a(
onoremap ar a[
onoremap am a{
onoremap a. a<
onoremap az a'
onoremap ac a"
"内部
nnoremap vw viw
nnoremap v( vi(
"nnoremap vie vi(
nnoremap vr vi[
nnoremap vm vi{
nnoremap v. vi<
nnoremap v, vi(
nnoremap vz vi'
nnoremap vc vi"
"外部
nnoremap vaw vaw
nnoremap va, va(
nnoremap vae va(
nnoremap var va[
nnoremap vam va{
nnoremap va. va<
nnoremap va, va(
nnoremap vaz va'
nnoremap vac va"
"删除 包的括号
"nnoremap dsm ds{
"nnoremap dsc ds"
"nnoremap dsz ds'
"nnoremap dse ds(
"nnoremap ds, ds(
"nnoremap ds. ds<
"nnoremap dsr ds[

Comment ( 0 )

Sign in to post a comment

VimL
1
https://gitee.com/ifnk/myIdeavimrc.git
git@gitee.com:ifnk/myIdeavimrc.git
ifnk
myIdeavimrc
我自己的ideavimrc
master

Search