프로그래머가...

100본 정도의 프로그램을 만들었다고 가정해봅시다..

갑자기... 코딩규칙이 바뀌거나..

모든 코드에서 쓴 또는 일부에서 쓴 함수명이 바뀌어 모든 파일을 수정 해야 하는경우가.

꼭 몇번씩 있습니다..

ㄱ-;; 저 일주일에 한번씩은 그런 일을 겪는 것 같습니다.

하지만!! 우리 Unix 프로그래머에게는 ed, red, vim 을 쉘에서 쓸수 있는..

라인에디터를 주셨습니다..

아..어느 분이신지 감사합니다.....ㅠ0ㅜ

ed, red, vim의 차이점?

크게 차이는 없는것 같습니다.

ed와 red는 시스템에 따라서 ed가 되고 red가 되는 차이인것 같고..

vim은 ed에서 쓰는 vi명령에다가 vim의 명령을 추가 했다는 느낌의 차이 뿐입니다..

자..각설하고!!

사용법을 구경해 봅시다..

Syntax

       ed [ -p String] [ -s | -] [File]

       red [ -pString] [ -s | -] [File]

사실 저도 오늘 Syntax는 처음 보았습니다.ㄱ-;;

결론는 -p옵션이나 -s 옵션을 모른다는 거죠..ㄱ-;

그래서 찾아 보았습니다.

Flags

       -p String
            Sets the editor prompt to the String parameter. The default for String is a null value
            (no prompt).
       -s
            Suppresses character counts that the editor displays with the e subcommand, r
            subcommand, and w subcommand. This flag also suppresses diagnostic messages for the e
            subcommand and the q subcommand, and suppresses the ! (exclamation point) prompt after
            an ! subcommand.
       -
            Provides the same functions as the -s flag.

자세히는 모르겠지만...
 - : e, r, w, q, ! 명령에 의해 발생하는 메시지를 금지한다.
  -s : 검사 작업을 금지한다.
  -p문자열 : 프로프트를 원하는 문자열로 바꾼다.

대충 이런 내용이라고 합니다..;;

하지만 이 옵션들을 별로 써보지 않아서.^^;;

자 그럼 대략적인 사용방법과 내용을 보여 드리지요.^^

아래는 코딩규칙의 변경으로 인해서..MSG CODE를 8000에서 8001로

일괄 변경 작업을 위한 것 입니다.

File 1. cvi

vi $1 << EOF
:1,$ s/MSG_8000/MSG_8001/g
:w
:q
EOF

File 2. cvi2

red $1 << EOF
1,$ s/MSG_8000/MSG_8001/g
w
q
EOF

대충 이해가 가시나요?

전 vi대신에 vim을 써도 되고

red 대신에 ed를 써도 됩니다.^^

자..이렇게 만들어 놓았으면...

적용을 해보아야지요?

File 3. ex

cvi PROGRAM1.pc
cvi PROGRAM2.pc
cvi PROGRAM3.pc
cvi PROGRAM4.pc
cvi PROGRAM5.pc
cvi PROGRAM6.pc

자 이 파일을 만들어 돌려 봅시다.

오홋!!

다 바뀌어 있군요.ㅋㅋ

편하고 좋지요?

이제 되도록 이런 노가다는 라인에디터에게 시키자고요.^^

