如何配置vim-autopairs跳过单词前的闭合双引号?
解决vim-autopairs在单词前自动补全双引号的问题
我之前也被这个问题烦过好一阵!vim-autopairs默认的引号补全规则有时候太“积极”,刚好你遇到的双引号在单词前自动补全的情况,完全可以通过自定义规则来精准解决,而且不会影响单引号的正常功能。
直接在你的.vimrc或者init.vim里添加下面这段配置就行:
" 自定义双引号配对规则:仅当前面不是单词字符时才自动补全闭合引号 let g:autopairs_rules = [ \ {'open': '"', 'close': '"', 'filetypes': ['*'], 'condition': function('CheckNoWordBefore')}, \ ] function! CheckNoWordBefore() " 获取光标前一个字符(注意col('.')-2是因为光标当前在输入位置,前一位是col-2) let prev_char = getline('.')[col('.')-2] " 如果前一个字符是单词字符(字母、数字、下划线),返回0(不触发补全) " 否则返回1(正常触发补全) return !prev_char =~# '\w' endfunction
简单解释下这段配置:
- 我们重新定义了双引号的配对规则,给它加了一个
condition(条件)判断函数CheckNoWordBefore。 - 当你输入双引号时,插件会先检查光标前的字符:如果是字母、数字或者下划线这类单词字符,就不会自动插入闭合的双引号;如果是空格、标点符号或者行首位置,依然会正常补全闭合引号,完全符合日常输入习惯。
- 单引号的默认配对规则没有被修改,所以还是会保持你之前正常的使用状态。
配置完之后重启Vim或者执行:source %生效,之后在单词前输入双引号就不会自动补全闭合的那个了,不用再按退格键删除,舒服多了!
内容的提问来源于stack exchange,提问作者jedi
相关产品推荐
相关产品推荐

