今天把windows下的python代码传到服务器上,结果莫名其妙的报了一堆indent的错误

网上建议说用: python -m tabnanny filename.py 查一下

然后就用space把有问题的行的tab都换了,程序代码一点没改,就好了

不明白,为甚啊?于是搜了下~

发现PEP-8上说:Spaces are the preferred indentation method.

//PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment

其实就是说,有些人的编辑器tab是空8个space,有些人的tab是空4个space,并且有些编辑器对tab的显示各不相同,如果tab和space混用了看起来可能

在python2中可以使用-t选项,它就会检查哪些地方混用了tab和space,并提出警告

当用-tt选项的时候,检查的要求会更严格,警告就会变成错误

不过如果已经出现了这种混用的错误,暂时我还木有找到什么好办法快速更正诶,只能重新一个个space的输入

******************************************************************************

昨天的问题有了解决方法

如果遇到:unexpected indent

或者:unindent does not match any outer indentation level

那么原因是,你的源文件里混用了space和tab

既然PEP-8建议说使用space,但是我们又不想一个space一个space的输入

那么就让vim把我们的tab自动转换为space,设置方法如下:

(什么叫做设置?,就是说让你修改用户目录下的.vimrc文件。没有这个文件?那就touch建一个)

set expandtab        用space替代tab的输入

%ret! 4                 每个tab用4个space替代

其他一些设置还可以有:

set tabstop=4        设定tab宽度为4个字符

set shiftwidth=4     设定自动缩进为4个字符

set noexpandtab      不用space替代tab的输入

设置成这样以后,当你tab缩进一个,然后再backspace往前删的时候,你会发现你的光标是一个space一个space的往前跳,而不是一个tab一个tab的跳了

这说明你刚刚输入的tab其实都是space

python-tab还是space?的更多相关文章

  1. Linux python <tab>自动补全

    为Python添加交互模式下TAB自动补全以及命令历史功能. 1.获取python目录 [root@localhost ~]# python Python 2.6.6 (r266:84292, Jul ...

  2. python tab补全

    一.python tab补全 前提:tab补全先检查readline包是否安装,未安装通过yum安装即可 [root@CentOS_11 day01]# rpm -qa |grep readliner ...

  3. Python tab 命令补全,以及 vim 补全

    在python 命令行中,使用补全 python 查看 packages 的目录 可用 sys.path 查看. /usr/lib/python2.7/site-packages vim tab.py ...

  4. eclipse config 2 tab -&gt; space

    编码规范要求不同意使用tab,可是又要有4个字符的缩进,连点4次space,这不是程序猿的风格 来看看 eclipse 设置一次tab像space的转换 例如以下操作 Window->Prefe ...

  5. python <tab>自动补全

    1.获取python目录[我使用的是64位ubuntu系统] [~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] ...

  6. Python tab键自动补齐

    1.进入root家目录  建立.tab文件 .tab文件内容如下: ############################################## import sys import r ...

  7. unbtun python tab补全

    在使用python的时候有时候总是忘记很多代码,这个是作为程序袁最头疼的事情,本人也是刚刚接触python,这几天也是用到这块,所以记录下来,已被需要时能够找到. 我的系统是:  w@w:~$ una ...

  8. python tab 自动补全

    学习python,经常要使用python命令行查找一些不熟悉的使用方法等等,但是python命令行下没有自带tab补全的功能,看见别人写了tab,可以解决特此记下,以备后用 1.创建tab.py文件, ...

  9. Mac或者linux系统自动加载python tab补全功能

    因为mac OS属于类unix系统,所以基本和linux系统使用相差不大,只是用户登陆时自动执行环境变量文件的区别 mac系统: ShanedeMBP:login_api shane$ vi ~/.b ...

  10. atom超快替换文件中的tab到space

    找到开源的插件代码里缩进全部用的是tab,但公司内部的缩进要求是用space,所以需要将所有的tab替换成space. 在Atom编辑器里,选中所有内容后,点击 Edit - Lines - Auto ...

随机推荐

  1. 1. Two Sum I & II & III

    1. Given an array of integers, return indices of the two numbers such that they add up to a specific ...

  2. css 伪元素分享!!!

    最近接触到的css 伪元素觉得还算不错 分享下: 1.清楚内盒浮动设置: ;} .back_list ul:after{;visibility: hidden;}/*清楚内盒浮动设置*/ 2.伪元素a ...

  3. C++迟后联编和虚函数表

    先看一个题目: class Base { public: virtual void Show(int x) { cout << "In Base class, int x = & ...

  4. Ext4 ComboBox组件使用

     先来看例子: Ext.define('schoolModel', { extend: 'Ext.data.Model', fields: [{ name: 'id', type: 'string' ...

  5. .Net Core 跨平台系列之环境部署

    前言 作为一名.NET程序员,很多时候都会被什么拖控件.跨平台等字眼所鄙视过,但是在我的的内心还是没有把自己看低过.因为说到底,平台和语言只是我们吃饭的工具.很多时候公司的发展是取决于商业竞争的,微软 ...

  6. Ubuntu 下 kazam 录屏 没声音解决方案

    以下内容参考https://www.youtube.com/watch?v=5NZ0qwp2L04,我做了些修改,让它好懂些. 在应用商店里搜索 PulseAudio Volume Control 在 ...

  7. 搭建apache http服务器

    异步: http://blog.csdn.net/lzhlzz/article/details/39496285

  8. HTML 中级2

    <colgroup> 标签用于对表格中的列进行组合,以便对其进行格式化. 通过使用 <colgroup> 标签,可以向整个列应用样式,而不需要重复为每个单元格或每一行设置样式. ...

  9. 用JS获取地址栏参数的方法(超级简单)

    方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("( ...

  10. android 混淆导致友盟反馈出错

    最近混淆应用时出现了一个错误: 打包编译没问题,但程序运行之后,点击友盟的反馈就会导致程序报错: E/AndroidRuntime(7669):  java.lang.RuntimeException ...