读书人

有人和小弟我说用TAB排版很容易出现

发布时间: 2013-06-25 23:45:41 作者: rapoo

有人和我说,用TAB排版很容易出现错乱,坚持说空格最好。
有人和小弟我说,用TAB排版很容易出现错乱,坚持说空格最好
[解决办法]
空格毕竟一个一个打会很麻烦
编辑器一般都有将tab转换为空格的选项的
还是习惯tab
[解决办法]
混乱的排版不怪排版的软件怪tab,倒也是件怪事。
[解决办法]
坚定tab. 空格是什么?
至于最后保存的是什么东西, tab还在不在等, 那是另一回事了.


[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

这几年一直都用空格,早些年用过一阵 tab,看过几次混乱的排版以后,再也受不了了。
另外,空格明显比 tab 好按啊,小拇指本来就得负责 shift 和 ctrl,再老 tab 不是要累死了。


那你是要按4下空格喽?按TAB时,编辑器是可以替换为空格的。

并不是所有工程有用 tab = 4 spaces 的设置,平时自己编程的时候我都只缩进一个空格。
绝大多数情况,一款好的编辑器都能够执行自能缩进,根本用不着自己打空格。
我的 tab 已经映射为其他功能了,想用也没了。

只问下:
a = b;
c = d;
... 这类东西的等于不对齐吗?
还有类似的, 一堆函数声明的括号等?


我不对齐的。 我很不能理解为何赋值要对的和制表一样。

我觉得对齐很怪异啊,比如这个,你是怎么对齐呢?


int a = 5;


unsigned int bb = 6;



这样不是很爽快吗?清晰明了,你非要这样:


int a = 5;
unsigned int bbbbbbb = 6;

//或者这样:
int a = 5;
unsigned int bbbbbbb = 6;

//或者这样:
int a = 5;
unsigned int bbbbbbb = 6;


你看着不累吗?

int a = 7;
unsinged int bbdsfs = 8;

大概这样. 类型首字母对齐, 标识符首字母对齐. 操作符首字母对齐等.
[解决办法]

int a = 7;
unsinged int bbdsfs = 8;

失算.
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

这几年一直都用空格,早些年用过一阵 tab,看过几次混乱的排版以后,再也受不了了。
另外,空格明显比 tab 好按啊,小拇指本来就得负责 shift 和 ctrl,再老 tab 不是要累死了。


那你是要按4下空格喽?按TAB时,编辑器是可以替换为空格的。

并不是所有工程有用 tab = 4 spaces 的设置,平时自己编程的时候我都只缩进一个空格。
绝大多数情况,一款好的编辑器都能够执行自能缩进,根本用不着自己打空格。
我的 tab 已经映射为其他功能了,想用也没了。

只问下:
a = b;
c = d;
... 这类东西的等于不对齐吗?
还有类似的, 一堆函数声明的括号等?

突然想到个问题,比如一个工程设置 tab = 4 spaces,然后有以下两句。
a = b;
testa = t;
用 tab 的话,第一句 a 后面加一个 tab 在当前工程刚刚好 ok.
过两天同样的文件需要在另一个工程里 reuse,该工程使用 tab = 2 spaces,把文件直接在那种设置下打开后,a 与 = 之间的 1 个 tab 等号不久不够用了吗,虽然可以通过设置编辑器 tab 的长度来重新对齐,但也不能为了一个文件损害其他所有文件的对齐啊,因为当前这个新工程中其他的文件的 tab 数都是按 tab = 2 spaces 打出来的,变成 tab = 4 spaces 后,就对不齐了。要是之前老老实实打空格的话,就没这种麻烦了。


我只好奇那么做累不累, 喜欢用tab, 只是感觉按tab舒服点.
至于其他的, 比如需要在不同的编辑器下看等, 在提交代码前脚本处理下就好了.
最终代码到底是tab还是空格, 我不关心, 只关心输入.

嗯,这招儿也行,只不过还得需要个脚本,程序,宏,whatever 来处理一下,还得记着用它。用 vim 和 linux 时间长了,受影响,能省则省,多按一个键都嫌麻烦,更别提还老得额外处理一下了。况且要是暂时不提交的文件,或者没有源码管理的 quick and dirty 文件,不是还的自己手工搞吗。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:


Quote: 引用:

突然想到个问题,比如一个工程设置 tab = 4 spaces,然后有以下两句。


a = b;
testa = t;
用 tab 的话,第一句 a 后面加一个 tab 在当前工程刚刚好 ok.
过两天同样的文件需要在另一个工程里 reuse,该工程使用 tab = 2 spaces,把文件直接在那种设置下打开后,a 与 = 之间的 1 个 tab 等号不久不够用了吗,虽然可以通过设置编辑器 tab 的长度来重新对齐,但也不能为了一个文件损害其他所有文件的对齐啊,因为当前这个新工程中其他的文件的 tab 数都是按 tab = 2 spaces 打出来的,变成 tab = 4 spaces 后,就对不齐了。要是之前老老实实打空格的话,就没这种麻烦了。



不会的,高级些的编辑器的对齐,只是行首,tab在中间的时候,会使用本意的(制表)。VC暂时没发试,xcode是这样,sublime 也是这样的设计。所以你上面这个,testa 会很好的和上一行对齐,不一定是4个。


反倒空格的时候,字体很可能不能对齐。

never seen yet. again there is no guarantee and I assume you can always find a counter example if you would like. the question is how often it happens.


引用:
Quote: 引用:

Quote: 引用:


Quote: 引用:

突然想到个问题,比如一个工程设置 tab = 4 spaces,然后有以下两句。
a = b;
testa = t;
用 tab 的话,第一句 a 后面加一个 tab 在当前工程刚刚好 ok.
过两天同样的文件需要在另一个工程里 reuse,该工程使用 tab = 2 spaces,把文件直接在那种设置下打开后,a 与 = 之间的 1 个 tab 等号不久不够用了吗,虽然可以通过设置编辑器 tab 的长度来重新对齐,但也不能为了一个文件损害其他所有文件的对齐啊,因为当前这个新工程中其他的文件的 tab 数都是按 tab = 2 spaces 打出来的,变成 tab = 4 spaces 后,就对不齐了。要是之前老老实实打空格的话,就没这种麻烦了。


不会的,高级些的编辑器的对齐,只是行首,tab在中间的时候,会使用本意的(制表)。VC暂时没发试,xcode是这样,sublime 也是这样的设计。所以你上面这个,testa 会很好的和上一行对齐,不一定是4个。


反倒空格的时候,字体很可能不能对齐。

never seen yet. again there is no guarantee and I assume you can always find a counter example if you would like. the question is how often it happens.


never seen啊,你去sixty six 楼看一下就 see 到了。而且这个不算small probability event吧,比较often happen的吧?(感谢google翻译)

#66 没用等宽字体,我见过的绝大部分人编程都用等宽字体,非等宽当然是小概率的事件了。就好像这里的设置一样,加入代码格式以后,自动采用等宽字体,显然是最流行的大众华方法啊。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:


Quote: 引用:

突然想到个问题,比如一个工程设置 tab = 4 spaces,然后有以下两句。
a = b;
testa = t;
用 tab 的话,第一句 a 后面加一个 tab 在当前工程刚刚好 ok.
过两天同样的文件需要在另一个工程里 reuse,该工程使用 tab = 2 spaces,把文件直接在那种设置下打开后,a 与 = 之间的 1 个 tab 等号不久不够用了吗,虽然可以通过设置编辑器 tab 的长度来重新对齐,但也不能为了一个文件损害其他所有文件的对齐啊,因为当前这个新工程中其他的文件的 tab 数都是按 tab = 2 spaces 打出来的,变成 tab = 4 spaces 后,就对不齐了。要是之前老老实实打空格的话,就没这种麻烦了。


不会的,高级些的编辑器的对齐,只是行首,tab在中间的时候,会使用本意的(制表)。VC暂时没发试,xcode是这样,sublime 也是这样的设计。所以你上面这个,testa 会很好的和上一行对齐,不一定是4个。

嗯,好吧,我不动 ide 已久已,落后了。


那你用什么?我不用VIM开发,但我刚才试了一下,我相信VIM也有这样的功能。


应该有,虽然我不用。习惯问题,各有优缺点,楼主不必太纠结。老老实实跟着团队习惯走就行了,何必操心。



我的团队没有规定这个,怎么用都行,所以才上来看看大家怎么看这个问题。


但是我这里发生的情况是,空格经常会对不齐。因为我不用等宽字体。所以我见到空格就替换成TAB。替换完以后,也从来没有人抱怨格式变了。

也许别人也只是默默替换回去而已,就好像你不一定每次替换都要抱怨一样。
ps. 你早说你用不等宽字体别人就能更好的理解你了。
[解决办法]
引用:
Quote: 引用:

使用tab的人基本上没有在不同的编译器中编译大型项目的经验。


项目大小先不说,因为这个东西和项目大小没关系。
这个也和编译器没有关系,因为编译器才不管你字体呢。
显然和 操作系统 也没甚鸟关系。

TAB是不存在宽度问题的,几乎所有 编辑器 都支持TAB宽度设置,
那么,只有一个问题,全世界的所有字体,空格都是一个字符的宽度吗?

那么请教,在跨平台跨编译器的大型项目中,空格是如何做到保持一个字符宽度不变的?



真的 不一样啊,像素 长度 不同.
[解决办法]
我就是那个使用不等宽字体的人。
我喜欢不等宽字体的优雅。
我特别喜欢 Times New Romain 和 微软雅黑。
除了缩进,我不对齐任何东西。其他的都是使用一个空格分隔。

读书人网 >C++

热点推荐