我的.vimrc
里设置的是关于C++
(.cpp
)的缩进:
set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set cindent
这样写C++
程序时缩进就舒服多了。
但是我现在想用Python
(.py
)写程序,缩进没有C++
方便,比如冒号的下一行就不能自动缩进一个Tab
。
想请教一下如何配置才能让Vim
的缩进适合Python
与C++
?谢谢!
略显复杂些的配置
"自动缩进 set autoindent "类似C语言风格的缩进 set cindent "智能缩进:每一行都和前一行有相同的缩进量, "同时这种缩进形式能正确的识别出花括号,当遇到右花括号(}), "则取消缩进形式。此外还增加了识别C语言关键字的功能。 "如果一行是以#开头的(比如宏),那么这种格式将会被特殊对待而不采用缩进格式 set smartindent "For Python Programmers autocmd FileType python set textwidth=79 " PEP-8 Friendly "把输入的tab自动转换成空格,Python用户必用~ set expandtab "一个tab键占据4个空格 set tabstop=4 "一开始,插入的就是4个空格,此时一旦你再按下一次tab,这次的四个空格就会和上次的四个空格组合起来变成一个制表符 set softtabstop=4 "每一级自动缩进的空格数 set shiftwidth=4 "根据文件类型设定缩进,覆盖掉默认的~ autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4 textwidth=79
另外即使配置如此 ,Python的缩进也并不是很理想。
比较好的选择是再使用一个插件 hynek/vim-python-pep8-indent
我不清楚哪个选项起的作用,但我是这么设置的,而且有效。在冒号后面回车会自动缩进4个空格。
set shiftwidth=4 set tabstop=4 set softtabstop=4 set expandtab set smarttab set autoindent
大概是因为我在windows下用的gvim?有个behave mswin,没有深究是什么意思。
source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin "键盘映射 map <F4> :!python % <CR> map <F5> :!tcc -run % <CR> "按F6 编译当前文件 map <F6> :!gcc % -g -o %<.exe <CR> map <F7> :!%<.exe <CR> map <F8> :call Run() <CR> func Run() exec "w" exec "!gcc % -g -o %<.exe" exec "!%<.exe" endfunc " 插入匹配括号 inoremap ( ()<LEFT> inoremap [ []<LEFT> inoremap { {}<LEFT> inoremap < <><LEFT> inoremap " ""<LEFT> inoremap ' ''<LEFT> "常用配置 set nu set nocompatible set fileencodings=utf-8,gbk set guifont=Courier_New:h10:cANSI "缩进定义 set shiftwidth=4 set tabstop=4 set softtabstop=4 set expandtab set smarttab set autoindent set nobackup "用了一个插件AutoComplPop,最长补全 set completeopt=longest,menu