最近在运行python的时候,发现tab键在在运行过程中无法使用,报错:
IndentationError: unindent does not match any outer indentation level
中学课本教导我们,区分人和动物的重要标志是是否学会使用工具。可是看了动物世界才发现,好多动物也会改造并使用工具。作为一个程序猿,假如你没有学会改造自己的工具,只是使用,那可不能叫做程序猿,估计只能叫做攻城狮(只会顺着梯子往上爬)了。
  由于使用的是vim,可以肯定,是vim配置导致的问题,有时候挺装逼的,把vim配置的很复杂,出了问题才知道,神器还要牛人用啊。
言归正传,查了资料,加上自己的验证,确认问题解决了,顺便写一下总结,方便后人吧。
  其实,修改tab默认4个空格有两种设置方法:

方法一:
set ts=4
set sw=4
方法二:
set ts=4
set expandtab
set autoindent

推荐使用第二种,按tab键时产生的是4个空格,这种方式具有最好的兼容性。

正确vimrc配置:

set shiftwidth=4
set softtabstop=4
set tabstop=4
set expandtab
set autoindent

解释:
set autoindent Tab键的宽度
当设置成 expandtab 时,缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
set softtabstop=4 set shiftwidth=4 Tab键的宽度

vim 下修改tab键为四个空格的更多相关文章

  1. Eclipse设置Tab键缩进4个空格的步骤,也就是按一下Tab键输出四个空格

    Eclipse设置Tab键缩进4个空格的步骤,也就是按1下Tab键输出4个空格,步奏如下 1.点击 window->preference-,选择 General->Editors-> ...

  2. Linux下修改tab建为4个空格

    1.编辑 vim /etc/vim/vimrc 2.修改 set ts=4 set expandtab set autoindent 其实只要set ts=4 就ok了.

  3. 设置Tab键为四个空格

    https://my.oschina.net/xunxun10/blog/110074

  4. Eclipse 设置Tab键为4个空格

    参考:java编程规范之eclipse设置tab键为四个空格 Eclipse版本 1.点击菜单Window > Preference 2.在Preferences窗口中,展开General &g ...

  5. Ubuntu 下无法Tab键自动补全功能解决办法

    在Ubuntu下 使用Tab键报错:cannot create temp file for here-document: no space left on device 解决: rm -rf /var ...

  6. sublime设置tab键为4个空格

    在使用sublime的时候,有时候新建的文件,默认的缩进是2个,那么如何将sublime设置tab键为4个空格呢? 具体方法: 配置: , "translate_tabs_to_spaces ...

  7. 转:设置Eclipse中的tab键为4个空格的完整方法

    from: https://my.oschina.net/xunxun10/blog/110074   设置Eclipse中的tab键为4个空格的完整方法 收藏 XunXun10 发表于 4年前 阅读 ...

  8. 把Notepad++的tab设置为四个空格

    在7.1版本以及以后 设置->首选项->Language 勾选Repalce by space 在7.1版本以前 设置->首选项->制表符设置 右侧,转为空格,勾选上 参考: ...

  9. vim下设置tab

    前言:大多数情况下tab键的宽度设置为4个空格,这个可以根据自己 的代码风格进行替换,然而当你提交不同的语言的代码的时候python 和c的时候就有区别了.c的话一般tab键做缩进,而python提交 ...

随机推荐

  1. CentOS7 如何升级Git

    CentOS7自带的git版本1.8.3.1,这个版本有点低了.于是决定折腾升级,我首先想到的是用update更新: yum update git 结果,事与原违,还是1.8.3.1.在网上提供的升级 ...

  2. pytest系列(一):什么是单元测试界的高富帅?

    pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试.自动化测试工作中. unittest也是python语言中一款单元测试框架,但是功能有限,没有pyte ...

  3. 14. Go 语言编译与工具

    Go 语言编译与工具 Go 语言的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有. 在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即 ...

  4. [考试反思]1111csp-s模拟测试110:三思

    题目名是为了照应3天的倒计时(我才不会说是因为我考场又摸鱼了) 在OJ上得到了295的好成绩,但是本地评测没有O2掉了10分. 总体来说还可以.T1全场切,T2半场切,T3纯暴力不卡常都有95... ...

  5. 通过 Filebeat 收集 ubuntu 系统日志

    需求:收集 ubuntu 系统日志,发送给 logstash,再由 logstash 把数据传递给 elasticsearch,最后通过 kibana 展示日志数据. Filebeat System ...

  6. Linux下shell脚本实现mongodb定时自动备份

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  7. Linux使用之centos下安装Java环境并运行Java程序

    前言 在Java中所有的程序都是在JVM上运行的.Java虚拟机(JVM)读取并处理经过编译的与平台无关的*.class文件.因为Java语言源程序编写后,先使用Java伪编译器进行伪编译,将其转换为 ...

  8. C sharp #004# 进度条与Timer

    饮水思源:金老师的自学网站 C#实现进度条异常简单,因为所有东西都已经封装好了. 只需要简单的拖拽: 写两行代码就完工了: private void timer1_Tick(object sender ...

  9. ETCD:多机上的集群

    原文地址:cluster on multiple machines 总览 启动一个集群静态的要求是每一个集群中的成员需要知道其他成员的位置.在许多情况下,集群成员的IP可能无法提前知道.在这种情况下, ...

  10. .NET Core C# 中级篇2-7 文件操作

    .NET Core CSharp 中级篇2-7 本节内容为文件操作 简介 文件操作在我们C#里还是比较常见的,例如我们读取Excel.Txt文件的内容,在程序中,这些文件都是以流的方式读取进入我们内存 ...