VIM SEMINAR

91
VIM SEMINAR SPARCS 11 10 podo

description

VIM SEMINAR. SPARCS 11 10 podo. 꼭 알아야 할 것. 알아둘 만한 것. VIM??. 빔이 뭔가요. VIM = VI iMproved vi 의 확장판. VI. UNIX 기반의 문서 편집기 (Text Editor) 1976 년 Bill Joy Visual Editor vim, nvi , elvis. VIM. vi 의 확장판 중 가장 널리 쓰임 1991 년 Bram Moolenaar 대부분 Linux 의 기본 에디터 Emacs , Nano, ed - PowerPoint PPT Presentation

Transcript of VIM SEMINAR

Page 1: VIM SEMINAR

VIM SEMINAR

SPARCS 11

10 podo

Page 2: VIM SEMINAR

꼭 알아야 할 것

알아둘 만한 것

Page 3: VIM SEMINAR

VIM??

Page 4: VIM SEMINAR
Page 5: VIM SEMINAR

빔이 뭔가요VIM = VI iMproved

vi 의 확장판

Page 6: VIM SEMINAR

VIUNIX 기반의 문서 편집기 (Text Edi-tor)

1976 년 Bill Joy

Visual Editor

vim, nvi, elvis

Page 7: VIM SEMINAR
Page 8: VIM SEMINAR
Page 9: VIM SEMINAR

VIM vi 의 확장판 중 가장 널리 쓰임

1991 년 Bram Moolenaar

대부분 Linux 의 기본 에디터

- Emacs, Nano, ed

여러 OS 에서 사용 가능

- iOS, Android 까지도

Page 10: VIM SEMINAR

준비

Page 11: VIM SEMINAR
Page 12: VIM SEMINAR

이런 거 놔두고왜 까만 화면에서 ??

저 .. 전산게 X?

Page 13: VIM SEMINAR

텍스트 편집만 가능한Text Editor

IDE(Integrated Development Environment)

Page 14: VIM SEMINAR

장점 | VIM

응용 가능한 다양한 기능- 편집환경 변화 , 정규식 표현 , 다국어 지원 , 문법

검사

GUI 지원 (gVim)

모든 작업을 키보드를 이용

간단한 단축키와 명령어 만으로도 실행

Page 15: VIM SEMINAR

http://en.wikipedia.org/wiki/File:KB_Terminal_ADM3A.svg

Lear-Siegler ADM3A  터미널용 키보드

Page 16: VIM SEMINAR

익숙해지도록노력합시다 !!

Page 17: VIM SEMINAR

설치 | Linux

Wheel

Page 18: VIM SEMINAR

설치 | Windows

www.vim.org/download.php

Page 19: VIM SEMINAR

http://en.wikipedia.org/wiki/File:Vim.png

Page 20: VIM SEMINAR

실행

Page 21: VIM SEMINAR

PuTTY 를켜 봅시다 !

Page 22: VIM SEMINAR

$ vim [FileName]

Page 23: VIM SEMINAR
Page 24: VIM SEMINAR

입력 상태

Page 25: VIM SEMINAR

명령 상태 / ex 상태

Page 26: VIM SEMINAR

입력 상태

Page 27: VIM SEMINAR

개요 | 입력상태

내용 입력이 가능한 상태

명령 상태에서 a, o, i 등을 입력 (삽입 )

명령 상태에서 c, R 등을 입력 ( 수정 )

ESC 키를 누르면 명령상태로 전환

Page 28: VIM SEMINAR

입력 | 입력상태

i(nsert) : 현재 위치부터 입력

a(append) : 현재 위치 다음부터 입력

I : 현재 줄의 맨 앞에서부터 입력

A : 현재 줄의 맨 끝에서부터 입력

o(pen line) : 현재 줄 아래에 줄을 만들고 입력

O : 현재 줄의 위에 줄을 만들고 입력

Page 29: VIM SEMINAR

i lo <ESC> I he <ESC>

Page 30: VIM SEMINAR

a l <ESC> O 안녕 <ESC>

Page 31: VIM SEMINAR

명령 상태

Page 32: VIM SEMINAR

개요 | 명령상태

편집에 필요한 각종 명령이 가능한 상태

처음 vim 을 실행했을 때나 ESC 키를 입력

이동 , 수정 , 삭제 , 검색 등의 작업

Page 33: VIM SEMINAR

이동 | 명령상태

h : 왼쪽

j : 아래

k : 위

l : 오른쪽

Page 34: VIM SEMINAR

이동 | 명령상태

w : 다음 단어 ( 의미 기준 ) 의 첫 글자로 이동 W : 다음 단어 ( 공백 기준 ) 의 첫 글자로 이동 b : 이전 단어 ( 의미 기준 ) 의 첫 글자로 이동 B : 이전 단어 ( 공백 기준 ) 의 첫 글자로 이동

