새소식

서버관련

VI편집기(VIM)

  • -
SMALL

1. vi편집기

 

1) vi vim 편집기

- vi편집기 : UNIX시스템의 표준 에디터

- vim편집기 : vi편집기에서 확장된 것(리눅스에서는 alias설정으로 vi편집기 실행됨)

 

2) vi에디터의 세가지 모드


  - ex 모드 : 추가 명령을 실행, 검색치환기능, vi에디터 설정기능등.

- 명령어 모드 : 기본모드, 문자를 모두 명령어로 인식, 커서이동, 삭제, 수정, 복사, 붙여넣기등

- 입력 모드 : 글을입력할수 있는 모드

 

3) vi 편집기 실행

실행 : vi [옵션] [파일명]

- vi 파일명 : 파일열기

- vi +n 파일명 : 파일을 열었을 때 n번째 행에 커서 위치

- vi +/’문자파일명 : 파일을 열었을 때 문자가 처음 나타난 곳에 커서 위치

- vi –r 파일명 : 저장하지 않고 종료된 파일을 다시 불러 수정

- vi –R 파일명 : 읽기 전용으로 파일열기

 

4) 입력모드로 전환

기본 명령모드에서 입력모드로 전환하는 방법

- a : 커서 뒤에 입력

- i : 커서 앞에 입력

- o : 커서가 있는 라인 아래에 새로운 라인 생성 후 입력

- A : 라인의 끝에 입력

- I : 라인의 시작부분에 입력

- O : 커서가 있는 라인 위에 새로운 라인 생성후 입력

 

5) 여러 파일 편집

파일을 편집하는 중간에 다른 파일 조회할 때 사용
파일 편집 도중 다른 파일을 불러오기

파일 두 개 이상 불러오고 불러온 파일들 사이를 이동할 때 사용

- :e 파일명 : 파일 편집중인 문서를 저장한 후 다른 파일을 불러와 편집

- :e! 파일명 : 현재 수정중인 파일을 저장하지 않고 , 새로운 파일을 불러와 편집

- :e# : 이전에 편집하던 파일로 되돌아감

- :f : 현재 편집중인 파일의 이름과 라인 수를 출력

- :r 파일명 : 파일 편집 중에 다른 파일 끼워넣기

 

6) vi 편집기 종료

vi 편집기 종료하려면 ex모드로 가야함 : [Esc]키 누름 à [:] 입력

- :q : 변경된 내용이 없는 경우 그대로 종료하기

- :q! : 변경된 내용을 저장하지 않고 종료하기

- :wq : 변경된 내용을 저장하고 종료하기

- :wq! : 쓰기 권한이 없는 파일에 대해 강제로 파일에 저장하고 종료하기

- :w new_filename : 변경된 내용을 새로운 파일로 저장하기

- :sh : vi를 일시 종료하고 shell상태로 나간후 셸 명령을 실행

 

2. vi에디터의 편집 기능

 

1) 커서 이동 명령

편집기 안에서 방향을 이동하는 명령

문자이동 h : 커서를 한 문자 왼쪽으로 이동

         j : 커서를 한 라인 아래로 이동

         k : 커서를 한 라인 위로 이동

           l : 커서를 한 문자 오른쪽으로 이동

행 이동(명령어모드) H(home) : 현재 화면의 첫 행, 첫 칼럼으로 커서 이동

                   M(middle) : 현재 화면의 중간 행, 첫 칼럼으로 커서 이동

                   L(last) : 현재 화면의 마지막 행, 첫 칼럼으로 커서 이동

                   - : 윗 행의 첫 문자로 이동

                        + : 아래 행의 첫 칼럼으로 커서 이동

                       <Enter> : 아래 행의 칼럼으로 커서 이동

                       ^ 또는 <Home> : 현재 행의 처음으로 커서 이동

                        $ 또는 <End> : 현재 행의 마지막으로 커서 이동

행 단위 이동(ex모드) :n : n번째 행으로 커서 이동

                         :$ 또는 G : 문서의 마지막 행으로 커서 이동

화면 이동 <Ctrl>+f 또는 <PgDn> : 커서를 다음 페이지로 이동

            <Ctrl>+h 또는 <PgUp> : 커서를 이전 페이지로 이동

            <Ctrl>+d : 화면 내용이 반 페이지 아래로 이동

            <Ctrl>+u : 화면 내용이 반 페이지 위로 이동

 

2) 삭제 명령

문자 x : 현재 커서 위치의 한 문자 삭제

 nx : 현재 커서 위치의 문자를 포함하여 뒤쪽으로 n개의 문자 삭제

     X : 현재 커서 위치 앞부분의 한 문자 삭제

     nX : 현재 커서 위치의 문자를 포함하지 않고 앞쪽으로 n개의 문자 삭제

단어 dw : 현재 커서 위치에서 오른쪽 방향으로 한 단어 삭제(뒤쪽 공백 포함)

     db  : 현재 커서 위치에서 왼쪽 방향으로 한 단어 삭제

dd : 현재 커서가 위치한 행 전체 삭제

   ndd : 현재 커서가 위치한 행부터 n 개의 행 삭제

   D : 현재 커서가 위치한 위치부터 그 행의 끝까지 삭제

 

3) 복사/이동 명령

복사 : 복사 하고자 하는 데이터를 임시 기억장소에 저장 후 붙여 넣기

이동 : 이동하고자 하는 데이터를 잘라내어서 임시 기억장소에 저장 후 붙여넣기

- yw : 현재 커서가 위치한 단어를 임시 버퍼에 복사

