如何配置 .vimrc 以使自动完成功能成为 Sublime Text 2 的一部分?

发布于 2024-12-22 18:40:50 字数 280 浏览 2 评论 0原文

我找到了有关自动完成括号的配置,

inoremap ' ''<Left>
inoremap " ""<Left>
inoremap { {}<Left>
inoremap ( ()<Left>

但是当我尝试删除“(”时,“)”仍然存在,但在 Sublime Text 2 中,它也会消失。那么我该如何配置 .vimrc 来做到这一点呢?

// 更新:得到了 vim-autoclose 插件,现在似乎可以工作了。

I've found configure about autocompleting brackets,

inoremap ' ''<Left>
inoremap " ""<Left>
inoremap { {}<Left>
inoremap ( ()<Left>

but when I tried to delete the '(', the ')' stays, but in Sublime Text 2, that would disappear too. So how can I configure .vimrc ro make that?

// Update: got the vim-autoclose plugin, seems work now.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自控 2024-12-29 18:40:50

如果你安装 surround.vim 你可以使用

inoremap ' ''<Left>
inoremap " ""<Left>
inoremap { {}<Left>
inoremap ( ()<Left>

imap <expr> <C-h> "\<C-\>\<C-n>x".((col('.')==col('
))?(""):("h"))."a"
imap <BS>  <C-h>
let s:pairsymbols={"'": "'",
            \      '"': '"',
            \      '{': '}',
            \      '(': ')',}
function! s:DelPair()
    let cnt=v:count1
    if col('
)==1
        let shiftline=(line('.')<line('
))
        normal! dd
        if shiftline
            normal! k
        endif
        normal! $
        if cnt>1
            execute 'normal '.(cnt-1).'x'
        endif
        return
    endif
    let curch=getline('.')[col('.')-1]
    if has_key(s:pairsymbols, curch)
        let oldchtick=b:changedtick
        if getline('.')[col('.')] is# s:pairsymbols[curch]
            normal! 2x
        else
            execute "normal \<Plug>Dsurround".s:pairsymbols[curch]
            if b:changedtick==oldchtick
                normal! x
            endif
        endif
    else
        normal! x
    endif
    if cnt>1
        execute 'normal '.(cnt-1).'x'
    endif
endfunction
nnoremap x :<C-u>call <SID>DelPair()<CR>

If you install surround.vim you can do this by using

inoremap ' ''<Left>
inoremap " ""<Left>
inoremap { {}<Left>
inoremap ( ()<Left>

imap <expr> <C-h> "\<C-\>\<C-n>x".((col('.')==col('
))?(""):("h"))."a"
imap <BS>  <C-h>
let s:pairsymbols={"'": "'",
            \      '"': '"',
            \      '{': '}',
            \      '(': ')',}
function! s:DelPair()
    let cnt=v:count1
    if col('
)==1
        let shiftline=(line('.')<line('
))
        normal! dd
        if shiftline
            normal! k
        endif
        normal! $
        if cnt>1
            execute 'normal '.(cnt-1).'x'
        endif
        return
    endif
    let curch=getline('.')[col('.')-1]
    if has_key(s:pairsymbols, curch)
        let oldchtick=b:changedtick
        if getline('.')[col('.')] is# s:pairsymbols[curch]
            normal! 2x
        else
            execute "normal \<Plug>Dsurround".s:pairsymbols[curch]
            if b:changedtick==oldchtick
                normal! x
            endif
        endif
    else
        normal! x
    endif
    if cnt>1
        execute 'normal '.(cnt-1).'x'
    endif
endfunction
nnoremap x :<C-u>call <SID>DelPair()<CR>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文