tab&&spaces

转自: http://liuzhijun.iteye.com/blog/1831548

缩进在程序开发的时候是实用的一个功能,尤其Python这种靠缩进来组织代码段的语言来说更重要了。今天特意google了下vim缩进,结果很失望,有的只有配置没有说明,有说明的也没说清楚,特此自己总结一下。

normal 模式下:

>>  当前行增加缩进
<<  当前行减少缩进

insert模式下:

CTRL+SHIFT+T:当前行增加缩进
CTRL+SHIFT+D:当前行减少缩进

默认vim的缩进宽度为8个空格,修改缩进的宽度::set shiftwidth=4,具体什么意思,看下面的详细解释。

与缩进相关的参数有shiftwidth、tabstop、softtabstop、expandtab。

shiftwidth  reindent 操作(<<和>>)时缩进的列数(这里的一列相当于一个空格)
tabstop     一个tab键所占的列数,linux 内核代码建议每个tab占用8列
softtabstop 敲入tab键时实际占有的列数。
expandtab   输入tab时自动将其转化为空格
  1. softtabstop大于tabstop时,且没有设置expandtab时,例如:softtabstop=12,tabstop=8,那么当输入一个tab时(softtabstop:实际占用的是12列),最后会变成一个tab(tabstop)加4个空格(8+4),输入两个tab(2个softtabstop:24列)会变成3个tab(tabstop),也就是说vim或用tabstop+空格来表示,最终你能看到的缩进的列数一定是softtabstop*按的tab键次数。(ps::set list 可以查看tab符号)
  2. softtabstop小于tabstop且没有设置expandtab时,如果softtabstop=4,tabstop=8,输入一个tab(softtabstop),会变成4个空格(因为不够用一个tabstop表示),输入两个tab会变成一个tab(8列)。
  3. 如果softtabstop等于tabstop,而且expandtab没有设置,softtabstop与tabstop就没什么区别了。
  4. 如果设置的expandtab,输入一个tab,将被展开成softtabstop值个空格,如果softtabstop=4,那么一个tab就会被替换成4个空格。
  5. 设置expandtab:
    :set expandtab
    
  6. 取消expandtab:
    :set noexpandtab
    
  7. 查看参数值:
    :set $arg(这里的arg是变量,值就是上面的那些参数),比如::set softtabstop
    
  8. 自动缩进
    :set autoindent   回车后自动缩进
    
  9. 通常Java的配置方式是:
    :set softtabstop=4 shiftwidth=4 expandtab
    
  10. Linux kernel的配置方式:
    :set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab
    

以后的章节我会来一个完整的Python配置。

时间: 2024-09-30 22:20:08

tab&&spaces的相关文章

Create A New Project笔记

创建一个新项目 用 NPM 创建一个新的项目 $ mkdir ilovereact $ cd ilovereact $ npm init 初始化 Git 仓库 添加Node .gitignore curl https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore > .gitignore 创建仓库 $ git init $ git add . $ git commit -m "Project init&

vi set the tab width for python

Put your desired settings in the ~/.vimrc file -- See below for some guidelines and best practices. There are four main ways to use tabs in Vim: Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4 (or 3 or whatever you prefer) and use

TabError: Inconsistent use of tabs and spaces in indentation

Pyhton 编辑错误 问题: TabError: Inconsistent use of tabs and spaces in indentation 解决方法: 这个错误是说你用了tab键作缩进了, 因为在python不像C/C++里用大括号来区分程序块,而是用缩进 所以缩进很重要你把Tab都换成空格就好了 版权声明:本文为博主原创文章,未经博主允许不得转载.

Jade报错:Invalid indentation,you can use tabs or spaces but not both问题

现象:通过html生成jade文件之后,更改jade文件时,语句没什么问题的情况下,jade文件编译不通过,报错:Invalid indentation,you can use tabs or spaces but not both. 原因:错误信息上已经写得很清楚了,是因为jade文件里出现了多余的空格导致文件编译不通过. 解决方法:在代码编辑器中设置tab替换空格,就ok了.

sublime设置TAB为4个空格

步骤1:选择 Preference -> Settings-Defalut 步骤2:找到如下代码 // The number of spaces a tab is considered equal to“tab_size”: 4, // Set to true to insert spaces when tab is pressed“translate_tabs_to_spaces”: false(这里改为true)

[mark] 使用Sublime Text 2时如何将Tab配置为4个空格

在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: http://www.dbpoo.com/sublime-text2-tab/ http://www.micmiu.com/software/common/sublime-text2-tab-space/ 链接页面分别介绍了如何在 Preference --> Settings-User 或 Prefe

Wing IDE配置空格代替tab缩进+护眼背景色

打开Wing IDE后,进入"编辑"列的"偏好设置"页面,如图1所示: 图1 设置用4个spaces代替tab, 如图2所示 图2 设置保护眼睛的绿色, 如图3所指示,其中颜色需要自己定制,颜色配置参数见图4. 图3 图4 版权声明:本文为博主原创文章,未经博主允许不得转载.

Eclipse中的tab键为4个空格

1.点击 window->preference-,依次选择 General->Editors->Text Editors,选中右侧的 insert space for tabs;如下图所示,保存,第一步完成: 2.点击 window->preference-,依次选择 java(或C++)->code style ->formatter,点击右侧的editor,选则左侧 tab policy的值为spaces only,确定,应用保存即可,如下图所示: 若出现应用App

Sublime text3修改tab键为缩进为四个空格

1. 菜单栏里点击 Preferences-> Setting, 如图 2. 在弹出来的Preferences.sublime-settings-User里,添加如下三行: 1 // The number of spaces a tab is considered equal to 2 "tab_size": 4, 3 // Set to true to insert spaces when tab is pressed 4 "translate_tabs_to_spa