- yy 또는 y : 현재 커서가 위치한 한 행을 임시 버퍼에 복사

- nY(n:정수) : 현재 커서가 위치한 행부터 n개의 행을 임시 버퍼에 복사

- P : 복사된 내용을 현재 커서가 위치한 행의 다음에 복사

- p : 복사된 내용을 현재 커서가 위치한 행의 위에 삽입

 

4) 검색 명령

검색 방향

사용 형식

 

순방향

/문자열/

/문자열

커서가 위치한 곳에서 순방향으로 문자열 검색

역 방향

?문자열?

?문자열

커서가 위치한 곳에서 역 방향으로 문자열 검색

다음문자

n

검색하는 문자열이 여러 개인 경우 다음 문자를 경색. 순방향으로 검색

다음문자

N

검색하는 문자열이 여러 개인 경우 다음 문자를 검색. 역방향으로 검색

 

5) 치환 명령/작업 취소

치환명령 r : 한 문자를 다른 문자로 치환

            R : 하나 이상의 문자를 치환

            cw : 현재 커서가 위치한 단어의 끝까지 치환

            cc : 현재 커서가 위치한 단어의 끝까지 치환

            C : 현재 커서 위치에서 그 행 끝까지 치환

 

작업취소 u : undo. 바로 전에 수행했던 명령들을 실행 취소

            U : 현재 커서가 위치한 행에서 수행되었던 명령을 취소

            . : 바로 전에 수행한 명령을 반복 수행

 

3. vi에디터의 활용

Ex에디터를 기반으로 제작된 화면 단위의 에디터

 

1) 치환 명령 / 작업 취소

복사/삭제/이동/부분저장

기능

명령

기능

복사(co)

:1,2 co 3

1-2행을 3행 다음으로 복사

복사(t)

:1,5 t 3

1-5행을 3행 다음으로 복사

이동(m)

:4,5 m 6

4-5행을 6행 다음으로 이동

삭제(d)

:1,5 d

1-5행을 삭제

부분저장(w)

:1,5 w newfile

1-5행을 newfile이라는 새파일로 저장

 

문자열 치환 :n,m s/string1/string2/g

n

치환을 시작하고자 하는 라인의 시작번호

m

치환을 시작하고자 하는 라인의 끝번호

s

치환 명령

/

string간의 구분 문자

string1

찾는 문자열

string2

치환할 문자열

g

n부터 m라인에 string1이 여러 번 나타날 경우 string2로 모두 치환

 

TIP : 문자열 치환 예

:s/aaa/bbb또는

:.s/aaa/bbb

현재 커서가 위치한 라인의 첫 번째 aaa단어를 bbb단어로 치환

:s/aaa/bbb/g

현재 커서가 위치한 라인의 모든 aaa단어를 bbb단어로 치환

:20s/aaa/bbb

20번째 라인에서 첫 번째 aaa단어를 bbb단어로 치환

:5,10s/aaa/bbb

5번 라인부터 10번 라인까지 첫 번째 aaa단어를 bbb단어로 치환

:5,10s/aaa/bbb/g

5번 라인부터 10번 라인까지 모든 aaa단어를 bbb단어로 치환

:1,$s/aaa/bbb/g

:%s/aaa/bbb/g

1행부터 마지막 행까지 모든 aaa단어를 bbb단어로 치환

:s/aaa//

현재 커서가 위치한 라인의 첫 번째 aaa문자를 삭제

:s/aaa//g

현재 커서가 위치한 라인의 모든 aaa문자를 삭제

:1,$s/aaa//g

1행부터 마지막 행까지 모든 aaa단어를 삭제($=마지막)

:.-10,.+5s/aaa/bbb/g

현재 커서가 위치한 라인 -10행부터 현재 커서가 위치한 라인 +5행까지의 모든 aaa단어를 bbb로 치환

 

 

4. vi 에디터 환경설정

 

1)set명령어

 vi편집기에서 라인번호 표시 또는 들여쓰기를 넣는등의 설정

:set

vi 모드에서 지정할수 있는 모드 값을 출력

:se nu

:se nonu

파일의 내용에 라인번호를 붙여서 출력, 해제

:set ai

:set noai

자동 인덴트를 설정하거나 설정된 자동 인덴트 기능을 해제

:set cindent

:set nocindent

C프로그래밍 자동 인덴트 설정 또는 해제

:set hlsearch

:set nohlsearch

패턴검색에서 일치되는 단어가 찾아지면 쉽게 볼수 있도록 하이라이트 표시, 해제

:set ts=8

:set tabstop=5

탭 키의 크기 변경(기본 8)

:syn on

:syn off

vim에서 기본으로 지원한느 코드별 컬러 표시, 해제

:map 명령 기능

key map을 정의하여 새로운 명령 만들기

 

2) vi 환경설정 파일

vi환경설정 파일은 .vimrc .exrc사용(로그인사용자의 홈디렉토리에 있음)

vi실행 시 로그인 사용자의 홈 디렉토리에서 .vimrc 파일 검색 후 적용

.vimrc파일이 없는경우 .exec 파일 검색 후 적용



자주 사용안하는것들은 매일 찾느라 고생;;;

가져온곳 :  http://daecheol.tistory.com/entry/vi%ED%8E%B8%EC%A7%91%EA%B8%B0

LIST

'서버관련' 카테고리의 다른 글

[펌]Apache 403 Forbidden error 해결 방법  (4) 2011.12.08
AWK 명령어  (0) 2011.04.24
bash 쉘 스크립트 - 반복명령, 함수  (0) 2011.04.22
bash 쉘 스크립트  (0) 2011.04.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.