Duksung

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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와 같아요.

자, 그럼 다음에...

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.