200 likes | 440 Views
Vim. Sparcs2007 Vim Seminar neo. Vim 이란 ?. 리눅스 기반 텍스트 에디터 VI sual display editor => Vi Vi Improved => Vim 주로 코드 편집에 쓴다 . 버클리의 어느 천재가 만들었다 . 왜 ? . 가볍다 빠르게 돌아간다 리눅스에 기본적으로 제공 편하다 마우스 없이 키보드로만 문서 작성 강력하다 여러 가지 고급기능들. Vim 실행 . 실행 유닉스 환경 - 명령 줄에서 vim 입력
E N D
Vim Sparcs2007 Vim Seminar neo
Vim 이란 ? • 리눅스 기반 텍스트 에디터 • VIsual display editor => Vi • Vi Improved => Vim • 주로 코드 편집에 쓴다. • 버클리의 어느 천재가 만들었다.
왜 ? • 가볍다 • 빠르게 돌아간다 • 리눅스에 기본적으로 제공 • 편하다 • 마우스 없이 키보드로만 문서 작성 • 강력하다 • 여러 가지 고급기능들
Vim 실행 • 실행 • 유닉스 환경 - 명령 줄에서 vim 입력 • Windows 환경 – Gvim • visit http://www.vim.org • vim <파일 이름> • 없으면 임시 생성한다.
실습을 위한 준비 • /home/neo/vim/st 또는 kmp.cpp 파일을 받자. • $> cp /home/neo/vim/st . • $> cp /home/neo/vim/kmp.cpp . • 파일 열기 • $> vim st • 혹은 Ex상태에서 :e st
세가지 모드 • 글씨모드: 실제로 키보드를 쳐서 text를 입력하는 모드. • 파일모드: 편집한 file의 저장, 프로그램의 종료, 등의 명령어를 입력하는 모드. • 명령모드: 문서를 편집하는 다양한 명령어를 사용하는 모드.
글씨 모드 • 명령모드에서 i혹은 a,A, o, O 등등 • 입력모드로 전환된다. • 차이점 • i는 현재 지점에서 입력 • a는 커서 뒤에부터 입력 • A는 맨 마지막 줄에 입력 • o는 밑줄에 입력 • O는 윗줄에 입력
명령 • 줄의 첫 글자로 가기 • 0( num ) , ^ • 0 은 공백 무시하고 맨 처음 • ^ 은 공백 후에 나오는 처음 글자 • 끝 글자로 가기 • $ • 문서의 처음으로 이동 • gg • 문서 끝으로 이동 • G • 다음 단어로 가기 • w
명령 • 원하는 줄로 이동 • (숫자)G • 혹은 :(숫자) • 현재 위치 보기 • 컨트롤 g • Undo • u • Redo • 컨트롤 + r • 지우기 • 한 줄 삭제 dd • 여러 줄 삭제 d(숫자)d , (숫자)dd • 다양한 삭제 조합 • d+ 범위 • dd, dw, d^, d$ • 한 글자 삭제 x
Ex모드 • 저장 • w 파일 이름 • 불러오기 • e 파일 이름 • 종료 • wq 저장하고 종료 • q! 저장 안하고 종료 • 쉘 명령 실행 • ! (명령) • 접미사로 강제 의미 (wq! 또는 q!)
복사 붙여 넣기 • 블록 지정 • 컨트롤 v, 쉬프트 v , v • 복사 • y • 잘라내기 • x • 붙여넣기 • p
찾기 • 명령모드에서 • /(찾을 문자) • 다음 찾기는 • ‘n’ • 역방향 찾기는 • ‘N’ • 하이라이트 • :set hls • :set nohls • 대소문자 무시 • :set ic
바꾸기 • :%s/old/new/g • %는 문서 전체를 의미한다 • 소문자 g는 줄 전체를 의미한다. • 끝에 g를 쓰지 안으면 한 줄에서 여러 개 match가 있을 때, 맨 앞만 바뀐다. • Ex) : %s/printf/sprintf/g • Ex) :1,10/printf/sprintf/g
편리한 기능 • 창 나누기 • : new 세로로 • : vs 가로로 • 창 이동 • 컨트롤 w+w • 컨트롤 w+방향키(hjkl) • 창 닫기 • :wq, :q!
편리한 기능 • 실수로 컨트롤+s를 눌렀을 때 • 터미널에서 입력 중지 명령이다. • 컨트롤 q을 눌러주자 • 입력이 다시 재개된다.
편리한 기능 • 컨트롤 + z • 리눅스 명령으로 현재 프로그램을 백그라운드로 보내는 것이다. • 현재 vim을 백그라운드로 돌리고, 명령 줄에 다른 작업을 할 수 있다. (예 컴파일) • 다시 돌아오려면 명령 줄에 fg
편리한 기능 • :set autoindent , set smartindent • :set tabstop =4 , :set ts=4 • :set shiftwidth=4 , :set sw=4 • 자동 인덴트 • = • gg=G • /home/neo/vim/kmp.cpp 에서 해보자
편리한 기능 • .vimrc • syntax on • set autoindent • set tabstop=4 • set shiftwidth=4 • set background=dark • :help • :help • :help something