Engineering/Etc 72

vim 에서 UTF-8 지원

UTF-8 을 지원하기 위해 vi 에서 설정할 값은 "set enc=utf-8" 입니다. 계속해서 작업할 생각이면, .vimrc 파일에 내용을 추가합니다. set encoding=utf-8 # utf-8 입력가능 set fileencodings=utf-8,euc-kr # utf-8, euc-kr 을 자동으로 인식. 인코딩값이 utf-8 이어도 euc-kr 인 파일을 읽어도 제대로 보입니다. 그리고, 많이 사용하는 터미널 프로그램인 putty 에서 UTF-8 을 지원하기 위해서는 "Window-Translation" 에서 character set 을 "UTF-8" 으로 설정하고, "Apperance" - "font setting" 을 굴림체로 변경합니다. 터미널에서 export LANG="UTF.ko_KR..

Engineering/Etc 2011.07.26

vi 에서 shell 기능 막기

vi(vim) 으로 파일 편집 작업중에 ":shell" 으로 하던 작업을 중지하고, shell 로 빠져나갈 수 있습니다. 편리하긴 하지만, 의도적으로 쉘로 빠져나가는 것을 막기 위해 할 수 있는 방법을 찾아보았습니다. CLI 기능 작성 중 'vi' 를 사용해야하는 경우, root 나 특정 사용자 권한을 가질 수 있는 상황을 막을 경우에 도움이 될 듯합니다. 1. /bin/false 를 이용 : 현재 작업중인 쉘을 /bin/false 로 변경하여 vi 실행 # SHELL=/bin/false vi /tmp/33 문제점 : vi 에서 "set shell=/bin/sh" 으로 쉘을 변경하면, shell 프롬프트로 빠져나올 수 있다. 2. vim -Z 이용 : vim 옵션중 '-Z' 를 붙여서 파일 작업 # vi..

Engineering/Etc 2011.07.20

gdb 에서 유용한 기능 refresh

디버깅을 위해서 gdb 를 많이 사용하지만, 수많은 옵션들을 다 이용하지 못합니다. break 를 많이 사용했었지만 그와 함께 사용하면 좋을 refresh 옵션을 사용하면 마치 VC 의 디버그처럼 소스코드에 하이라이트(highlight) 가 켜져서 현재 break point 중인 소스코드를 쉽게 확인할 수 있습니다. ================================================================================ # gdb exe_bin (gdb) b test --------> test() 에 break point 설정 (gdb) r --------> 진행 .................................. Breakpoint 1, test () ..

Engineering/Etc 2011.06.14

vimdiff 많이 사용하는 기능

vimdiff 를 사용해서 파일들 사이의 변경사항을 확인할 수 있습니다. 단순히 변경 사항말고도 화면상에서 다른 파일들간에 변경 내용을 적용할 수가 있는데, 많이 사용되는 기능을 정리해봅니다. # vimdiff A_file B_file or # vim -d A_file B_file - (ctrl) (w) (w) : 분리된 창 사이에서 이동 - do : 다른 창의 내용을 현재 창에다가 적용. get other - dp : 현재 창의 내용을 다른 창에다가 적용. diffput - zo : 감춰진 텍스트(:변경사항외의 전체 내용) 확장(open) - zc : 감춰진 텍스트 접기(close). 기본 기능 - ]c : 다음 변경 사항으로 이동 - [c : 이전 변경 사항으로 이동

Engineering/Etc 2011.04.29

svn externals 사용하기

svn 기능 중에 현재 작업중인 프로젝트에 다른 프로젝트의 저장소 또는 공용으로 사용하는 라이브러리를 등록하려고 할때 svn 속성인 externals 를 이용할 수 있습니다. 현재 작업중인 project_A(svn://www.xxx.yyy.zzz/trunk/project_A) 가 있고, 공용 라이브러리인 lib_BB(svn://www.xxx.yyy.zzz/common/trunk/lib_BB-v1.2.3) 가 있을 때, project_A 디렉토리 밑에 lib_BB 디렉토리를 추가하려면 다음과 같은 절차를 이용할 수 있습니다. - 먼저 project_A 를 check out 합니다. # svn co svn://www.xxx.yyy.zzz/trunk/project_A # cd project_A - svn:ex..

Engineering/Etc 2011.04.12

Active X 대체기술

방통위에서 2014년까지 ActiveX 를 대체하는 기술을 보급하고 타 브라우저에서도 동작하도록 하는 인터넷 환경 개선 추진 계획을 발표했다고 하네요.(오늘자 뉴스 - 2011년 3월 31일) 관련기사 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=20110331100902 http://www.kbench.com/news/?&pr=0&no=98714 KISA 웹사이트에서도 이용환경 개선을 위해 페이지를 개설했군요. 기술문서(guide.pdf)도 같이 올려져 있어서, 개발시에 참고가 될듯합니다. http://web.kisa.or.kr/index.jsp 출처 - 방송통신위원회․ 한국인터넷진흥원 Active X 대체 기술 가이드라인』 그런데, 뉴스 기사에 있는..

Engineering/Etc 2011.03.31

ctags 사용법(하위디렉토리 검색)

vim 으로 소스에 선언된 함수나 변수를 확인하기 위해 ctags 를 많이 사용합니다. 보통 하위 디렉토리까지 확인하기 위해 "-R" 옵션을 줍니다. 그런데, 하위 디렉토리에서 참조한 함수에서 다시 그 디렉토리에 존재하는 함수를 다시 찾을때(ctrl+']') 찾지 못하는 경우가 있습니다. 예를 들어, 현재 디렉토리에 a.c 가 존재하고, a.c 에 func_a() 를 호출합니다. func_a() 는 b 디렉토리의 c.c 에 존재합니다. b 디렉토리의 c.c 에서는 func_b() 를 호출합니다. # lsa.c b/ # more a.cmain(){ func_a();} # ls bb.c c.c # more b/b.cfunc_b(){ int b;} # more b/c.cfunc_a(){ func_b();} #..

Engineering/Etc 2011.03.14

리눅스 시리얼 통신 정리_링크된 글입니다.

리눅스에서 시리얼 통신할 일이 생길때마다 매번 찾아보는데, 항상 같은 내용이 보이더군요. 아래 링크로 연결하여 내용을 확인할 수 있습니다. http://www.lug.or.kr/docs/LINUX/others/00-04-5.htm 간단하게 정리하자면, - 리눅스 커널에서 시리얼 드라이버 load 되었는지 확인 # dmesg | grep serial - 리눅스에서 시리얼 장치 확인 # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:2599 rx:227 RTS|CTS|DTR|DSR 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 2: uart:unknow..

Engineering/Etc 2010.12.14