python-tab还是space?
今天把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?的更多相关文章
- Linux python <tab>自动补全
为Python添加交互模式下TAB自动补全以及命令历史功能. 1.获取python目录 [root@localhost ~]# python Python 2.6.6 (r266:84292, Jul ...
- python tab补全
一.python tab补全 前提:tab补全先检查readline包是否安装,未安装通过yum安装即可 [root@CentOS_11 day01]# rpm -qa |grep readliner ...
- Python tab 命令补全,以及 vim 补全
在python 命令行中,使用补全 python 查看 packages 的目录 可用 sys.path 查看. /usr/lib/python2.7/site-packages vim tab.py ...
- eclipse config 2 tab -> space
编码规范要求不同意使用tab,可是又要有4个字符的缩进,连点4次space,这不是程序猿的风格 来看看 eclipse 设置一次tab像space的转换 例如以下操作 Window->Prefe ...
- python <tab>自动补全
1.获取python目录[我使用的是64位ubuntu系统] [~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] ...
- Python tab键自动补齐
1.进入root家目录 建立.tab文件 .tab文件内容如下: ############################################## import sys import r ...
- unbtun python tab补全
在使用python的时候有时候总是忘记很多代码,这个是作为程序袁最头疼的事情,本人也是刚刚接触python,这几天也是用到这块,所以记录下来,已被需要时能够找到. 我的系统是: w@w:~$ una ...
- python tab 自动补全
学习python,经常要使用python命令行查找一些不熟悉的使用方法等等,但是python命令行下没有自带tab补全的功能,看见别人写了tab,可以解决特此记下,以备后用 1.创建tab.py文件, ...
- Mac或者linux系统自动加载python tab补全功能
因为mac OS属于类unix系统,所以基本和linux系统使用相差不大,只是用户登陆时自动执行环境变量文件的区别 mac系统: ShanedeMBP:login_api shane$ vi ~/.b ...
- atom超快替换文件中的tab到space
找到开源的插件代码里缩进全部用的是tab,但公司内部的缩进要求是用space,所以需要将所有的tab替换成space. 在Atom编辑器里,选中所有内容后,点击 Edit - Lines - Auto ...
随机推荐
- 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 ...
- css 伪元素分享!!!
最近接触到的css 伪元素觉得还算不错 分享下: 1.清楚内盒浮动设置: ;} .back_list ul:after{;visibility: hidden;}/*清楚内盒浮动设置*/ 2.伪元素a ...
- C++迟后联编和虚函数表
先看一个题目: class Base { public: virtual void Show(int x) { cout << "In Base class, int x = & ...
- Ext4 ComboBox组件使用
先来看例子: Ext.define('schoolModel', { extend: 'Ext.data.Model', fields: [{ name: 'id', type: 'string' ...
- .Net Core 跨平台系列之环境部署
前言 作为一名.NET程序员,很多时候都会被什么拖控件.跨平台等字眼所鄙视过,但是在我的的内心还是没有把自己看低过.因为说到底,平台和语言只是我们吃饭的工具.很多时候公司的发展是取决于商业竞争的,微软 ...
- Ubuntu 下 kazam 录屏 没声音解决方案
以下内容参考https://www.youtube.com/watch?v=5NZ0qwp2L04,我做了些修改,让它好懂些. 在应用商店里搜索 PulseAudio Volume Control 在 ...
- 搭建apache http服务器
异步: http://blog.csdn.net/lzhlzz/article/details/39496285
- HTML 中级2
<colgroup> 标签用于对表格中的列进行组合,以便对其进行格式化. 通过使用 <colgroup> 标签,可以向整个列应用样式,而不需要重复为每个单元格或每一行设置样式. ...
- 用JS获取地址栏参数的方法(超级简单)
方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new RegExp("( ...
- android 混淆导致友盟反馈出错
最近混淆应用时出现了一个错误: 打包编译没问题,但程序运行之后,点击友盟的反馈就会导致程序报错: E/AndroidRuntime(7669): java.lang.RuntimeException ...