idea使用Vim的技巧大全分享
一、前言
vim的基礎(chǔ)命令我這邊不多做介紹,直接給兩個比較大而全的直觀圖,照著一個個命令看下去基本命令就學(xué)了一遍了,我會著重介紹我在idea編寫代碼過程中比較常用的命令,畢竟在idea寫代碼和在vim編輯器里寫代碼還是有很大區(qū)別的,idea本身自帶了很多功能,不需要依賴vim更加方便


二、插件推薦
- 在idea用vim推薦下載如下幾個插件,很多文章也推薦了這兩個插件,但都沒具體介紹

IdeaEasyMotion
對于不想用鼠標(biāo)移動的用戶來講,這是個快速定位的神器,入下圖所示,通過快捷鍵<ll>w
顯示所有單詞的開頭,輸入對應(yīng)的字母就可以將光標(biāo)定位到那個單詞的開頭,接下去若要修改,直接cw就刪掉這個單詞進入插入模式修改了
這里<ll> 代表了兩個<leader> 在配置文件用let mapleader=" " 來表示這個字符,我習(xí)慣用空格來作為leader

IdeaVimExtension
這個插件就是用來支持vim操作idea的
action動作的,下面會介紹如何使用action
三、開發(fā)常用命令
v系列viw選中光標(biāo)所在的單詞,通常配合c進行單詞的快速修改,也就是viwc直接修改一個單詞變成插入模式直接寫,相比于idea的變量重命名快捷鍵,這個的好處就是不管是變量,類名,方法名都可以直接快速選中單詞直接改

viw:選擇當(dāng)前光標(biāo)所在的單詞(word),不包括周圍的空格或標(biāo)點。vis或vi':選擇單引號內(nèi)的文本(不包括單引號本身)。vin或vi":選擇雙引號內(nèi)的文本(不包括雙引號本身)。vib或vi(或vi):選擇圓括號內(nèi)的文本(不包括圓括號本身)。viB或vi{或vi}:選擇大括號內(nèi)的文本(不包括大括號本身)。vi[或vi]:選擇方括號內(nèi)的文本(不包括方括號本身)。vit:選擇HTML標(biāo)簽內(nèi)的文本(不包括標(biāo)簽本身)
以上方法對應(yīng)了選中對應(yīng)兩個相同符號范圍內(nèi)的字符串,比如選中雙引號內(nèi)的字符串

c系列
ciw==viwc相比于viwc這種可視化選擇修改,ciw更加直接,會直接修改光標(biāo)所在的單詞,直接進入插入模式并刪除單詞

v系列的所有命令都可以改成c開頭,效果等同于vi?c
hjkl移動- 在vim編輯器中,本來移動和定位也是vim語法比較擅長的一項,但在idea中實際上鼠標(biāo)的移動更方便進行光標(biāo)的定位,特別是對mac來講更加如此,手指劃拉一下比
hjkl的移動更有性價比,所以對vim的移動,感興趣的學(xué)下就好了,沒必要在實際開發(fā)中用它
- 在vim編輯器中,本來移動和定位也是vim語法比較擅長的一項,但在idea中實際上鼠標(biāo)的移動更方便進行光標(biāo)的定位,特別是對mac來講更加如此,手指劃拉一下比
r替換x刪除- idea中command+R進行快速替換就夠用了,所以
:%s/a/b/g這種方式的替換就沒必要了,但我們常常會遇到單個字母寫錯或者多寫的情況,這種情況下,快速的修補方案用r和x就比較有性價比了 - 選中指定字母,按
r,接下去你按任意字母,該字母就會替換為指定字母 - 選中指定字母,按
x,直接刪除這個字母,不會進入插入模式
- idea中command+R進行快速替換就夠用了,所以
自定義刪除指定參數(shù)
自定義命令需要在ideavimrc文件里寫入,入口在

我自定義的命令如下,前三個是刪除,后三個是選擇
"光標(biāo)在多個參數(shù)的第一個參數(shù)任意位置,執(zhí)行直接刪參數(shù) nnoremap <Space>dn F,vt,d "光標(biāo)在多個參數(shù)的第一個參數(shù)任意位置,執(zhí)行直接刪參數(shù) nnoremap <Space>db T(vf,ld nnoremap <Space>dm F,vt)d nnoremap <Space>vn F,vt, nnoremap <Space>vb T(vf,l nnoremap <Space>vm F,vt)

