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

本文介绍了在Vim编辑器中如何设置括号自动补全及自动跳出的功能,包括圆括号、方括号、花括号等,并提供了具体的配置代码。此外,还介绍了Vim中的按键映射命令,如map、noremap等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、设置括号自动补全

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.youkuaiyun.com/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.youkuaiyun.com/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/

 

转载于:https://www.cnblogs.com/songdechiu/p/5844073.html

<think>好的,用户想在Neovim中使用LazyVim添加括号自动补全。我得先回忆一下LazyVim的配置方式。LazyVim是一个基于Lazy.nvim的配置框架,所以应该通过插件管理来添加相关功能。 首先,自动补全括号通常需要插件,比如nvim-autopairs。用户可能已经安装了LazyVim,但需要确认是否已经包含这个插件。如果默认没有,就需要手动添加。 接下来,我需要考虑如何在LazyVim的配置中添加这个插件。LazyVim插件配置通常在lua/plugins目录下的文件中。用户可能需要创建一个新的lua文件,或者编辑现有的文件来添加配置。 然后,具体插件安装方法。查找nvim-autopairs的GitHub仓库,找到正确的仓库地址,通常是windwp/nvim-autopairs。然后按照Lazy.nvim的规范编写插件配置,包括setup函数的调用。 另外,可能需要检查是否有其他插件冲突,比如自动补全引擎如nvim-cmp,是否需要与autopairs集成。有些插件需要额外的配置才能一起工作,比如设置映射或者在cmp的配置中添加处理。 用户可能对Lua配置不熟悉,所以需要给出具体的配置示例,并说明应该放在哪个目录下的哪个文件中。同时,提醒用户运行:Lazy sync来安装插件,以及可能的后续配置步骤,比如如何自定义按键或者调整补全行为。 还要考虑到用户可能遇到的一些常见问题,比如插件未正确加载、配置错误等,可能需要建议他们检查错误日志,或者确认插件的正确性。 最后,是否需要推荐其他类似的插件,比如mini.pairs,作为替代方案,让用户有更多选择。同时,确保步骤清晰,适合不同层次的用户理解。</think>在 LazyVim(基于 Neovim 的现代化配置框架)中添加括号自动补全功能,推荐使用 `nvim-autopairs` 插件。以下是具体步骤: --- ### 1. **添加插件配置** 在你的 LazyVim 配置目录 (`~/.config/nvim/lua/plugins/`) 中新建一个 Lua 文件(如 `autopairs.lua`),添加以下内容: ```lua return { "windwp/nvim-autopairs", event = "InsertEnter", config = function() require("nvim-autopairs").setup({ -- 可选自定义配置(默认配置通常足够用) check_ts = true, -- 根据 Treesitter 语法决定是否补全 disable_filetype = { "TelescopePrompt" }, -- 在某些文件类型中禁用 }) end } ``` --- ### 2. **与自动补全引擎集成**(如 `nvim-cmp`) 如果你使用了 `nvim-cmp`(LazyVim 默认安装),需要添加以下配置确保兼容性。在 `~/.config/nvim/lua/config/cmp.lua` 或类似文件中添加: ```lua local cmp_autopairs = require('nvim-autopairs.completion.cmp') local cmp = require('cmp') cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done()) ``` --- ### 3. **生效配置** 保存文件后,重启 Neovim 并执行 `:Lazy sync` 安装插件。之后在插入模式下输入 `(`、`{` 等符号时会自动补全。 --- ### 可选高级配置 - **自定义符号映射**:在 `setup` 函数中添加 `pairs` 配置,例如: ```lua setup({ pairs = { ["'"] = "'", ['"'] = '"', ["("] = ")", ["["] = "]", ["{"] = "}", } }) ``` - **禁用特定符号**:通过 `disable_in_macro = true` 等选项控制行为。 --- ### 替代方案:`mini.pairs` LazyVim 内置了 `mini.pairs`(轻量级自动补全),若未禁用默认配置可直接使用。若需手动启用,在配置文件中添加: ```lua return { "echasnovski/mini.pairs", enabled = true } ``` --- 通过以上步骤,你可以在 LazyVim 中高效实现括号自动补全。如果遇到问题,可通过 `:checkhealth` 检查插件状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值