vim 명령 모음

배움생활/리눅스 | 2011/12/16 14:51
Posted by blueecho

한동안 vim을 사용하지 않았더니 기본 명령밖에 사용못하겠네요. --;;

그래서 찾아보다 정리하신 분 블로그가 있어서 내용을 링크합니다.

Link : http://kwon37xi.egloos.com/1501256

more..

요즘들어서 vi를 이용한 편집을 사용하긴 하지만 무식한 방법을 이용한 검색을 하거나, kdevelop같은 IDE툴을 사용할 때가 많다.
오늘 책에서 본 내용은 ctags와 cscope를 이용한 검색 방법에 대해서 읽었다.

1. 특정 문자열을 가진 파일을 검색하는 방법

command> find . -name (filename) -exec grep -Hn (strings) {} \;


현재 폴더 내에서 특정 filename의 파일들 중에서 strings를 포함하고 있는 파일(심볼릭링크 제외 : -H)과 행번호(-n)를 출력한다.

command> grep -RIwHn (strings) *


-R : recursive, -I : skip binary file, -w : whole word
요런 방식으로도 출력은 가능하다.

2. ctags를 이용한 검색 방법

command> ctags -R


색인을 만들어준다. -R 옵션은 역시 하부 디렉토리 모두 검색한다는 뜻(재귀적)

command> vi -t (strings)


vi의 tag옵션으로 해당 문자열을 가진 열을 찾아서 열어준다.  또는 vi의 명령행 모드에서 다음과 같이 입력한다.

:tag (strings)


또 다른 방법으로는 찾는 문자가 있는 행에서 ctrl+]키를 눌러서 이동이 가능 돌아올때는 ctrl+T이다. 이 명령은 중첩(nested)되어서 사용가능하다.

tj명령을 이용하여서 리스트로 나열된 부분에서 찾을 수 있다. 또한, sta명령을 사용하면 수평창분할을 하여서 보여주기도 한다. ptn의 경우는 다음 태그로 ptp의 경우는 이전 태그로 점프한다.

:tj (strings)
:sts (strings)
:ptn
:ptp

3. scope를 이용한 검색

command> cscope -R


키 용법이 일반적인 것과는 다르니 확인할 것 ?명령으로 확인해야 한다.

command> find . \(-name '*.c' -o -name '*.cpp' ....... -o -name '*.S' \) -print > cscope.files
command> cscope -i cscope.files


원하는 파일들에서 색인을 만들수 있도록 만들어준다. 요 명령의 경우는 쉘스크립트로 만들어서 사용하는 것이 편하다.

vi에서 cscope를 사용하려면 다음과 같은 내용을 vi의 환경설정파일에 첨가해 주어야 한다.

[ ~/.vimrc ]
set  csprg = /usr/bin/cscope
set csto = 0
set cst
set nocsverb

if filereadable("./cscope.out")
    cs add cscope.out
else
    cs add (cscope.out의 주소)
endif
set csverb


이후로는 vi의 cs명령을 사용하여서 검색이 가능하다.

:cs find (질의종류) (심볼)

4. vi팁

1) 파일 탐색기능 활용하여 현재 디렉토리 내에 파일 검색을 하도록 해줌. 단, exploer 플러그인이 설치되어야 함

:20vs ./


위의 예의 경우는 20라인짜리 수직선을 나누고 현재 디렉토리를 검색

2) 괄호탐색의 경우는 { 또는 }에 커서를 놓고 %키를 누르면 쌍이 되는 부분으로 이동

3) 함수를 접기 위해서는 { 문자에 커서를 놓고 v]}zf 명령을 눌러주면 함수가 폴딩된다. v]}는 블록을 형성하고 zf를 누르면 폴딩이 된다. 폴딩을 해제 할 경우는 -> 키를 누르거나 zo명령으로 폴딩을 해제해 준다.
쉽게 하기 위해서 환경파일에 다음과 같이 정의해 주면 편하다.

map <F1> v]}zf


