Vim设置括号自动补全和快速跳出

一、设置括号自动补全

inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR>}<ESC>O

其中花括号{设置,自动补全并换行缩进,这在写函数的时候或语句块的时候特别有用。

注:inoremap { {}<ESC>i<CR><ESC>V<O

这句在我的环境中有问题,后来改为

inoremap { {<CR>}<ESC>O

参考:

http://blog.csdn.net/dark_fire/article/details/41970477

http://www.cnblogs.com/lovepurple/p/3373959.html

二、设置自动跳出自动补全的括号

复制代码
"设置跳出自动补全的括号
func SkipPair()  
    if getline('.')[col('.') - 1] == ')' || getline('.')[col('.') - 1] == ']' || getline('.')[col('.') - 1] == '"' || getline('.')[col('.') - 1] == "'" || getline('.')[col('.') - 1] == '}'  
        return "\<ESC>la"  
    else  
        return "\t"  
    endif  
endfunc  
" 将tab键绑定为跳出括号  
inoremap <TAB> <c-r>=SkipPair()<CR>
复制代码

 参考:http://blog.csdn.net/larrygoode/article/details/12377977

三、按键映射

主要有map,noremap,unmap,mapclear四个 命令,并且有四个前缀i,c,n,v修饰

 

nore

表示非递归,见下面的介绍

n

表示在普通模式下生效

v

表示在可视模式下生效

i

表示在插入模式下生效

c

表示在命令行模式下生效

 

map

表示递归的映射

unmap

表示删除某个映射

mapclear

表示清楚映射

 

常用命令:

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

参考:http://blog.163.com/lgh_2002/blog/static/44017526201111503947906/

 

posted @   我是老邱  阅读(23512)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示