강좌 & 팁
글 수 2,412
2010.12.29 07:53:43 (*.237.227.98)
48561
안녕하세요. 여러분.
음.. 역사를 논하기 전에 매우 가벼운 팁 2가지를 올려볼려고 합니다.
로봇틱스를 하는 사람들은 리눅스를 더 선호하는 경향이 있습니다.
그리고 많은 사람들이 로봇 알고리즘, 프로그램들을 리눅스 플랫폼으로
개발하고 있지요. 물론 멀티플랫폼에서 사용되는 소프트웨어로 설계와
배포를 하는 것이 좋은 추세이지만요.
리눅스에선 전통적으로 vi 와 emacs 를 에디터로 많이 사용하잖아요.
이곳 CMU에 와서 많은 로봇틱스 프로그래머를 봤지만 (물론 성급한
일반화의 오류지만...) 많은 개발자들이 vi 와 emacs를 사용하고 있었습니다.
자, 다음은 제가 주로 사용하는 vi 고급 기능들입니다. (제 관점에서)
기본적인 것을 익힌 다음에 좀 더 고급스런 기능을 사용하고자 할때 필요한 내용들. ============================ 0. 소스 브라우징과 패턴 교환 ============================ [[, ]] - 문단 옮기기 % - {}의 짝 찾기 ctrl + P - 자동 완성 기능 ma, 'a - 다중 마크 기능 특정 패턴을 다른 패턴으로 바꾸기 :s /old /new - 현재 줄의 처음 old를 new로 교체 :s /old /new /g - 현재 줄의 모든 old를 new로 교체 :1,20s /old /new /g - 1부터 20번째 줄까지 모든 old를 new로 교체 :-2, +4s /old /new /g - 커서 2줄 위부터 4줄 아래까지 모든 old를 new로 교체 :%s /old /new /g - 문서 전체에서 old를 new로 교체 :%s /old/ new /gc - 문서 전체에서 old를 new로 확인하며 교체 =============================== 1. 키 매핑을 사용해 단축키 정의 =============================== /home/tae165/.vimrc의 nmap부분 참고하여 입맛에 맞게 바꾸시면 됩니다.(재로그인하면 적용됩니다.) 키 기능 ----------------------------------- ` 현재 윈도우 최대화 탭 윈도우 이동 8 윈도우 아래로 이동 9 윈도우 위로 이동 컨트롤+L 무조건저장(w!) 컨트롤+X 모든창닫고 나가기(qa) ,if #if..#else..#endif ,tg /*TGKim 날짜*/ "TGKim"부분을 자신의 주석으로 바꾸시길 ============================= 2. Tags를 이용한 Source Trace ============================= 리눅스 커널소스 맨위에서(예: /usr/src/linux) $ctags -R * 해주면 한참뒤 ctags화일이 만들어 집니다. 이제 vi로 들어가서(tags화일이 있는 위치에서 = /usr/src/linux) :ts task_struct 해보시면 task_struct 심볼리스트가 좌악 나오는데 번호로 선택해서 찾아가면 됩니다. 그 밖에 Keyword위에 커서를 위치하고 다음을 할수 있습니다. Ctrl + ] : tag 찾아감, Ctrl + t : tag 되돌아감 :tags - taglist를 출력 g + ] : ts keyword와 같은기능(매우 편함) 커널에 보면 tag를 Makefile에서 만들수 있더군요 TAGS: -> etags로 tags: -> ctags로 그냥 ctags -R *보다 효과적이겠죠.. make tags하믄 됩니더. ======================== 3. Visual mode 블럭 복사 ======================== yy(한라인)나 y#(#라인)같은 라인복사 외에 Visual mode에서의 블럭 복사가 있습니다. v 누르고 h,l,j,k로 블럭지정하구 y(복사), d(잘라내기)하구 커서를 목적지 한칸앞에서 p(붙여넣기)하믄 됩니다. 참고로 Shift + v : 라인복사 Ctrl + v : 사각블럭 복사 ======================== 4. Multi Window 작업하기 ======================== Ctrl-W 누른후에 다음 키를 누른다. Ctrl-W ] 새윈도 만들고 tag로 뜀 Ctrl-W f 새윈도 만들고 커서위치의 화일을염 Ctrl-W q 창닫기 Ctrl-W o 현재창남기고 다닫기 Ctrl-W n 새로운창열기(수평창) Ctrl-W v 새로운창열기(수직창) Ctrl-W j 위쪽 윈도우로 커서이동 Ctrl-W k 아래쪽 윈도우로 커서이동 Ctrl-W h 왼쪽 윈도우로 커서이동 Ctrl-W l 오른쪽 윈도우로 커서이동 Ctrl-W p 전에 활성된 윈도우로 커서이동 Ctrl-W t 맨위쪽 윈도우로 커서이동 Ctrl-W b 맨아래쪽 윈도우로 커서이동 Ctrl-W x 전의윈도와 위치바꿈 Ctrl-W r(R) 윈도 위치 돌림 Ctrl-W = 모든창 같은 크기로 Ctrl-W N +(-) N열만큼 높이크기 조절 Ctrl-W N >(<) N열만큼 넓이크기 조절 Ctrl-W N _ 현윈도 높이 N만큼, 기본은 최대 Ctrl-W N _ 현윈도 넢이 N만큼, 기본은 최대 :only 윈도 최대화 set ic : 대소문자 구분안함