e : 다음 단어 ( 의미 기준 ) 의 끝 글자로 이동 E : 다음 단어 ( 공백 기준 ) 의 끝 글자로 이동

“ 의미” 기준이라는 것은 “ ” . / % <> 등등을 기준으로 구분

Page 35: VIM SEMINAR

이동 | 명령상태

0 : 현재 줄의 처음으로 이동 ^ : 현재 줄의 첫 글자로 이동 $ : 현재 줄의 마지막 글자로 이동

+, <Enter> : 다음 줄의 첫 글자로 이동 - : 이전 줄의 첫 글자로 이동

(, ) : 이전 / 다음 문단 ( 빈 줄 포함 ) 의 첫 글자로 이동 {, } : 이전 /다음 문단의 첫 글자로 이동 [[, ]] : 이전 / 다음 함수 ({, })의 처음으로

이동

Page 36: VIM SEMINAR

W W + j l - $

Page 37: VIM SEMINAR

이동 | 명령상태 H : 현재 화면의 맨 위로 커서 이동 M : 현재 화면의 가운데로 커서 이동 L : 현재 화면의 맨 아래로 커서 이동

gg : 파일 맨 처음으로 이동 [ 줄 번호 ] + gg : 해당 줄로 이동 G : 파일 맨 마지막으로 이동

:[ 줄 번호 ] <Enter> 를 이용해도 해당 줄로 이동 가능

Page 38: VIM SEMINAR

k

h j l

Page 39: VIM SEMINAR

삭제 | 명령상태

x, dl : 현재 위치의 글자 삭제 X, dh : 현재 위치 바로 앞의 글자 삭제 d + < 이동키 > : 현재 위치부터 < 이동키 >

까지 움직인 부분을 삭제- dw( 단어 ), d0( 처음까지 ), dj( 그 줄과 다음 줄 ), dk

D, d$ :

dd : 커서가 있는 줄을 삭제

현재 위치부터 줄의 끝까지 삭제

Page 40: VIM SEMINAR

dw j e D x G dd

Page 41: VIM SEMINAR

편집 | 명령상태 → Visual Block 상태

Page 42: VIM SEMINAR

편집 | 명령상태 → Visual Block 상태

이동 명령어를 이용하여 블록을 지정

v : 글자 단위로 블록 지정 , 이동명령어 이용

V : 줄 단위로 블록 지정 Ctrl + v : 현재 위치부터 사각형으로 블록

지정

Page 43: VIM SEMINAR

편집 | Visual Block 상태

블록 지정한 후 ,

x, d, c : 잘라내기 ( 삭제 후 클립보드에 저장 )

y : 복사

Page 44: VIM SEMINAR

편집 | 명령상태

y + < 이동키 > : 현재 위치부터 < 이동키 >까지 움직인 부분을 복사

yy : 현재 줄을 복사

p : 현재 위치의 다음에 붙여넣기 P : 현재 위치에 붙여넣기

Page 45: VIM SEMINAR

수정 | 명령상태 → 입력상태

~ : 대소문자 변환 r : 현재 글자 수정 ( 한 글자 ) R : “ 바꾸기” 상태로 전환 ( 현재 글자 이후로 ESC 키를 누르기 전까지 수정 )

s, cl : 현재 글자를 여러 글자로 수정 c + < 이동키 > : 현재 위치부터 < 이동키 >

까지 움직인 부분을 교체 C, c$ : cc : 현재 위치의 줄을 교체즉 , c 명령어는 삭제와 입력을 동시에 해 주는 명령어

현재 위치부터 줄의 끝까지 교체

Page 46: VIM SEMINAR

검색 | 명령상태

f + [ 글자 ] : 다음 [ 글자 ] 가 나오는 위치로 커서 이동

t + [ 글자 ] : 다음 [ 글자 ] 가 나오는 위치 바로 직전으로 커서 이동

dfX, ctX 등으로 활용 가능

Page 47: VIM SEMINAR

검색 | 명령상태

/[RE] : 파일에서 [RE] 검색 (뒤쪽으로 )

?[RE] : 파일에서 [RE] 검색 (앞쪽으로 )

n : 다음 찾기N : 이전 찾기

Regular Expression( 정규 표현식 )

Page 48: VIM SEMINAR

스크롤 | 명령상태

Ctrl + F : 한 화면 앞으로 ( 아래로 ) 스크롤

Ctrl + B : 한 화면 뒤로 ( 위로 ) 스크롤 Ctrl + D : 반 화면 앞으로 스크롤 Ctrl + U : 반 화면 뒤로 스크롤 Ctrl + E : 한 줄 앞으로 스크롤 Ctrl + Y : 한 줄 뒤로 스크롤

z + <Enter>, ., - : 현재 줄을 화면의 맨 위 , 가운데 , 맨 아래로 스크롤

Page 49: VIM SEMINAR

파일 | 명령상태

ZZ : 파일을 저장 후 종료

Page 50: VIM SEMINAR

EX 상태

Page 51: VIM SEMINAR

개요 | ex 상태

명령 상태에서 : 키 입력

파일 저장 , 읽기 , 각종 치환 , vim 설정

Page 52: VIM SEMINAR

파일 | ex 상태

:e [FileName] : 불러오기 :e!% : 현재 파일 다시 불러오기 :q : 편집 종료 :q! : 저장하지 않고 강제 종료 :w [FileName] : 저장 ( 파일명 생략 가

능 ) :w! : 강제 저장 :wq : :f : 파일 이름 , 라인 수

출력 :r [FileName] : 파일 끼워 넣기

저장 후 종료

Page 53: VIM SEMINAR

치환 | ex 상태

[Old] 를 [New] 로 치환

:s/[Old]/[New] : 현재 줄에서 치환 :s/[Old]/[New]/g : 현재 줄에서 모두

치환 :%s/[Old]/[New]/g : 문서전체에서 치환 :%s/[Old]/[New]/gc : 확인하며 전체에서

치환 :1,10s/[Old]/[New] : 1~10 번째 줄에서

치환 :-2,+4s/[Old]/[New] : 커서의 2 줄

위부터 4 줄 아래까지 치환

Page 54: VIM SEMINAR

VIM 설정 | ex 상태

:set nu : (number) 줄 번호 표시 :set nonu : 줄 번호 지우기

:set ai : (autoindent) 자동 들여쓰기

:set noai : 자동 들여쓰기 해제

:set mouse=a : 마우스로 커서 선택 가능 :set mouse=c : 마우스로 커서 선택 불가능

:set paste : ( 마우스 ) 붙여넣기 상태 :set nopaste : 붙여넣기 상태 해제

Page 55: VIM SEMINAR

Thanks to : SPARCS 10 noname

Page 56: VIM SEMINAR

VIM 설정 | ex 상태

:set ts=[ 수 ] : (tabstop) 한 tab 의 크기

설정 :set sts=[ 수 ] : (softtabstop) tab 이동

크기 :set sw=[ 수 ] : (shiftwidth) shift 크기

조절 :set (no)et : (expandtab) tab 을 space 로 변환

/ 해제 :set retab : tab 설정을 새로 적용

:set list : Enter, 탭 등을 문자로 표현<<, >> : 문자를 tab 만큼 shift 한다

Page 57: VIM SEMINAR

VIM 설정 | ex 상태

:highlight : 하이라이트 설정 :nohl : (nohighlight) 검색 후 하이라이트를

지움

:syntax on/off : 문법 설정 /해제

:set syntax=[Language] : 문법 언어 설정

Page 58: VIM SEMINAR

NETRW | ex 상태

네트워크를 통해서 파일을 읽고 쓰기 http://www.vim.org/scripts/script.php?

script_id=1075

디렉토리 내용 보기도 가능

