-1

我在 vim 中使用 delimitmate 括号自动完成。

将它用于 {} 时,它会正确产生

{|}

当你按下回车键时它也会带你

{
|}

无论如何让它扩展准备好输入,以便在使用大括号时像这样。那么enter通常会扩展到这个吗?

{
    |
}
4

3 回答 3

1

专门用于 delimitMate

let g:delimitMate_expand_cr = '<CR>' 

实际上正确的版本是

let delimitMate_expand_cr = 1
au FileType mail let b:delimitMate_expand_cr = 1
于 2013-10-21T12:06:13.577 回答
1

在其中创建~/.vimrc并放入以下行:

" autoindent
autocmd FileType perl set autoindent|set smartindent
autocmd FileType python set autoindent|set smartindent

" 4 space tabs
autocmd FileType perl set tabstop=4|set shiftwidth=4|set expandtab|set softtabstop=4
autocmd FileType python set tabstop=4|set shiftwidth=4|set expandtab|set softtabstop=4

" show matching brackets
autocmd FileType perl set showmatch

" check perl code with :make
autocmd FileType perl set makeprg=perl\ -c\ %\ $*
autocmd FileType perl set errorformat=%f:%l:%m
autocmd FileType perl set autowrite

这适用于 .pl 和 .py 文件。

输入“{”,回车,4个空格后移动到下一行。继续编写您的代码。完成后,按“enter”进入新行并输入“}”,然后按“enter”,它将正确缩进右花括号。

如果这不能解决您的问题,那么至少这会提示您如何通过进一步搜索来完成它~/.vimrc

于 2013-10-21T09:58:19.473 回答
1

我不使用那个插件,如果它没有为你提供配置,你可以试试这个映射为你的文件类型。假设你有自动缩进:

inoremap <expr><CR> getline('.')[getpos('.')[2]:] == "}"?"<CR>":"<CR><ESC>O"
于 2013-10-21T10:19:41.077 回答