我在 vim 中使用 delimitmate 括号自动完成。
将它用于 {} 时,它会正确产生
{|}
当你按下回车键时它也会带你
{
|}
无论如何让它扩展准备好输入,以便在使用大括号时像这样。那么enter通常会扩展到这个吗?
{
|
}
专门用于 delimitMate
let g:delimitMate_expand_cr = '<CR>'
实际上正确的版本是
let delimitMate_expand_cr = 1
au FileType mail let b:delimitMate_expand_cr = 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
我不使用那个插件,如果它没有为你提供配置,你可以试试这个映射为你的文件类型。假设你有自动缩进:
inoremap <expr><CR> getline('.')[getpos('.')[2]:] == "}"?"<CR>":"<CR><ESC>O"