IT개발/Linux & Unix2008. 5. 27. 17:49

입력 모드로 전환하기(삽입)
a (append) : 현재커서 다음에서 입력
A (Append) : 현재 줄의 제일 끝에서 입력
i (insert) : 현재커서에서 입력
I (Insert) : 현재 행을 제일 앞에서 입력

줄을 결합 ( J )
2개의 라인이 있고, 2번째줄을 1번째줄 끝에 붙이고 싶다면,
1째줄에서 J를 입력하면된다.

커서의 이동
0 : 줄의 처음
$ : 줄의 끝
w : 단어단위 이동
H, M, L : 커서를 화면 상,중, 하로 이동
#gg : # 줄로 이동

검색 (/후 검색할 단어 입력)
/<string> : 전방 검색
?<string> : 후방 검색  
* : 현재 커서의 단어를 전방 검색
# : 현재 커서의 단어를 후방 검색
n : 검색후 후방검색
N : 검색후 전방검색
0
매트로
ab aa aaaa   : aa를 입력하면 aaaa로 자동변환

치   환
:s/pattern/replace        : 현재줄에서 첫번째 matching pattern 치환
:s/pattern/replace/g     : 현재줄의 모든 matching pattern 치환
:%s/pattern/replace/g  : 모든 줄에서 matching pathern 치환
:line,lines/pattern/replace : 해당 범위의 치환

(tip) 먼저 변환할 문자열을 검색해서 확인해하고 전체 치환을 수행하는 것이 필요 없는 변환을 막을수 있다. 

저   장
w >> file : 현재 편집중인 문서를 file 로 저장
line,lines w >> file : 해당 범위를 file로 저장

윈도위 split
vi 내에서 윈도우 창이 2개로 분할되어 파일을 동시에 open/편집 할수 있다.
:sp filename          
윈도우창의 전환은 Ctrl + ww

visual 모드
윈도우 텍스트 에디터와 같이 선택부분이 반전되면서 복사, 삭제 등을 할수 있다.
복사 : 영역설정후 => y
삭제 : 영역설정후 => d

vi 설정(vim 설정)
set ai       : auto-indent, tab
set ts=4    :  tab stop, tab을 4칸으로 설정
set sw=4  : shift width, 자동들여쓰기시 4칸씩 들여쓰기
set nu      : 줄번호

윈도에서 작업중에 vi 에 붙여넣기시 계단현상발생 방지
:set paste

ctags 사용
쉘에서 ctags -R 모든 소스에 대해 인덱스 발생 ( 열씨미와 게을러 책 참고)



여러줄을 주석으로 처리할때

- 고전적 방법

// 10라인부터 100라인까지 주석 하기
:10, 100 s/^/\/\//g
// 10라인부터 100라인까지 주석 해제
:10, 100 s/^\/\///g


- 더 좋은 방법

// 블록만큼 주석 하기
1. Ctrl + v 로 원하는 만큼 블록지정
2. Shift + i
3. // 입력
4. ESC 2번 누름

- 더 좋은 방법

// 블록만큼 주석 지우기
1. Ctrl + v 로 원하는 만큼 블록지정
2. x


 


 

Posted by 시티락