Категории

четверг, 28 августа 2014 г.

Приводим документ к одному типу ident - expand, unexpand и немного про alignment.

user@ubuntu~$ echo -e "    1\n     2" | unexpand -t4 > 1.txt
Получим в 1.txt:
<-->1
<--> 2
user@ubuntu~$ expand -t4 1.txt > 2.txt
Получим в 2.txt:
    1
     2
Получаем некий аналог dos2unix и unix2dos, только для табов и пробелов.
Теперь о применении такого на практике, до недавнего времени я тоже не знал разницу между indentation и alignment. Приведу примеры о чем идет речь.
Это — indentation:
for (int i = 0; i < 10; i++) {
    if (a[i] == 0)
        do_something(i);
}
А вот это — alignment:
int some_variable = 0;
int v1            = 0;
Соль в том, что identation не поплывет в разных редакторах, где размер таба разный, а вот alignment с табами поплывет 100%. Следовательно, если хотим использовать табы, используем только в indentation, но alignment делаем исключительно пробелами. В таком случае использовать expand и unexpand нужно с особой осторожностью, чтобы не задеть aligement.
1. Пора завязывать использовать пробелы вместо табуляции в коде
2. Примиряем любителей пробелов и табов

Комментариев нет:

Отправить комментарий