Post on 07-Feb-2016
description
Vim seminarSPARCS 12
yumgyun
이런게 아닙니다@@
vim -> vi improve!
유닉스 계열에서 전통적으로 널리 사용도던 vi 의 improve 즉 undo, syntax coloring, split win-dows 등의 기능을 포함시킨 vi 의 보강된 프로그램이다 .
1. vim 이란 ?
유닉스 환경의 대표적인 editor
빌 조이 Visual editor ( 그 전엔 line editor)
GUI 보다 능숙해질 경우 매우 빠른 능률
1. vi 란 ?
vi 의 확장판 중 가장 널리 쓰임 1991 년 Bram Moolenaar
대부분 Linux 의 기본 에디터 -Emacs, Nano, ed
여러 OS 에서 사용 가능 - iOS, Android 까지도
1. 다시 vim 이란 ?
무작정 시작해봅시다 @_@
Putty 를 키세요
2. 실습
$ vim [filename]
입력모드 파일모드 명령모드
Vim 의 3 가지모드
I > 입력모드
Esc > 명령모드
: > 파일모드
2-1. 입력모드2-2. 명령모드2-3. 파일모드2-4. 그 외 유용한 기능들
내용 입력이 가능한 상태 명령 상태에서 a, o, i 등을 입력 ( 삽입 )
명령 상태에서 c, R 등을 입력 ( 수정 )
ESC 키를 누르면 명령상태로 전환
2-1. 입력모드
2-1. 입력 명령어
i hello <Esc> I aa <Esc> A bb <Esc> a c <Esc> o hi <Esc> O hiiiiii <Esc> s aa <esc> O a <Esc> S b <Esc>
직접 해봅시다 .
편집에 필요한 각종 명령이 가능한 상태 처음 vim 을 실행했을 때나 ESC 키를 입력 이동 , 수정 , 삭제 , 검색 등의 작업
2-2. 명령모드
2-2. 커서이동
2-2. 커서이동
W- 다음 단어의 맨 처음으로 커서이동 E- 다음 단어의 맨 마지막으로 커서이동 B 이전 단어의 맨 처음으로 커서이동대문자는 공백기준 소문자는 의미기준 “ 의미” 기준이라는 것은 “ ” . / % <> 등등을 기준으로 구분
2-2. 커서이동
0 : 현재 줄의 처음으로 이동 ^ : 현재 줄의 첫 글자로 이동 $ : 현재 줄의 마지막 글자로 이동
2-2. 커서이동
H : 현재 화면의 맨 위로 커서 이동 M : 현재 화면의 가운데로 커서 이동 L : 현재 화면의 맨 아래로 커서 이동
gg : 파일 맨 처음으로 이동 [ 줄 번호 ] + gg : 해당 줄로 이동 G : 파일 맨 마지막으로 이동
2-2. 커서이동
2-2. 편집
gg yy j p j dd
직접 해봅시다 .
2-2. 편집 (visual)
2-2. 편집 (visual)
잘라내기 : x, d, c
복사 : y
블록으로 선택한 영역을 접어 놓음 zf : 영역 접기 zo, zO : 접은 영역 열기 zc, zC : 접은 영역 접기 zr, zR : 접은 영역 모두 펼치기 zm, zM : 접은 영역 모두 접기 zd : 접기 영역 삭제
2-2. 블록접기
~ : 대소문자 변환 r : 현재 글자 수정 ( 한 글자 ) R : “ 바꾸기” 상태로 전환 ( 현재 글자 이후로 ESC키를 누르기 전까지 수정 ) s, cl : 현재 글자를 여러 글자로 수정 c + < 이동키 > : 현재 위치부터 < 이동키 > 까지 움직인 부분을 교체 cc : 현재 위치의 줄을 교체
2-2. 편집 ( 그 외 )
hello sparcs abcdefghi 입력 후 복사해서 5 번 붙여넣기 (10 줄만들기 )
그 후 8 번째 줄을 bye sparcs 로 수정
직접 해봅시다 .
f + [ 글자 ] : 다음 [ 글자 ] 가 나오는 위치로 커서 이동 t + [ 글자 ] : 다음 [ 글자 ] 가 나오는 위치 바로 직전으로 커서 이동 /[RE] : 파일에서 [RE] 검색 ( 뒤쪽으로 ) ?[RE] : 파일에서 [RE] 검색 ( 앞쪽으로 ) n : 다음 찾기 N : 이전 찾기
2-2. 검색
2-2. 스크롤
U : 실행취소 (Undo)
^R : 다시 원래대로 (Redo)
zz : 파일 저장 후 종료
2-2. 그 외
명령 상태에서 : 키 입력 파일 저장 , 읽기 , 각종 치환 , vim 설정
2-3. 파일모드
정규 표현식 Vim 의 매우 강력한 기능 중 하나 찾기 : ':/ 패턴 /‘
치환 : ‘:[ 범위 ]s/[oldpattern]/[newpattern]/’
2-3. 검색 + 치환
2-3. 파일 열기 / 저장 / 종료
:set nu : (number) 줄 번호 표시 nonu : 줄 번호 지우기
ai : (autoindent) 자동 들여쓰기 noai : 자동 들여쓰기 해제 mouse=a : 마우스로 커서 선택 가능 mouse=c : 마우스로 커서 선택 불가능 paste : ( 마우스 ) 붙여넣기 상태 nopaste : 붙여넣기 상태 해제
2-3. 각종 셋팅
:![command] : [command] 결과를 실행-> 이거보다 사실 ctrl+z 로 vim 을 정지하는 것이 편리-> 복구 fg
2-3. SHELL 명령 사용
반복동작 , 창나누기 , 여러 파일 편집…2-4. 그 외 유용한 기능들
명령어 앞에 수를 붙여서 반복 동작의 회수를 지정 [ 수 ] + d, d + [ 수 ] : 반복 삭제 [ 수 ] + p : 반복 붙여넣기
2-4. 반복동작
:sp : (split) 수평으로 분할 :vs, :vsp : (vsplit) 수직으로 분할 Ctrl + ww : 창 간 이동 Ctrl + wh/j/k/l : 각 방향의 창으로 이동 Ctrl + w= : 창 크기 같게 하기
2-4. 창나누기
:set tabstop=4 탭의 공백 개수 :set expandtab 탭의 공백을 스페이스로 치환
2-4. 공백처리
여러 개의 파일을 동시에 열어서 편집 한 화면에 나오진 않지만 vim 에서 전환 가능 파일간 복사 , 잘라내기 , 붙이기 등이 가능 $ vim [FileName1] [FileName2] … :n : 다음 파일 편집 :N : 이전 파일 편집
2-4. 여러 개의 파일 편집
여러 파일을 관리할 때 탭으로 표시 :tabnew [FileName] : 새 탭 생성 (파일이름생략가능 ) :tabn : (tabnext) 다음 탭으로 이동 :tabp : (tabprevious) 이전 탭으로 이동 :tabfir : (tabfirst) 처음 탭으로 이동 :tabl : (tablast) 마지막 탭으로 이동
2-4. 탭생성
2-4. 탭
Ctrl+P
2-4. 자동완성
두 파일의 다른 점을 vim 으로 보여줌 $ vimdiff [FileName1] [FileName2] … :do : 다른 창의 내용으로 현재 내용 바꾸기 :dp : 현재 창의 내용을 다른 창으로 넣기 ]c : 다음 다른 부분으로 이동 [c : 이전 다른 부분으로 이동
2-4. vimdiff
방법 1. vimtutor
3. 더 배우고 싶으면 ..
방법 2. vim adventure
3. 더 배우고 싶으면 ..