4) 여러행에 탭을 넣을 때는 v 를 이용하거나 V를 이용해서 정리하거나 (수정할 행수)>> 명령 또는 <<를  통해서 조정이 가능하다.

7>>


위의 경우는 아래 7행을 탭하나 만큼 옮겨준다.

5) 복사로인해서 흐트러진 소스의 경우 v를 이용하여 블록을 잡아주고 =키를 눌러주면 정렬된다.

6) 파일을 바로 읽어오기 위해서는 파일명이 있는 위치에 커서를 놓고 ctrl+wf를 누르면 수평분할창에 파일이 열린다. 헤더파일 같은 경우 편하다.

7) 자동완성기능 ctrl+p (앞쪽에서 찾음) ctrl+n (뒤쪽에서 찾음)

  열씨미와 게을러의 리눅스 개발 노하우 탐험기 - Blog2Book 시리즈 02  박재호 지음
'열씨미'와 '게을러'라는 가상인물의 대화를 통해 리눅스로 개발하면서 겪는 개발현장 사례를 14개의 짧은 이야기를 통해 실감나게 그려낸다. 각 이야기는 리눅스 신참인 '열씨미'와 리눅스 해커인 '게을러'의 해결방안을 동시에 수록하고 있어 다 나은 해결방안을 모색할 수 있는 계기를 마련해준다.
  유닉스.리눅스 프로그래밍 필수 유틸리티 - vi, make, gcc, gdb, cvs, rpm  백창우 지음
vi, make, gcc, gdb, cvs, rpm 등 유닉스, 리눅스 개발 환경에서 자주 사용하게 되는 필수 유틸리티의 활용법을 알려준다. 많은 그림과 도식, 구체적인 예제들을 통해 기능과 원리를 설명하고 있어 초중급 개발자도 쉽게 익힐 수 있다.

Linux용 에디터는 뭘 쓸까? --;;

끄적끄적 | 2008/09/17 21:22
Posted by blueecho
달콤한 추석연휴를 방콕으로 보내고 학교를 도착하니 일거리가 차고 넘치네요. 흐흐흐~ ㅠㅠ
게다가 연휴의 여파인지 늦잠으로 인한 출근시간이 늦어져서... (출근시간 정시 못지키는 못난 선뱁니다. ㅠㅠ)
하여간, 일거리는 꽤 많은데 처음으로 linux에서 modelSIM으로 작업을 하게 되었습니다만, 지난 synopsys툴들과 마찬가지로 언어를 한국어로 하면 입력이 안되는 모습을 보이네요.
윈도우즈를 쓸때는 가공할 만한 위력을 가지고 있는 편집기인 ultraEdit, AcroEdit, EditPlus등을 썼었는데 vi로 편집을 하려고 하니까 이거 익숙하지 않은 것이라서 명령어 보고 실행하고 하는 초보수준이네요.
시간이 많이 아쉽긴 하지만 그래도 예전 적당주의 vi유저에서 이젠 기능좀 써볼까 하네요. 흐흐흐~
이참에 emace로 가볼까나? -_-;;
하여간, vi명령어 요약 옆에 붙여놓으려고 뽑으려다가 한마디 남깁니다. 흐흐흐~

'끄적끄적' 카테고리의 다른 글

총각센서... -_-;;  (0) 2008/10/23
PSP-3005  (0) 2008/10/22
Linux용 에디터는 뭘 쓸까? --;;  (0) 2008/09/17
9월 13일... 제 생일이었습니다.  (1) 2008/09/15
지난 줄거리....  (0) 2008/09/11
곧.... Judgement day가... ㅠㅠ  (2) 2008/07/15

블로그 이미지

blueecho

누군가에게 "당신은 무엇을 잘하십니까?"라는 질문을 들었을때 바로 대답할것을 만들어보자~!!

카테고리

분류 전체보기 (488)
NeWs (20)
배움생활 (97)
취미생활 (116)
끄적끄적 (239)
인생설계 (12)
Wish list (4)