四、action
重點介紹下如何使用idea的action實現(xiàn)用vim的快捷鍵調(diào)用idea的功能
找到命令
首先我們要知道對應(yīng)功能的action是什么名字,使用命令
:actionlist [pattern]以下舉例,打開terminal控制臺,找到激活控制臺命令,根據(jù)關(guān)鍵詞terminal搜索,復(fù)制命令后action執(zhí)行

執(zhí)行命令
:action [指令]固話命令
對于有些命令,我們希望通過快捷鍵就可以便捷的執(zhí)行,那么我們可以寫入
.ideavimrc文件寫入命令
在文件底部直接添加如下命令
nnoremap <Space>te :action ActivateTerminalToolWindow<CR>
接下去在普通模式下按
空格+te則可以快捷打開Terminal常用action
" 這三個都是arthas的命令,結(jié)合快捷鍵快速復(fù)制命令 nnoremap <Space>aw :action ArthasWatch<CR> nnoremap <Space>at :action ArthasTrace<CR> nnoremap <Space>dc :action ArthasJadCommandAction<CR>
以上三個是我用的比較多的arthas命令(前提下載arthas插件),調(diào)試的時候常常用到要頻繁切不同的方法,配置了這幾個命令用習(xí)慣后無腦按鍵三連就復(fù)制出切方法的命令,就可以去服務(wù)器執(zhí)行了
五、詳解map
關(guān)于map命令有如下幾種,分別在不同的模式下起作用,大部分情況下用的都是nnoremap命令

