定风波

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。

ideaVim配置

我的配置

#设置一个前缀
let mapleader=','

#映射按键 ,r 为执行idea 命令ReformatCode + 回车   <CR> 为回车命令
noremap <leader>r :action ReformatCode<CR>
noremap <leader>k gt
noremap <leader>j gT
noremap <leader>h :action Back<CR>
noremap <leader>l :action Forward<CR>
noremap <leader>v :action VimVisualToggleBlockMode<CR>
noremap <leader>fs :action FileStructurePopup<CR>

noremap <leader>ga :action GotoAction<CR>
noremap <leader>gc :action GotoClass<CR>
noremap <leader>gd :action GotoDeclaration<CR>
noremap <leader>gi :action GotoImplementation<CR>
noremap <leader>gs :action GotoSuperMethod<CR>
noremap <leader>gt :action GotoTest<CR>

# 输入/ 进行查找
noremap / :action Find<CR>
# acejump 配置 ,输入f 进行查找
noremap f :action AceAction<CR>
noremap F :action AceTargetAction<CR>

说明

ideavim 的配置文件位置为:

C:\Users\Administrator\.ideavimrc

具体有那些可以映射的内容可以在idea 中查询
在idea 的editor 中输入以下命令可以得到一个actionlist 的列表

#获取所有的操作名称
:actionlist 
# 根据pattern 查找action
:actionlist [pattern]
# 执行一个action
:action {name}

刷新ideavimrc 的配置:
在idea 中执行 :

source C:\Users\Administrator\.ideavimrc

vim 键位映射说明

参考: https://blog.csdn.net/smstong/article/details/20475223

简单说明下:
vim 中的键位映射其实只有map ,但是可以在map 前加一些前缀,来实现不同的模式及功能
这些前缀有:

前缀 说明
nore 表示非递归
n 表示在普通模式下生效
v 表示在可视模式下生效|
i 表示在插入模式下生效
c 表示在命令行模式下生效

如 imap 在insert 模式下进行键位映射

# 在insert 模式下把a 映射为不 (输入a 得到b )
:imap a b
#就只在插入(insert)模式下生效 
inoremap a b 
#只在visual模式下生效
vnoremap a b 
#就在normal模式下(狂按esc后的模式)生效
nnoremap a b

nore 解释:

可以看出,map完成的命令映射的功能,即把一个命令映射为另一个命令或字符序列。另外,map会递归进行,也就是说如果映射结果是个命令,则继续执行这个结果命令。如下

:imap a b
:imap b c

然后在insert模式下输入a,得到输出结果不是b,而是c。这种方式会带来经典的死循环问题,如下:

:imap a b
:imap b c
:imap c a

好在vim自身能够识别这种死循环,会提示E223: recursive mapping。但是实际工作中,一定要注意避免这种死循环的出现。vim也为我们提供了避免的方式,那就是:noremap命令,如下:

:inoremap a b
:inoremap b c
:inoremap c a

使用:noremap进行映射时,映射结果会直接当作字符串输出,不在当作命令来解释。所以上述映射的结果是,输入a得到的是b,输入b得到的是c,输入c得到的是a。

清除键位映射

  • unmap
    unmap后面跟着一个按键组合,表示删除这个映射。
    :unmap c
    那么在map生效模式下,c不再被映射到a上。
    同样,unmap可以加各种前缀,表示影响到的模式。
  • mapclear
    mapclear直接清除相关模式下的所有映射。
    同样,mapclear可以加各种前缀,表示影响到的模式。

这里列出常用的一些map命令,默认map命令影响到普通模式和可视模式。

:map :noremap :unmap :mapclear  
:nmap :nnoremap :nunmap :nmapclear  
:vmap :vnoremap :vunmap :vmapclear  
:imap :inoremap :iunmap :imapclear  
:cmap :cnoremap :cunmap :cmapclear
点赞

发表评论

电子邮件地址不会被公开。