开发者社区> 问答> 正文

Vim如何配置Python的缩进?

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

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

展开
收起
a123456678 2016-03-09 18:33:48 5503 0
2 条回答
写回答
取消 提交回答
  • et shiftwidth=4 "这个量是每行的缩进深度,一般设置成和tabstop一样的宽度"
    set tabstop=4 "设置Tab显示的宽度,Python建议设置成4"

    "刚才说过Tab和空格是不同的,虽然你可以在自己的代码中全部使用Tab"
    "但是如果你将你的代码分享给使用空格的朋友,就会带来很多麻烦"
    "那么设置下面这行就可以将Tab自动展开成为空格"
    set expandtab
    "如果只想在Python文件中将Tab展开成空格,就改换成下面这句"
    autocmd FileType python set expandtab

    "上面的一些配置已经可以让你避免编译出现错误的问题了"

    "不过下面还有一些配置是建议同学们根据需要加上的"
    set smartindent "智能缩进"
    set cindent "C语言风格缩进"
    set autoindent "自动缩进"

    2019-07-17 18:56:32
    赞同 展开评论 打赏
  • "自动缩进
    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

    2019-07-17 18:56:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载