玩蛇网提供最新Python编程技术信息以及Python资源下载!

适合Python应用的Vim缩进调试方法

我的.vimrc里设置的是关于C++(.cpp)的缩进:

set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set cindent

这样写C++程序时缩进就舒服多了。
但是我现在想用Python(.py)写程序,缩进没有C++方便,比如冒号的下一行就不能自动缩进一个Tab
想请教一下如何配置才能让Vim的缩进适合PythonC++?谢谢!

我不清楚哪个选项起的作用,但我是这么设置的,而且有效。在冒号后面回车会自动缩进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

略显复杂些的配置

"自动缩进
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

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd20332.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 14时27分41秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules