[vi/vim] 진정한 멋쟁이는 VI를 사용합니다.

조금 웃기는 제목이지만 저도 어렸을적에 해킹 영화를 보면서 검은창에 알수없는 글자가 주르륵 올라가는것을 보며 왠지 모르게 멋지다는 생각을 했었던거 같습니다.

그래서 해커에 대해 끝없는 동경을 해왔었지만 지금 생각해 보면 아무것도 아닌 것이더군요;;

물론 아무것도 아닌것은 아니지만 모르고 보면 멋지지만 알고보면 평범함 그 자체….그것이 바로 Unix/Linux의 묘미가 아닐까요.

실예로 스크린샷은 없지만 모노폴리라는 국내의 양동근이 해킹 천재로 나오는 영화가 있습니다.

거기에 해킹하는 장면중에 뭐가 주르륵 올라가는것이 있는데 그걸 자세히 보니 리눅스 부팅 스크립트(rc.local) 이더군요;; 웃기죠;;ㅎㅎ

아무튼 유닉스던 리눅스던 쓰다보면 가장많이 사용하게 될 vi 에디터의 사용법에 대해 간단히 정리해 보겠습니다.

제가 자주 쓰는 명령어 위주로만 적어보겠습니다. emacs만큼은 아니지만 vi도 꽤 다양한 명령어 체계를 가지고 있습니다.

1. 기본 명령어
– 기본시작
[code]vi [filename][/code]
– 저장하고 종료
[code]ZZ
:wq[/code]
– 저장하지 않고 종료
[code]:q![/code]
– 명령어 모드로 진입
[code][esc][/code]

2. 커서 이동
– 왼쪽 / 아래 / 위 / 오른쪽
[code]h / j / k / l[/code]
– 줄의 시작 / 끝
[code]0 / $[/code]
– 이전단어 / 다음 단어
[code]b / e[/code]
– 화면상의 시작 / 중간 / 끝
[code]H / M / L[/code]

3. 화면 이동
– 이전 / 다음 페이지 이동
[code] ^B / ^F[/code]
– 가장 마지막 줄로 이동
[code]G[/code]
– 원하는 줄로 이동
[code][n]G[/code]

4. 커서 삽입 (명령어 모드에서 사용)
– 다음 칸에 삽입
[code]a[/code]
– 현재 칸에 삽입
[code]i[/code]
– 다음줄에 삽입
[code]o[/code]


5. 삭제
– 한글자 삭제
[code]x[/code]
– 한줄 삭제
[code]dd[/code]
– 현재 위치에서 원하는 줄 수만큼 삭제
[code][n]dd[/code]

6. 검색
– 이전 검색
[code]?[/code]
– 다음 검색
[code]/[/code]

7. 기타
– 현재위치 북마크
[code]m[x][/code]
– 저장된 북마크위치로 이동
[code]`[x][/code]

8. 탭 편집
– 새탭 생성
[code]:newtab [filename][/code]
– 탭탐색기실행
[code]:Te[/code]
– 다음탭 이동
[code]:tabn
gt[/code]
– 이전탭 이동
[code]:tabp
gT[/code]
– 탭 정렬 변경
[code]:tabm [n][/code]

9. 화면 분할
– 수평탭 나누기
[code]sp[/code]
– 수직탭 나누기
[code]vs[/code]
– 창 이동 (리눅스의 경우 hjkl 대신 방향키로도 가능)
[code]^ww / ^w[h / j / k / l][/code]
– 창 최대화
[code]^w_[/code]
– 창 원래대로
[code]^w+[/code]