大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
ideavim 使用分享
ideavim 使用
ideavim介绍
ideavim是JetBrains官方开发的模拟vim插件,熟练ideavim的人可以更快的进行操作,大部分操作都可以用键盘来代替。
纯vim也能进行更高效的开发,但是一款适合自己深定义的配置,能够让人更加高效。配合ide的智能补全,就一个字爽
ideavim的安装
idea中自带的插件管理搜索ideavim然后选择安装
- macos 打开idea配置 cmd + ,
- windows 打开idea配置 ctrl + shfit + s
配置ideavim
ideavim 的配置可以直接在idea中进行
在idea中的最下面一行
就可以在这个配置文件内进行自己的自定义配置
我的ideavim配置
" :s/old/new - 用new替换当前行第一个old。
" :s/old/new/g - 用new替换当前行所有的old。
" :n1,n2s/old/new/g - 用new替换文件n1行到n2行所有的old。
" :%s/old/new/g - 用new替换文件中所有的old。
" :%s/^/xxx/g - 在每一行的行首插入xxx,^表示行首。
" :%s/$/xxx/g - 在每一行的行尾插入xxx,$表示行尾。
" 有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)。
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""Setting""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置leader键"
let mapleader=" "
set timeoutlen=500
" 防止按leader键乱移动
nnoremap <SPACE> <nop>
" 相对数字
set number
set relativenumber
" 屏幕滚动时在光标上下方保留5行预览代码
set so=5
" 取消高亮
" 设置寻找高亮
set hlsearch
set incsearch
" 设置字不超过窗口
set wrap
" 突出水平显示
set cursorline
" 设置tab键和自动缩进
set tabstop=4
set shiftwidth=4
set softtabstop=4
" 下一行和上一行的格式相同
set autoindent
set cindent
" 设置窗口分屏方向
set splitright
set splitbelow
" 不区分大小写
set ignorecase
" 取消高亮
nnoremap <leader>sc :nohlsearch<Cr>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""UI"""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" change colorscheme
nnoremap <leader>fc :action QuickChangeScheme<CR>
" 改变视图
nnoremap <leader>cv :action ChangeView<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""Plugins""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" ===
" === Open Plugins
" ===
set NERDTree
set surround
set multiple-cursors
set commentary "能用gcc gc+motion来注释代码
set keep-english-in-normal-and-restore-in-insert "普通模式强制以英文模式
set easymotion
set argtextobj
set highlightyank
set textobj-entire
" ===
" === multiple-cursors
" ===
nmap <C-n> <Plug>NextWholeOccurrence
xmap <C-n> <Plug>NextWholeOccurrence
nmap <C-x> <Plug>SkipOccurrence
xmap <C-x> <Plug>SkipOccurrence
nmap <C-q> <Plug>RemoveOccurrence
xmap <C-q> <Plug>RemoveOccurrence
nmap <S-C-n> <Plug>AllWholeOccurrences
xmap <S-C-n> <Plug>AllWholeOccurrences
" ===
" === easymotion
" ===
nmap ss <Plug>(easymotion-s2)
nmap E <Plug>(easymotion-s)
nmap sl <Plug>(easymotion-bd-jk)
nmap sw <Plug>(easymotion-bd-w)
" use easymotion to replace orginal f F t T
" nmap f <Plug>(easymotion-fl)
" nmap F <Plug>(easymotion-Fl)
" nmap t <Plug>(easymotion-tl)
" nmap T <Plug>(easymotion-Tl)
" vmap E <Plug>(easymotion-s)
" vmap f <Plug>(easymotion-fl)
" vmap F <Plug>(easymotion-Fl)
" vmap t <Plug>(easymotion-tl)
" vmap T <Plug>(easymotion-Tl)
" ===
" === NERDTree
" ===
""""Usage""""
" o <key> open menu in NERDTree
" O <key> Recursively open the selected directory
" i <key> Open selected file in a split window (horizontal)
" gi <key> Same as i, but leave the cursor on the NERDTree
" s <key> Open selected file in a new vsplit
" gs <key> Same as s, but leave the cursor on the NERDTree
" m <key> open menu in NERDTree
" A <key> Zoom (maximize/minimize) the NERDTree window"
" K <key> Jump up inside directories at the current tree depth
" J <key> Jump down inside directories at the current tree depth
" x <key> Close the current nodes parent (not close flie)
" X <key> Recursively close all children of the current node (not close flie)
""""End""""
" open NERDTree
nnoremap <leader>e :NERDTree<CR>
" close NERDTree
nnoremap Q :NERDTreeClose<CR>
" 弹出文件结构信息(相当于显示大纲)
nnoremap <leader>o mm`m:action FileStructurePopup<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""Move""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 取消vim s键原生映射
nnoremap s <Nop>
vnoremap s <Nop>
" 快速关闭buffers
nnoremap X :q<cr>
" 使用tab键快速切换buffers
nnoremap <TAB> gt
nnoremap <S-TAB> gT
vnoremap <TAB> gt
vnoremap <S-TAB> gT
" 左右移动视野
nnoremap zh 50zh
nnoremap zl 50zl
" 像vscode一样行移动
vnoremap J :action MoveLineDown<CR>
vnoremap K :action MoveLineUp<CR>
" 多行缩进在visual mode
vnoremap > >gv
vnoremap < <gv
" 复制粘贴剪贴板
nnoremap <leader>y "+y
nnoremap <leader>p "+p
nnoremap <leader>P "+P
vnoremap <leader>y "+y
vnoremap <leader>p "+p
vnoremap <leader>P "+p
" 快速复制到行尾
vnoremap Y y$
nnoremap Y y$
" 插入模式快速移动
inoremap <C-a> <Home>
inoremap <C-e> <End>
" 其他模式快速移动
nnoremap H ^
nnoremap L $
vnoremap H ^
vnoremap L $
" 快速进行缩进
nnoremap > >>
nnoremap < <<
" 后退功能
"nnoremap <leader>gb :action Back<CR>
"nnoremap <leader>gb :action JumpToLastChange<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""Debug""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 打上断点或取消断点
nnoremap <leader>dt :action ToggleLineBreakpoint<CR>
" 取消所有的断点
nnoremap <leader>dT :action Debugger.RemoveAllBreakpointsInFile<CR>
" debug上次运行的类
nnoremap <leader>dd :action Debug<CR>
" debug当前(now)类
nnoremap <leader>dc :action DebugClass<CR>
" debug神器
" StepInto (F7)
nnoremap <leader>di :action ForceStepInto<CR>
" ForceStepInto(CMD + SHIFT + F7)
nnoremap <leader>dI :action ForceStepInto
" StepOver (F8)
nnoremap <leader>do :action StepOver<CR>
" Resume (跳到下个断点运行)
nnoremap <leader>dr :action Resume<CR>
" StepOut (SHIFT+F8)
nnoremap <leader>du :action StepOut<CR>
" debug强制运行到光标处
nnoremap <leader>dC :action ForceRunToCursor<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""RUN""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置运行配置 (未知)
" nnoremap <leader>rc :action RunConfiguration<CR>
" 运行上次运行类
nnoremap <leader>rr :action Run<CR>
" 运行当前(now)类
nnoremap <leader>rc :action RunClass<CR>
" 停止运行
nnoremap <leader>rp :action Stop<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""重构篇""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 抽取方法重构(不熟悉)
" nnoremap <leader>om :action ExtractMethod<CR>
" 抽取接口重构(不熟悉)
" nnoremap <leader>oi :action ExtractInterface<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""窗口篇""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 激活run的运行窗口
nnoremap <leader>wr :action ActivateRunToolWindow<CR>
" 隐藏窗口(windows hide)
nnoremap <leader>wh :action HideActiveWindow<CR>
" 激活debug的运行窗口
nnoremap <leader>wd :action ActivateDebugToolWindow<CR>
" 窗口最大化windows max(就是保留代码编辑区[文件树什么都关掉,但是下面窗口还在])
nnoremap <leader>z :action MaximizeToolWindow<CR>
" vim窗口操作
nnoremap <C-j> <C-W>j
nnoremap <C-k> <C-W>k
nnoremap <C-h> <C-W>h
nnoremap <C-l> <C-W>l
nnoremap sc <C-W>c
nnoremap sv :vsplit<CR>
nnoremap sg :split<CR>
"关闭到只剩当前tab栏
nnoremap <leader>bo :action CloseAllEditorsButActive<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""Create"""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 新建类
nnoremap <leader>nc :action NewClass<CR>
" 新建项目
nnoremap <leader>np :action NewProject<CR>
" 新建文件 (嘻嘻,啥都可以直接用快捷键建立,一个字爽)
nnoremap <leader>ne :action NewElement<CR>
" 删除当前文件 (快速删除)
nnoremap <leader>nd :action SafeDelete<CR>
" 复制文件元素
nnoremap <leader>ny :action CopyElement<CR>
" 代码环绕(快速添加if 或者while)
nnoremap <leader>ns :action SurroundWith<CR>
vnoremap <leader>ns :action SurroundWith<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""文件和跳转"""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 重命名文件
nnoremap <leader>rn :action RenameFile<CR>
"最近改动文件间相互跳转
nnoremap <leader>rf mm`m:action RecentChangedFiles<CR>
" 查找文件
nnoremap <leader>ff mm`m:action GotoFile<CR>
" 最近查看文件间相互跳转
nnoremap <leader>fr mm`m:action RecentFiles<CR>
" 查找用法
nnoremap <leader>fu :action FindUsages<CR>
"跳转到声明
nnoremap gd mm`m:action GotoDeclaration<CR>
" 打开General菜单
nnoremap go :action Generate<CR>
"跳转到实现类
nnoremap gi mm`m:action GotoImplementation<CR>
" 查找类
nnoremap gc mm`m:action GotoClass<CR>
" 跳转SuperMethod
nnoremap gs mm`m:action GotoSuperMethod<CR>
" 目前还不熟悉 (后面搞懂回来补充)
nnoremap gf mm`m:action FileStructurePopup<CR>
" 搜索 action
nnoremap <leader>ga :action GotoAction<CR>
"相当于鼠标右键
nnoremap <leader>sp :action ShowPopupMenu<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""LSP"""""""""""""""""""""''""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 格式化代码
nnoremap <leader>lf :action ReformatCode<CR>
" 跳转下一个错误
nnoremap <leader>lj :action GotoNextError<CR>
" 跳转上一个错误
nnoremap <leader>lk :action GotoPreviousError<CR>
" 命名元素
nnoremap <leader>lr :action RenameElement<CR>
" 快速显示文档
nnoremap K :action QuickJavaDoc<CR>
" idea智能提示
nnoremap ga :action ShowIntentionActions<CR>
" 显示错误描述
nnoremap gl :action ShowErrorDescription<CR>
" 弹出参数信息(打类的时候有奇效)
nnoremap gp :action ParameterInfo<CR>
" 弹出类型信息 (显示这个是什么类型)
nnoremap <leader>st :action ExpressionTypeInfo<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""Git""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 显示git菜单
nnoremap <leader>gm :action Git.Menu<CR>
希望支持
觉得这篇文章对你有帮助的话就给我给赞,你的支持就是我坚持的动力。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187032.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...