:e [http://…] : 편집:Nread : 읽기:Nwrite : 쓰기:e ./ : 현재 디렉토리

Page 59: VIM SEMINAR

SHELL 명령 사용:![Command] : [Command] 를 실행

:r ![Command] : 결과 내용을 붙여넣음

Ctrl + Z 를 눌러 vim 정지

$ fg

Page 60: VIM SEMINAR

유용한 기능들

Page 61: VIM SEMINAR

인터페이스 설정 | .vimrc

/home/[ID]/.vimrc

vim 설정을 자동으로 구성

ex 모드의 기능을 사용

.vim 디렉토리도 함께 복사

Page 62: VIM SEMINAR

/home/podo/.vimrc

Page 63: VIM SEMINAR

실행 취소 및 다시 실행u : 실행 취소 (Undo)

Ctrl + R : 다시 실행 (Redo)

Page 64: VIM SEMINAR

반복 동작명령어 앞에 수를 붙여서 반복 동작의

회수를 지정

[ 수 ] + d, d + [ 수 ] : 반복 삭제

[ 수 ] + p : 반복 붙여넣기

Page 65: VIM SEMINAR

창 나누기 :sp : (split) 수평으로 분할 :vs, :vsp : (vsplit) 수직으로 분할 :[크기 ]sp [FileName]

Ctrl + ww : 창 간 이동 Ctrl + wh/j/k/l : 각 방향의 창으로 이동 Ctrl + w= : 창 크기 같게 하기 :resize [크기 ][명령 ] : 창 크기 재조정

Page 66: VIM SEMINAR
Page 67: VIM SEMINAR

여러 개의 파일 편집 여러 개의 파일을 동시에 열어서 편집 한 화면에 나오진 않지만 vim 에서 전환 가능 파일간 복사 , 잘라내기 , 붙이기 등이 가능

$ vim [FileName1] [FileName2] …

:n : 다음 파일 편집 :N : 이전 파일 편집

:q 로 종료하는 경우 다 같이 꺼짐에 주의

Page 68: VIM SEMINAR

탭 여러 파일을 관리할 때 탭으로 표시

:tabnew [FileName] : 새 탭 생성 ( 파일이름

생략가능 )

:tabn : (tabnext) 다음 탭으로 이동 :tabp : (tabprevious) 이전 탭으로 이동 :tabfir : (tabfirst) 처음 탭으로 이동 :tabl : (tablast) 마지막 탭으로 이동

$ vim –p [File1] [File2] … : tab 으로 파일들 열기

Page 69: VIM SEMINAR
Page 70: VIM SEMINAR

접기 블록으로 선택한 영역을 접어 놓음

zf : 영역 접기 zo, zO : 접은 영역 열기 zc, zC : 접은 영역 접기 zr, zR : 접은 영역 모두 펼치기 zm, zM : 접은 영역 모두 접기 zd : 접기 영역 삭제

Page 71: VIM SEMINAR

V [ 영역 선택 ] zf zo

Page 72: VIM SEMINAR

자동 완성파일 안에서 나왔던 단어를 바탕으로

목록을 생성하여 선택

Ctrl + P

Thanks to SPARCS 08 anna418

Page 73: VIM SEMINAR

Ctrl + P

Page 74: VIM SEMINAR

매크로 q : 매크로 입력 및 종료

q + [Reg] + [매크로 행동 ] + q : 매크로 저장

@[Reg] : [Reg] 에 저장한 매크로 실행

:reg, :register 로 레지스터 내용을 볼 수 있다 .

Page 75: VIM SEMINAR

i 1. <ESC> q a yy p Ctrl+a q 98@a

Page 76: VIM SEMINAR

마크m[ 알파벳 ] : 현재 위치를 [ 알파벳 ] 으로

마크

- 52 개의 마크 가능 ( 대소문자 구분 )

`[ 알파벳 ] : 마크된 위치로 이동

‘[ 알파벳 ] : 마크된 줄의 처음으로 이동

Page 77: VIM SEMINAR

VIMDIFF 두 파일의 다른 점을 vim 으로 보여줌

$ vimdiff [FileName1] [FileName2] …

:do : 다른 창의 내용으로 현재 내용 바꾸기 :dp : 현재 창의 내용을 다른 창으로 넣기 ]c : 다음 다른 부분으로 이동 [c : 이전 다른 부분으로 이동

Page 78: VIM SEMINAR
Page 79: VIM SEMINAR

도와주세요 ..?

Page 80: VIM SEMINAR

$ vimtutor

Page 81: VIM SEMINAR

:help [Command]

Page 82: VIM SEMINAR

http://picasaweb.google.com/lh/photo/PQ6_Ud_mJRpGBM38-7-Pig?feat=embedwebsite

Page 83: VIM SEMINAR

이동

자주 쓰면서익히도록 !!

입력 삭제

Page 84: VIM SEMINAR

References http://ko.wikipedia.org/wiki/Vi

http://plusblog.tistory.com/930

http://en.wikipedia.org/wiki/Vim_(text_editor)

http://www.joinc.co.kr/modules/moniwiki/wik-i.php/Site/Vim/Documents/UsedVim#AEN26

http://wiki.kldp.org/KoreanDoc/html/Vim_Guide-KLDP/Vim_Guide-KLDP.html

SPARCS “VIM” Seminar(neo, mazorro)

Page 85: VIM SEMINAR

질문 ?

Page 86: VIM SEMINAR

Assignment 직접 써봐야 늘겠죠 ??

vim_ex 파일을 실행

수 하나를 입력 받고 10 을 더하기

bit.sparcs.org/~[ID] 에 결과 띄우기

Programming

★ Hint : /home/[ID]/public_html/index.html 에 출력

Page 87: VIM SEMINAR

Assignment 어떤 언어를 써도 상관 ㄴㄴ

단 ! VIM 을 사용 !!

컴파일 방법은 물어보거나 검색 ㄱㄱ

gcc 의 경우

- $ gcc vim_ex.c –o vim_ex

Page 88: VIM SEMINAR
Page 89: VIM SEMINAR
Page 90: VIM SEMINAR
Page 91: VIM SEMINAR

끝ㅋ