六、我的配置
" .ideavimrc is a configuration file for IdeaVim plugin. It uses
" the same commands as the original .vimrc configuration.
" You can find a list of commands here: https://jb.gg/h38q75
" Find more examples here: https://jb.gg/share-ideavimrc
" nnoremap - Normal Mode 映射:這個命令用于在 Normal Mode(普通模式)下創(chuàng)建鍵盤映射。這意味著當(dāng)您在普通模式下按下鍵盤上的指定組合時,將觸發(fā)所定義的操作。
" inoremap - Insert Mode 映射:這個命令用于在 Insert Mode(插入模式)下創(chuàng)建鍵盤映射。這允許您在編輯文本時定義按鍵組合的行為。
" nmap - Normal Mode 和 Visual Mode 映射:這個命令用于在 Normal Mode 和 Visual Mode 下創(chuàng)建鍵盤映射。這意味著它會影響普通模式和可視模式下的按鍵行為。
" vmap - Visual Mode 映射:這個命令用于在 Visual Mode(可視模式)下創(chuàng)建鍵盤映射。它會影響到在可視模式下選擇文本時的按鍵操作。
" imap - Insert Mode 和 Command-Line Mode 映射:這個命令用于在 Insert Mode 和 Command-Line Mode(命令行模式)下創(chuàng)建鍵盤映射。它允許您自定義插入模式和執(zhí)行命令時的按鍵行為。
" map - 通用映射:這個命令用于創(chuàng)建通用的鍵盤映射,會影響到多個模式(Normal Mode、Visual Mode、Insert Mode、Command-Line Mode)。這種映射可能會導(dǎo)致一些不直觀的行為,因此需要謹(jǐn)慎使用。
"" -- Suggested options --
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching.
" set incsearch
" Don't use Ex mode, use Q for formatting.
map Q gq
" --- Enable IdeaVim plugins https://jb.gg/ideavim-plugins
" Highlight copied text
Plug 'machakann/vim-highlightedyank'
" Commentary plugin
Plug 'tpope/vim-commentary'
set easymotion
"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t
"" Map \r to the Reformat Code action
"map \r <Action>(ReformatCode)
"" Map <leader>d to start debug
"map <leader>d <Action>(Debug)
"" Map \b to toggle the breakpoint on the current line
"map \b <Action>(ToggleLineBreakpoint)
set verbose=20
"語法高亮
syntax on
"顯示行號
set number relativenumber
"顯示光標(biāo)所在位置的行號和列號
set ruler
set wrap "自動折行
set shiftwidth=4
set tabstop=4
set softtabstop=4
set expandtab "將tab替換為相應(yīng)數(shù)量空格
set smartindent
set backspace=2
set co=5
"設(shè)置取消備份 禁止臨時文件生成
set nobackup
set noswapfile
" 為IdeaVim插件增加自動切換為英文輸入法的功能,
" idea 需要安裝 IdeaVimExtension plugin
set keep-english-in-normal
"設(shè)置匹配模式 類似當(dāng)輸入一個左括號時會匹配相應(yīng)的那個右括號
set showmatch
set hlsearch
set incsearch
set ignorecase
set smartcase
set history=3000000
set commentary
:set vb
set clipboard^=unnamed,unnamedplus
"set laststatus=2 "命令行為兩行
"set fenc=utf-8 "文件編碼
"set mouse=a "啟用鼠標(biāo)
"set ignorecase "忽略大小寫
set cursorline "突出顯示當(dāng)前行
"set cursorcolumn "突出顯示當(dāng)前列
set fdm=marker
set timeoutlen=1000
" 防止按leader鍵亂移動
nnoremap <SPACE> <nop>
nnoremap <SPACE>" ciw""<ESC>hp
"jk退出insert模式
"inoremap jk <ESC>
"inoremap jj <ESC>
"inoremap <esc> <nop>
""""""""""""""""""""""""""""""""""""""基礎(chǔ)篇""""""""""""""""""""""""""""""""""""""
"--普通模式下使用回車鍵,向下/向上 增加一行
nmap <CR> o<Esc>
"nmap <S-Enter> O<Esc>
"debug神器
nmap <C-j> :action StepOver<CR>
nmap <C-k> :action Resume<CR>
nmap <C-h> :action StepOut<CR>
nmap <C-l> :action ForceStepInto<CR>
"移動專精
nnoremap <C-e> %
vmap <C-k> <C-y>
vmap <C-h> 10zh
vmap <C-l> 10zl
noremap vin vi"
"移動專精
"imap <C-j> <Esc>ja
"imap <C-k> <Esc>ka
"imap <C-h> <Esc>10zhi
"imap <C-l> <Esc>l10zla
imap <C-j> <Down>
imap <C-k> <Up>
imap <C-h> <Left>
imap <C-l> <Right>
noremap <S-Enter> <Esc>o
imap <S-Enter> <Esc>o
"imap <C-i> <CR>
"左右視野
nnoremap zH 50zh
nnoremap zL 50zl
"^$符號太難按了
map gh ^
map gl $
"代碼提示
"imap <C-n> <ESC>:action HippieCompletion<CR>a
"imap <C-p> <ESC>:action HippieBackwardCompletion<CR>a
xnoremap < <gv
xnoremap > >gv
""""""""""""""""""""""""""""""""""""""重構(gòu)篇""""""""""""""""""""""""""""""""""""""
" 設(shè)置leader鍵"
let mapleader=" "
"元素名稱重構(gòu)
noremap <Space>re ^W:action RenameElement<CR>
"移動重構(gòu)
noremap <Space>mv :action Move<CR>
"成員變量轉(zhuǎn)換為靜態(tài)變量重構(gòu)(配合移動重構(gòu)有奇效)
noremap <Space>ms :action MakeStatic<CR>
"靜態(tài)變量轉(zhuǎn)換為成員變量重構(gòu)
noremap <Space>ci :action ConvertToInstanceMethod<CR>
"內(nèi)聯(lián)重構(gòu)(合并無效變量無效方法)
noremap <Space>il :action Inline<CR>
"抽取方法重構(gòu)
noremap <Space>em :action ExtractMethod<CR>
"抽取接口重構(gòu)
noremap <Space>ei :action ExtractInterface<CR>
"字段的訪問限制
noremap <Space>ef :action EncapsulateFields<CR>
"引入臨時變量
noremap <Space>iv :action IntroduceVariable<CR>
"引入常量
noremap <Space>ic :action IntroduceConstant<CR>
"引入方法參數(shù)
noremap <Space>ip :action IntroduceParameter<CR>
"引入字段
noremap <Space>if :action IntroduceField<CR>
"引入?yún)?shù)對象(指定參數(shù))
noremap <Space>po :action IntroduceParameterObject<CR>
"方法下放到子類
noremap <Space>pd :action MemberPushDown<CR>
"方法上移到父類
noremap <Space>pu :action MembersPullUp<CR>
"文件名稱重構(gòu)
noremap <Space>RF :action RenameFile<CR>
"修改方法簽名
noremap <Space>cs :action ChangeSignature<CR>
"抽取類
noremap <Space>ec :action ExtractClass<CR>
"匿名類到內(nèi)部類
noremap <Space>ai :action AnonymousToInner<CR>
""""""""""""""""""""""""""""""""""""""跳轉(zhuǎn)篇""""""""""""""""""""""""""""""""""""""
"特殊變量跳轉(zhuǎn)
nnoremap <Space>ts mm`m:action GotoSymbol<CR>
"url地址跳轉(zhuǎn)
noremap <Space>tu mm`m:action Toolkit.GotoService<CR>
"動作跳轉(zhuǎn)
nnoremap <Space>ta mm`m:action GotoAction<CR>
"文件跳轉(zhuǎn)
noremap <Space>tf mm`m:action GotoFile<CR>
"測試類跳轉(zhuǎn)
noremap <Space>tt mm`m:action GotoTest<CR>
"java類跳轉(zhuǎn)
noremap <Space>tc mm`m:action GotoClass<CR>
"文本跳轉(zhuǎn)
noremap <Space>tp mm`m:action FindInPath<CR>
"跳轉(zhuǎn)下個報錯處
noremap <Space>ne mm`m:action GotoNextError<CR>
"跳轉(zhuǎn)上個報錯處
noremap <Space>pe mm`m:action GotoPreviousError<CR>
"從子類方法跳到父類的方法
noremap <Space>gs mm`m:action GotoSuperMethod<CR>
"跳到方法實現(xiàn)
noremap <Space>gi mm`m:action GotoImplementation<CR>
"跳轉(zhuǎn)到下個改動處
noremap <Space>g, mm`m:action JumpToLastChange<CR>
"跳轉(zhuǎn)到上個改動處
noremap <Space>g; mm`m:action JumpToNextChange<CR>
"最近查看文件間相互跳轉(zhuǎn)
noremap <Space>rf mm`m:action RecentFiles<CR>
"最近改動文件間相互跳轉(zhuǎn)
noremap <Space>rF mm`m:action RecentChangedFiles<CR>
"項目之間的跳轉(zhuǎn)(上一個)
noremap <Space>nw :action NextProjectWindow<CR>
"項目之間的跳轉(zhuǎn)(下一個)
noremap <Space>pw :action PreviousProjectWindow<CR>
"跳轉(zhuǎn) 需要安裝AceJump插件
noremap <Space>tj mm`m:action AceWordAction<CR>
noremap <Space>jp mm`m:action AceDeclarationAction<CR>
""""""""""""""""""""""""""""""""""""""SQL篇""""""""""""""""""""""""""""""""""""""
"sql提交
noremap <Space>sc :action Console.Transaction.Commit<CR>
"sql回滾
noremap <Space>sr :action Console.Transaction.Rollback<CR>
"sql執(zhí)行
noremap <Space>se :action Console.Jdbc.Execute<CR>
"sql執(zhí)行計劃
noremap <Space>ep :action Console.Jdbc.ExplainPlan<CR>
"sql-raw執(zhí)行計劃
noremap <Space>EP :action Console.Jdbc.ExplainPlan.Raw<CR>
"打開數(shù)據(jù)庫日志窗口,前提安裝了MyBatis Log Plugin插件
noremap <Space>sl :action TailMyBatisLog0<CR>
noremap <Space>SL :action ActivateMyBatisLogToolWindow<CR>
noremap <Space>AL :action TailMyBatisLog0<CR>:action ActivateMyBatisLogToolWindow<CR>
""""""""""""""""""""""""""""""""""""""運行篇""""""""""""""""""""""""""""""""""""""
"設(shè)置運行配置
nnoremap <Space>rc :action RunConfiguration<CR>
"debug上次運行的類
noremap <Space>dd :action Debug<CR>
"統(tǒng)計單元測試覆蓋率運行上個類
noremap <Space>cc :action Coverage<CR>
"統(tǒng)計單元測試覆蓋率運行當(dāng)前(now)類
noremap <Space>cn :action RunCoverage<CR>
"項目停止運行
noremap <Space>sp :action Stop<CR>
""""""""""""""""""""""""""""""""""""""Debug篇""""""""""""""""""""""""""""""""""""""
"開啟或關(guān)閉當(dāng)前行斷點
noremap <Space>bp :action ToggleLineBreakpoint<CR>
"debug時快速計算表達式
noremap <Space>qe :action QuickEvaluateExpression <CR>
"debug強制返回
noremap <Space>fr :action Debugger.ForceEarlyReturn<CR>
"添加新的debug觀察
noremap <Space>daw :action Debugger.AddToWatch<CR>
"debug強制運行到光標(biāo)處
noremap <Space>fc :action ForceRunToCursor<CR>
"安裝了JRebel且在JRebel debug下才生效,熱更新
noremap <Space>hs :action Hotswap<CR>
"安裝了JRebel的debug運行
noremap <Space>DD :action JRebel Debug<CR>
"去除所有斷點在當(dāng)前文件中
noremap <Space>rab :action Debugger.RemoveAllBreakpointsInFile<CR>
"去除所有斷點
noremap <Space>raB :action Debugger.RemoveAllBreakpoints<CR>
"彈出幀
noremap <Space>df :action Debugger.PopFrame<CR>
"顯示當(dāng)前斷點位置
noremap <Space>pp :action ShowExecutionPoint<CR>
"流追蹤技術(shù)
noremap <Space>ds :action StreamTracerAction<CR>
"啞斷點技術(shù)
noremap <Space>mb :action XDebugger.MuteBreakpoints<CR>
"條件斷點編輯
noremap <Space>eb :action EditBreakpoint<CR>
""""""""""""""""""""""""""""""""""""""窗口篇""""""""""""""""""""""""""""""""""""""
"激活maven窗口
noremap <Space>AM :action ActivateMavenToolWindow<CR>
"激活database窗口
noremap <Space>AD :action ActivateDatabaseToolWindow<CR>
"激活todo的窗口
noremap <Space>AT :action ActivateTODOToolWindow<CR>
"激活Favorites的窗口
noremap <Space>AF :action ActivateFavoritesToolWindow<CR>
"激活project的窗口
noremap <Space>AP :action ActivateProjectToolWindow<CR>
"激活git的窗口
noremap <Space>AG :action ActivateVersionControlToolWindow<CR>
"激活服務(wù)的窗口
noremap <Space>AS :action ActivateServicesToolWindow<CR>
"激活Breakpoints的窗口.
noremap <Space>AB :action ViewBreakpoints<CR>
"激活Rest的窗口(需要安裝插件)
noremap <Space>AR :action ActivateRestServicesToolWindow<CR>
"激活debug的運行窗口
nnoremap <Space>wd :action ActivateDebugToolWindow<CR>
"激活run的運行窗口
nnoremap <Space>wr :action ActivateRunToolWindow<CR>
"隱藏窗口(windows hide)
nnoremap <Space>wh :action HideActiveWindow<CR>
"窗口最大化windows max
nnoremap <Space>mm :action MaximizeToolWindow<CR>
"隱藏所有窗口
noremap <Space>ha :action HideAllWindows<CR>
noremap <Space><Space> :action HideAllWindows<CR>
"激活窗口,選中當(dāng)前位置
noremap <Space>si :action SelectInProjectView<CR>
""""""""""""""""""""""""""""""""""""""信息篇""""""""""""""""""""""""""""""""""""""
"彈出警告信息
noremap <Space>ed :action ShowErrorDescription<CR>
"彈出類型信息
noremap <Space>ti :action ExpressionTypeInfo<CR>
"彈出參數(shù)信息
noremap <Space>pi :action ParameterInfo<CR>
"快速顯示當(dāng)前方法信息
noremap <Space>jd :action QuickJavaDoc<CR>
"彈出文件結(jié)構(gòu)信息
noremap <Space>fs mm`m:action FileStructurePopup<CR>
"顯示maven的依賴層級信息
noremap <Space>sd :action ShowUmlDiagram<CR>
"彈出方法調(diào)用層級信息
noremap <Space>ch :action CallHierarchy<CR>
"查找引用了當(dāng)前方法的文件信息
nnoremap <Space>fu :action FindUsages<CR>
"查找方法內(nèi)使用該變量的引用信息
nnoremap <Space>su :action ShowUsages<CR>
"彈出方法結(jié)構(gòu)信息
noremap <Space>mh :action MethodHierarchy<CR>
"彈出項目結(jié)構(gòu)信息
noremap <Space>ps :action ShowProjectStructureSettings<CR>
""""""""""""""""""""""""""""""""""""""項目篇""""""""""""""""""""""""""""""""""""""
"關(guān)閉項目
noremap <Space>cP :action CloseProject<CR>
noremap <Space>CP :action CloseProject<CR>
"打開項目
noremap <Space>oP :action OpenFile<CR>
noremap <Space>OP :action OpenFile<CR>
"新建項目
noremap <Space>nP :action NewProject<CR>
noremap <Space>NP :action NewProject<CR>
""""""""""""""""""""""""""""""""""""""實用工具篇""""""""""""""""""""""""""""""""
"代碼環(huán)繞
noremap <Space>sw :action SurroundWith<CR>
"整理代碼
noremap <Space>= :action ReformatCode<CR>
"彈出菜單
noremap <Space>sm :action ShowPopupMenu<CR>
"保存模板
noremap <Space>st :action SaveAsTemplate<CR>
"復(fù)制當(dāng)前文件的絕對路徑
noremap <Space>cap :action CopyAbsolutePath<CR>
"復(fù)制當(dāng)前文件名
noremap <Space>ccp :action CopyContentRootPath<CR>
"優(yōu)化導(dǎo)入
noremap <Space>oi :action OptimizeImports<CR>
"改變視圖
nnoremap <Space>cv :action ChangeView<CR>
"關(guān)閉到只剩當(dāng)前tab欄
noremap <Space>co :action CloseAllEditorsButActive<CR>
"g4文件生成代碼(需要安裝anltr4插件)
"noremap <Space>ag :action antlr.Generate<CR>:action antlr.Generate<CR>
"顯示字節(jié)碼
noremap <Space>bc :action ByteCodeViewer<CR>
"快速翻譯(需要安裝翻譯插件)
noremap <Space>qq :action $TranslateTextComponent<CR>
"替換翻譯(需要安裝翻譯插件)
noremap <Space>tr :action $TranslateAndReplaceAction<CR>
noremap <Space>gfu :action GenerateFullRestUrl<CR>
"添加到收藏文件
"noremap <Space>atf :action AddToFavorites<CR>
"復(fù)制文件元素
noremap <Space>cE :action CopyElement<CR>
"新建文件元素
noremap <Space>nE :action NewElement<CR>
"刪除當(dāng)前文件元素
noremap <Space>dE :action SafeDelete<CR>
nnoremap <Space>cp :action CheckinProject<CR>
"idea智能提示
nnoremap <Space><Space> :action ShowIntentionActions<CR>
"跳轉(zhuǎn)下個報錯處(這個與idea智能提示配起來,炒雞爽)
nnoremap <Space><CR> :action GotoNextError<CR>
"新建類,比nE快
noremap <Space>nc :action NewClass<CR>
"打開項目設(shè)置
noremap <Space>ps :action ShowProjectStructureSettings<CR>
"露出文件夾
noremap <Space>ri :action RevealIn<CR>
"代碼生成
noremap <Space>ga :action Generate<CR>
"刪除未修改的tab
noremap <Space>cu :action CloseAllUnmodifiedEditors<CR>
"Codota查找類似代碼,需要提前安裝Codota插件
noremap <Space>oc :action OpenCodotaSearch<CR>
"Codota激活窗口,需要提前安裝Codota插件
noremap <Space>AC :action ActivateCodotaToolWindow<CR>
"Codota激活窗口,需要提前安裝Codota插件
noremap <Space>cl :action CodotaLeanSearchCrossRefAction<CR>
"CSDN萬能工具,需要提前安裝CSDN插件
noremap <Space>csdn :action SearchByCSDN<CR>
"大小寫,駝峰,下劃線,中劃線轉(zhuǎn)換
noremap <Space>uu :action de.netnexus.CamelCasePlugin.ToggleCamelCase<CR>
"替換
noremap <Space>rp :action ReplaceInPath<CR>
"查看代碼git作者
noremap <Space>us :action Annotate<CR>
"打開ddl語句
noremap <Space>dl :action DatabaseView.OpenDdlInConsole<CR>
"大小寫切換,必須要先安裝插件
noremap <Space>u :action de.netnexus.CamelCasePlugin.ToggleCamelCase<CR>
" 顯示git菜單
nnoremap <Space>gm :action Git.Menu<CR>
nnoremap <Space>te :action ActivateTerminalToolWindow<CR>
" 一鍵提交到test環(huán)境
nnoremap <Space>mrt :action com.github.novotnyr.idea.gitlab.quickmr.CreateMergeRequestAction<CR>
" 一鍵提交到uat環(huán)境
nnoremap <Space>mru :action com.github.novotnyr.idea.gitlab.quickmr.CreateMergeRequestAction2<CR>
nnoremap <Space>ah :action swapClassAction<CR>oyum install sudo -y;yum install telnet -y;yum install unzip -y;<Esc>o<Esc>pV9kd
"nnoremap <Space>ah :action Artha"sHotRetransformCommandAction<CR>|:normal oyum install unzip -y;<CR>p"+yy
nnoremap <Space>aw :action ArthasWatch<CR>
nnoremap <Space>at :action ArthasTrace<CR>
nnoremap <Space>dc :action ArthasJadCommandAction<CR>
nnoremap <Space>ss :action com.jetbrains.plugins.remotesdk.console.RunSshConsoleAction<CR>
nnoremap <Space>dn F,vt,d
nnoremap <Space>db T(vf,ld
nnoremap <Space>dm F,vt)d
nnoremap <Space>vn F,vt,
nnoremap <Space>vb T(vf,l
nnoremap <Space>vm F,vt)
nnoremap <Space>ex va{<Bar>:action EditorSelectWord<CR>:action EditorSelectWord<CR>:action EditorSelectWord<CR>:action EditorSelectWord<CR>
以上就是idea使用Vim的技巧大全分享的詳細內(nèi)容,更多關(guān)于idea使用Vim的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MyBatis的xml中字符串類型判空與非字符串類型判空處理方式(最新整理)
本文給大家介紹MyBatis的xml中字符串類型判空與非字符串類型判空處理方式,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2025-08-08
JavaWeb 使用Session實現(xiàn)一次性驗證碼功能
這篇文章主要介紹了JavaWeb 使用Session實現(xiàn)一次性驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
SpringBoot中使用MyBatis-Plus實現(xiàn)分頁接口的詳細教程
MyBatis-Plus是一個MyBatis的增強工具,在MyBatis的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生,在SpringBoot項目中使用MyBatis-Plus可以大大簡化分頁邏輯的編寫,本文將介紹如何在 SpringBoot項目中使用MyBatis-Plus實現(xiàn)分頁接口2024-03-03
SpringCloud超詳細講解微服務(wù)網(wǎng)關(guān)Gateway
這篇文章主要介紹了SpringCloud Gateway微服務(wù)網(wǎng)關(guān),負載均衡,熔斷和限流,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
數(shù)組重排序(如何將所有奇數(shù)都放在所有偶數(shù)前面)的深入分析
本篇文章是對數(shù)組重排序(如何將所有奇數(shù)都放在所有偶數(shù)前面)的方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06
Mybatis如何從數(shù)據(jù)庫中獲取數(shù)據(jù)存為List類型(存為model)
這篇文章主要介紹了Mybatis如何從數(shù)據(jù)庫中獲取數(shù)據(jù)存為List類型(存為model),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

