[ Duksung ] in KIDS 글 쓴 이(By): kyt (마카다커피D) 날 짜 (Date): 1995년06월12일(월) 21시29분56초 KDT 제 목(Title): cb(c beautifier)에 대해서..... 여러분의 레포트를 작성하는데 약간의 도움이 되고자 이글을 올립니다. 유닉스에는 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와 같아요. 자, 그럼 다음에... |