여러분의 레포트를 작성하는데 약간의 도움이 되고자 이글을 올립니다.
유닉스에는 cb(c beautifier)라는 자동 들여쓰기가 있습니다.
(들여쓰기를 자동으로 이쁘게 해준다는 얘기, 일단 확인해 보세요.)
물론 indent라는 것도 있읍니다.
공식적인 명칭은 둘다 C program formatter입니다. cb가 기능은
휠씬 작지만 쓰기가 쉽다는 이유만으로, 더 많이 알려져 있읍니다.
indent는 기능히 많고 복잡해서 꺼려하는 편이지요. 그러나 cb도
indent의 기능을 이용해서 출력을 만듭니다. indent의 subset이지요.
(믿거나 말거나)
<간단하게 사용법을 적으면>
먼저 들여쓰기가 엉망진창인 소스하나(program.c)가 있어야 겠지요.
cb의 경우)
% cb program.c > pro.c (표준출력으로 나오기 때문에)
% rm program.c
% mv pro.c program.c
이렇게 하는 것이 가장 쉽습니다. 이렇게 되면 들여쓰기의 단위가
TAB이 기준이 됩니다. 일반적으로는 8칸이 되겠지요. 즉, 들여쓰기가
8칸 단위로 들여써집니다. 8칸일경우에 보기가 안 좋고, 80칼럼 종이
에 들어가지 않는 경우도 있지요. 그것을 해결할려면, vi로 들어가서
% vi program.c
그리고 명령라인(':'을 눌리면 나오지요)에서
:1,$s/(TAB키)/(space bar 3번)/g 라고 하면 3칸만큼 들여쓰기가 됩니다.
사람에 따라 4칸으로 하든지 5칸으로 하든지, 맘대로 하든지 말든지.
즉, 1라인부터 끝라인까지 각라인에서 나오는 TAB키는 모두 space 3개로
바꾸라는 명령이지요.
설명) 1)일단 ':'을 눌리면, 화면아랫쪽에 ':'이 나오겠지요.
2)1,$는 vi명령라인에서 1은 1라인을 $는 끝라인을 나타냅니다.
실험삼아 ':'하고 1하고 엔터해보세요.
':'하고 $하고 엔터해보세요.
위의것은 소스의 1라인으로 가고, 밑의 것은 마지막
라인으로 갑니다. 물론 3하면 3라인으로 가지요.
3)s는 substitution(대치)라는 뜻. (몰랐으면 반성할것.)
4)/대치될것/대치할것/g g는 한라인의 전체에서라는 뜻.
g를 빼면 처음 나오는 TAB만이 대치됩니다. 그러므로
TAB이 두번이상 들어간곳은 완벽한 들여쓰기는 되지 않지요.
(들여쓰기가 2개 이상된곳에서 해보면 알지!)
indent의 경우) cb보다 조금 더 쉽다고나 할까...
% indent program.c 하면
% ls
program.c program.c.BAK 라고 생깁니다.
이 경우는 cb와의 차이점은 출력이 화일로 직접 나오기 때문에,
따로 cb처럼 rm & mv를 할 필요가 없읍니다. 따로이 program.c.BAK라는
백업화일이 생기면서 원래의 이름으로 만드는 기능이 들어 있읍니다.
나머지는 cb와 같아요.
자, 그럼 다음에...