perl vim {}光标在扩展时的位置

时间:2013-10-21 09:43:11

标签: perl vim

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

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

{|}

当你按Enter键时它也需要你

{
|}

无论如何都要让它扩展就绪,以便在使用大括号时进行类型调整。那么输入会正常扩展到这个吗?

{
    |
}

3 个答案:

答案 0 :(得分: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个空格后的下一行。继续编写代码。完成后,按“回车”转到新行并输入“}”,然后按“回车”,它将正确缩进结束的花括号。

如果这不能解决你的问题,至少这会给你一个提示,告诉你如何通过在~/.vimrc

进一步搜索来实现它

答案 1 :(得分:1)

我不使用该插件,如果它没有为您提供配置,您可以尝试使用此映射为您的文件类型。假设你有自动注册:

inoremap <expr><CR> getline('.')[getpos('.')[2]:] == "}"?"<CR>":"<CR><ESC>O"

答案 2 :(得分:1)

专门针对delimitMate

let g:delimitMate_expand_cr = '<CR>' 

实际上正确的版本是

let delimitMate_expand_cr = 1
au FileType mail let b:delimitMate_expand_cr = 1