[필수 유틸리티] Chapter 02. VIM
Chaper 02. VIM
Section 01 ~ Section 03 vim 기본
- 이동
- 단어 단위 이동 : w, b
- 문단 단위 이동 : {, }
- 행의 시작과 끝 : ^, $
- 문서의 시작과 끝 : gg, G
- 삭제
- 한 단어 삭제 : dw
- 잘라내기
- vim에서 문자열을 잘라내면 17개의 레지스터에 차곡차곡 저장됩니다.
- 레지스터 값 보기 : :reg
- 블록 지정
- 행 앞에 탭 삽입 : >
- 행 앞에 탭 제거 : <
- 문자열 치환
- 문서 전체에서 old를 new로 치환 : :%s/old/new/g
- 문서 전체에서 old를 new로 확인하며 치환 : :%s/old/new/gc
- 정규 표현식
- 여러 파일의 편집
- vim에서 여러 파일을 동시에 열면 버퍼에 파일들을 저장합니다.
- 편집 버퍼 보기 : :buffer
- b1, b2, … 로 버퍼를 이동할 수 있습니다.
- 보통 .vimrc에 map으로 저장하여 사용합니다.
- 반복되는 문자열 저장해서 쓰기
- vim에서는 앞의 17개 레지스터 외 a-z까지 26개의 네임 레지스터를 제공합니다.
- 반복되는 문자열을 이 레지스터에 저장하여 사용할 수 있습니다.
- a레지스터에 3줄 복사 : “a3yy
- a레지스터에 저장된 내용 붙여넣기 : “ap
- 마킹
- 마킹할 때 : m[임의의 알파벳]
- 전역 마킹(A-Z) : 현재 파일을 포함한 다른 파일 간의 마킹이 가능합니다.
- 지역 마킹(a-z) : 현재 파일 내에서만 마킹이 가능합니다.
- 마킹한 위치로 돌아갈 때 : `[마킹한 알파벳]
- 마킹 정보 보기 : :marks
- 마킹할 때 : m[임의의 알파벳]
- 쉘 명령어 이용하기
- :![명령어]
- 자동 완성
- ctrl + p
- ctrl + n
Section 04. ctags, cscope, 기타 플러그 인
- ctags
- 프로그래밍 소스 코드 태그들의 데이터베이스(tags)를 생성하는 유닉스 명령입니다.
ctags -R
- vim에서 set 명령어로 tags 파일 경로를 설정할 수 있습니다.
:set tags=./tags,/usr/tags
- tj(tag jump) 명령어로 tags 파일에서 코드를 검색할 수 있습니다.
:tj start_kernel
- cscope
- 지역변수, 전역변수, 함수가 사용된 곳을 알 수 있는 소스 분석 프로그램입니다.
- cscope.files 에 파일 리스트를 만들고, cscope -i cscope.files 명령어로 cscope.out(cscope 심볼 데이터베이스)를 만듭니다.
- cs 명령어로 cscope를 사용할 수 있습니다.
: cs find [질의 종류] [심볼] : cs find s start_kernel # Find this C Symbol : cs find g start_kernel # Find thid definition : cs find d start_kernel # Find functions called by this function : cs find c start_kernel # Find functions calling this function
- Plugin
- https://www.vim.org/scripts/index.php 에서 다운로드 받아 사용할 수 있습니다.