Sublime Text 3 Notepad++ Eclipse 更改Tab键为四个空格宽度并插入空格

1,085 阅读2分钟

1.要求

阿里巴巴在Java开发手册第一章编程规约的第三节代码格式的第五条规定:【强制】 采用四个空格缩进,禁止使用tab键缩进。

2.区别及作用

Tab键和空格有什么区别呢?Tab键对应的ASCII为0x09, 而空格的ASCII码为0x20。一般Tab键的宽度和四个空格的宽度差不多(这个可以更改),但是不同的编辑器对Tab键会有着不同的解释,有的解释为四个空格宽度,有的解释为八个空格宽度。

例如下面这段代码,一个是在Sublime Text 3中显示(Tab设置为4个空格宽度),一个是在notepad++中显示(Tab设置为8个空格宽度),两者都采用Tab键进行缩进。对比可以看出代码缩进显示风格不同。而我在记事本中查看的时候显示更为混乱。

//Sublime Text 3 中显示
public class Tab {
    public static void main(String[] args) {
        System.out.println("Tab");
	}
}
//Notepad++ 中显示
public class Tab {
	public static void main(String[] args) {
		System.out.println("Tab");
	}
}

如果使用空格缩进则不会出现这个问题,无论Tab键设置的宽度为多少,所有编辑器打开的代码缩进格式都是相同的。这也就是为什么手册里面要求必须使用空格来进行缩进。但是使用空格缩进有个缺点就是占用的空间多了,一个Tab键就是一个ASCII码字符,而一个空格也是一个ASCII码字符。如果利用空格来达到Tab键的缩进效果,那就可能要敲4个或者8个空格,也就要占用4个或8个字符的空间。

3.设置方法

在实际使用空格来达到Tab键缩进效果的过程中,我们一般不大可能一个一个空格的敲,我们可以在编辑器设置一下,将Tab键设置为一次插入4个空格,这样就不用一个一个敲了。

首先在Sublime Text 3 中我们可以打开Preference->Settings->Users里面添加下面的配置:

"tab_size": 4,
"translate_tabs_to_spaces": true

Sublime Text 3
在Notepad++ 中我们可以打开 Settings->Preferences-language最右边的Tab size输入Tab size 大小并回车,然后勾选Replace by space选项即可。

Notepad++
在Eclipse 中分为两步,第一步点击 Window->Preferences->General->Text Editors,右边勾选 Insert spaces for tabs;第二步点击 Window->Preferences->Java->Code Style->Formatter,在右上角新建一个Active Profile,然后点击EditTab Policy 选择 Space Only,再点击Ok就好了。

eclipse1
eclipse2

eclipse3

参考文献

[1] sublime text 3 的缩进(indentation)设置

[2] notepad++设置tab为4个空格

[3] java编程规范之eclipse设置tab键为四个空格