最近在运行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. C#&.Net干货分享-构造QRCoderHelper生成二维码图片

    不想说废话,直接源码拿去用... /// <summary>    /// 二维码管理    /// </summary>    public class QRCoderHel ...

  2. 数据库事务系列-MySQL跨行事务模型

    说来和MySQL倒是有缘,毕业的第一份工作就被分配到了RDS团队,主要负责把MySQL弄到云上做成数据库服务.虽说整天和MySQL打交道,但说实话那段时间并没有很深入的理解MySQL内核,做的事情基本 ...

  3. HTML和css常见问题解答2

    1.将一个块级元素水平和垂直居中有几种方法?分别是什么? 四种方式: (1).要让div等块级元素水平和垂直居中,必需知道该div等块级元素的宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上 ...

  4. Python 分析到底是谁操纵《庆余年》上了热搜?

    庆余年电视剧终于在前两天上了,这两天赶紧爬取数据看一下它的表现. ​ ​ 庆余年 ​ <庆余年>是作家猫腻的小说.这部从2007年就开更的作品拥有固定的书迷群体,也在文学IP价值榜上有名. ...

  5. 在CV尤其是CNN领域的一些想法

    现在的CNN还差很多,未来满是变数. 你看,现在的应用领域也无非merely就这么几类----分类识别,目标检测(定位+识别),对象分割......,但是人的视觉可不仅仅这么几个功能啊!是吧. 先说说 ...

  6. javascript截取字符串的最后几个字符

    在JavaScript中截取字符串一般是使用内置的substring()方法和substr()方法,这两个方法功能都很强大,也都能实现截取字符串中的最后几个字符. substring()方法 Java ...

  7. 自学_DOM<五>

    类库DOM DOM(document object medol)文档对象模型. DOM就是HTML页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性.方法就可以对网页中的 ...

  8. Cobalt Strike系列教程第四章:文件/进程管理与键盘记录

    Cobalt Strike系列教程分享如约而至,新关注的小伙伴可以先回顾一下前面的内容: Cobalt Strike系列教程第一章:简介与安装 Cobalt Strike系列教程第二章:Beacon详 ...

  9. 【Gradle】Android Gradle 多项目构建

    Android Gradle 多项目构建 Android 项目区别 Android项目一般分为库项目,应用项目,测试项目,Android Gradle 根据这些项目分别对应3种插件:com.andro ...

  10. 记一次mq无法正常生产消息的事故排查过程

    早上上班后得知,服务费未同步到代理商系统.查看draft_server系统生产环境的log,显示在往RabbitMQ推数据时出现异常:no route to host. 2019-07-29 01:3 ...