우리는 고급 인력!! 프로그래머 입니다....((어멋!! 프로그래머 아니시라고요? 그럼 말구요..ㄱ-;;)

고급인력에게 이런 노가다는..해악!! 입니다.ㅎㅎ

그럼 다음에는...무얼 가지고 나올지 모르겠지만.^^

다음에 또 뵙겠습니다.ㅎㅎ





 

'컴퓨터 이야기' 카테고리의 다른 글

UNIX 아주 간단한 awk #1  (0) 2007.02.12
UNIX 에서 "expect"라는 신기한 녀석!!  (0) 2007.02.10
Unix 라인에디터  (0) 2007.02.09
find를 이용한 스크립트.  (0) 2007.02.08
내가 쓰는 ORACLE..  (2) 2007.02.08
나의 백업 솔루션  (0) 2007.02.06

사람들이 내가 vi 쓰는것을 보고 가끔 물어본다..

.vimrc 파일이 궁금하다고.ㅋㅋ

별건 없고...나의 편의를 위해서 몇가지 단축키를 만든것 뿐인데..

나는 vi를 배우는 사람에게 .vimrc를 세팅하는 걸 권유하고 싶지 않다..

이유는 vim 일 경우는 상관이 없지만..

vim이 없고 vi 만 있는 경우는..

.vimrc를 사용하지 못하기 때문이다..

나는 회사에서 1년동안 vim이 없는 환경에서 배웠다.-_-;;

죽을 맛이었다.ㅋㅋㅋ

하여튼...내가 쓰는 설정을 공개한다..

막상 올려 보니 길다..-_-;;

처음엔 쓴다가 필요없어서 주석처리 한것도 있고....그렇다..-_-

그냥 파일을 통으로 복사해서 붙여 넣은것이다...

set ts=4
set sw=4
set magic
set wrap
set ruler
set showmode
set visualbell
set nobackup
set nowritebackup
set incsearch
set fileformats=unix
set background=dark
set tags=tags\ ~/nxtool/nxlib/tags\ ~/nxtool/svcgen/tags\ ~/nxtool/sqlw/tags
set title
au BufRead,BufNewFile *.pc  setf esqlc
syntax on
if &term =~ "xterm"
"  if has("terminfo")
"    set t_Co=16
"    set t_AB=^[[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
"    set t_AF=^[[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
"  else
"    set t_Co=16
"    set t_Sf=^[[3%dm
"    set t_Sb=^[[4%dm
"  endif
  if has("terminfo")
    set t_Co=8
    set t_Sf=^[[3%p1%dm
    set t_Sb=^[[4%p1%dm
  else
    set t_Co=8
    set t_Sf=^[[3%dm
    set t_Sb=^[[4%dm
  endif
endif

"=========================================================
" ctags를 사용하기 위한 함수
"=========================================================
"function! InsertTabWrapper(direction)
"let col = col('.') - 1
"if !col || getline('.')[col - 1] !~ '\k'
"return \"\"
"elseif \"backward" == a:direction
"return \"\"
"else
"return \"\"
"endif
"endfunction
"
"inoremap =InsertTabWrapper ("forward")
"inoremap =InsertTabWrapper ("backward")
"=========================================================
" 아래는 사용자가 지정한 Key Mapping입니다.
" F1     : 탐색기열기
" F2     : 창이동
" F3     : 창크게하기
" F4     : 이전파일
" F5     : 컴파일
" F6     : 실행
" F11    : 폴딩(접기)
" F12    : 폴딩(풀기)
" Ctrl-s : 저장
" Ctrl-c : 지정범위 버퍼에 복사
" Ctrl-x : 지정범위 버퍼에 복사 후 지정범위 삭제
" Ctrl-p : 버퍼내용 붙여넣기
" Ctrl-n : 현재 커서와 같은 문자열을 검색
" Ctrl-z : 현재줄 주석처리
" Ctrl-c : 현재줄 주석 삭제
"=========================================================
map <F1> :60vs./<CR>
map <F2> ^Ww
map <F3> :only<CR>
map <F4> ^^
map <F5> !!cd /koscom/accnt/usr/hkkim2/aps_bank;dcc make<CR>
"map <F6> !
map <F11> v%zf
map <F12> zo
map <C-s> :w<CR>
map <C-c> :'a,'b w! ~/tmp/tmp<CR>
map <C-x> :'a,'b w! ~/tmp/tmp<CR> :'a,'b d<CR>
map <C-p> :r ~/tmp/tmp<CR>
map <C-n> <s-*>
map <S-z> :. s/^/\/\/#Comment By HKKim# /<CR>
map <S-c> :. s/^\/\/#Comment By HKKim# //g<CR>


 

'컴퓨터 이야기' 카테고리의 다른 글

find를 이용한 스크립트.  (0) 2007.02.08
내가 쓰는 ORACLE..  (2) 2007.02.08
나의 백업 솔루션  (0) 2007.02.06
내가 쓰고 있는 .vimrc  (0) 2007.02.05
(표준화)데이터 용어사전의 필요성.  (0) 2006.12.05
Programing에 대해서 주저리주저리  (1) 2006.12.01

+ Recent posts