첫술에 배부르기를 기대하지 말고 단계 별로 차근차근 따라하면
금방 vim을 자유자재로 사용할 수 있게 될겁니다. ^^
Setp 1
기본 명령
| 내용입력모드로 진입 | i | |
| 명령줄모드 | : | |
| 명령모드로 진입 | ESC | |
| 종료 | :q | |
| 저장 | :w | |
| 저장하고 종료 | :wq 또는 :x | |
| 커서이동 | 좌 | h |
| 우 | l | |
| 상 | k | |
| 하 | j | |
| 한 단어 이동 | w | |
| 공백으로 분리된 한 단어 이동 | W | |
| 한 단어 뒤로 이동 | b | |
| 공백으로 분리된 한 단어 뒤로 이동 | B | |
| 문서 맨 끝 | G | |
| 문서 맨 처음 | gg | |
선택된 문자 끝 | gn | |
| N번째 라인 | :N예) ":100", ":1" |
|
| 지우기 | 한 글자 지우기 | x |
| 한 줄 지우기 | dd | |
| 한 단어 지우기 | dw | |
| 한 글자 지우고 입력모드로 전환 | s | |
| 한 줄 지우고 입력모드로 전환 | S | |
Setp 2
환경설정
| 기능 | 명령 |
| tag 만들기 | $ ctags -R . |
| $ cscope -Rbq |
vim : 명령
일반
| 기능 | 명령 |
| HELP 보기 | :help |
소스코드 추적
| 기능 | 명령 |
| function call 따라가기 | Ctrl-] |
| :cs find g <func_name> | |
| function call 돌아오기 | Ctrl-t |
| function reference 찾기 | :cs find s <func_name> |
Setp 3
환경설정
| 기능 | 명령 |
| 초기설정용 스크립트 파일 | ~/.vimrc |
| tabstop | :set ts=4 |
| shiftwidth | :set sw=4 |
| auto indent | :set ai |
| C style indent | :set cin |
| background | :set background=light|dark |
vim 명령
일반
| 기능 | 명령 | |
| 스크롤 | 한화면 | Ctrl+f |
| Ctrl+b | ||
| 화면절반 | Ctrl+d | |
| Ctrl+u | ||
| 커서 이동 | 맨위 | H |
| 가운데 | M | |
| 맨아래 | L | |
Setp 4
화면분할
| 기능 | 명령 | |
| 윈도우 | 상하분리 | :split 또는 :sp |
| Ctrl+w s | ||
| 좌우분리 | :vsplit 또는 :vsp | |
| Ctrl+w v | ||
| 창 닫기 | :q 또는 Ctrl+w q 또는 c | |
| 현재 커서가 있는 창 빼고 다 닫기 | Ctrl+w o | |
| 윈도우간 커서 이동 | Ctrl+w h,j,k,l | |
| 윈도우 위치이동 | Ctrl+w H,J,K,L | |
| 창 크기 조절 | Ctrl+ w [숫자] > 또는 < (숫자 만큼 창 크기 조절) | |
| (옵션)멀티윈도우로 실행 | -O2(수직분할), -o2(수평분할) 예) # vim -O2 main.c test.c |
|
| 모두저장 | :wa | |
| 모두 종료 | :qa | |
Setp 5
편집
| 기능 | 명령 | |
| 자리표시/기억 | m[a-z] |
|
| 표시한 자리로 이동 | '[a-z] 위에서 마킹한 키를 누르면 해당 위치로 이동함. |
|
| 현재위치에서 위치 a 까지 지우기 | d'a | |
| 현재위치에서 위치 a 까지 복사 | y'a | |
| 화면스크롤 | 커서의 위치가 맨위로 가도록 | z<CR> |
| 커서의 위치가 가운데 | zz | |
| 커서의 위치가 맨아래 | z- | |
| 화면접기 편집명령아님. 화면만 변경 |
접기 | zf<커서이동명령> 예: zf20j, zf%, zf'a |
| 접은 화면 풀기 | zo | |
Setp 6
편집
| 기능 | 명령 | |
| 명령행에 붙이기 | y...으로 복사한 다음 명령행에서 Ctrl+r[0-9] 예제:cs find s Ctrl+r 0 |
|
| 함수 자동 완성 | 함수명 일부 입력 후 Ctrl + n 또는 Ctrl + p | |
| 찾기 | / 다음에 regex 사용 가능 | |
| 커서자리의 스트링 찾기 | 아래방향 | # |
| 윗방향 | * | |
| 바꾸기 | 커서있는 줄 | :s/찾는문자열/바꿀문자열/g 마지막에 g는 두 개 이상 바꿀 때 |
| 문서전체 | :%s/찾는문자열/바꿀문자열/g 참조: %대신 ^.,나 .,$ |
|
| 특정 위치 | :10,20s/찾는문자열/바꿀문자열/g 참조: 10~20번째 줄에서만 찾아서 치환 |
|
| 한줄씩 스크롤 | 아래방향 | Ctrl+e |
| 윗방향 | Ctrl+y | |
Setp 7
통합개발환경
| 기능 | 명령 |
| 빌드 | :make |
| grep | :grep ... |
| 결과를 표시 | :cl |
| 특정 결과로 커서 이동 | :cc번호 |
| 다음 결과로 커서 이동 | :cn |
| 이전 결과로 커서 이동 | :cN |
| 명령결과를 별도 창에 표시 | :cw |
| 명령결과창에 있는 내용으로 이동 | 커서 이동후 Enter |
'IT 생활 > 리눅스&우분투' 카테고리의 다른 글
| [리눅스/Linux] 패킷 생성 및 전송 툴 - tomahawk, tcpreplay, bittwist (0) | 2011.04.26 |
|---|---|
| [리눅스/Linux] 크론탭(crontab) 설정 및 사용방법 (1) | 2011.04.12 |
| [Linux/리눅스] 디버깅을 위한 gdb 사용법 및 명령어 - 초급 (0) | 2011.03.25 |
| [리눅스/Linux] addr2line - 주소값으로 소스 코드 위치를 찾아주는 디버깅 툴 (0) | 2011.03.24 |
| [리눅스/Linux] top(탑) 명령어 단축키 및 활용 팁 (0) | 2011.03.24 |

