Создадим файл с табуляцией:
echo -e "\t1\n 2" | unexpand -t8 > 1.txt
Получим в 1.txt
:
<------>1
<------> 2
Где <------>
- 1 таб.
Приведем indent
к одному виду - пробелам, где 1 таб равен 8 пробелам:
expand -t8 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;
Соль в том, что indentation
не поплывет в разных редакторах, с разными размерами таба, а вот alignment
с табами поплывет 100%.
Следовательно, если хотим использовать табы, используем только в
indentation
, ноalignment
делаем исключительно пробелами. В таком случае использоватьexpand
иunexpand
нужно с особой осторожностью, чтобы не задетьaligement
.
Ссылки по теме:
Comments
comments powered by Disqus