리눅스 (Linux)2015. 12. 25. 00:06

▣ vi

vi(visual editor) : 리눅스나 유닉스에서 일반적으로 사용하는 텍스트 편집기. 자체 윈도우가 있는 것이 아니라 터미널에서 실행 되고, 메뉴가 없다.






◎ vi 는 세가지 상태(모드,Mode)가 있다.

  1) 명령상태 또는 esc 상태

  2) 입력상태 또는 편집 상태

  3) ex상태 또는 :(콜론) 상태 또는 실행 상태



  vi 를 실행하면 처음상태가 명령상태이다. 키보드 입력이 하나의 명령으로 동작한다.



  i(insert) 나 a(append) 를 누르면 입력상태로 전환된다.

  (왼쪽하단에 -끼워넣기- 또는 -INSERT- 로 표시됨)



  다시 명령상태로 전환하려면 esc 키를 누르면 된다.



  ex 상태는 콜론(:) 으로 시작하는 상태를 말한다.

  :set  nu   ---> 라인번호 출력

  :set  nonu ---> 라인번호 해제



  처음 vi 를 실행하면 명령상태 이므로 아래 문자키를 입력하여 입력상태로 만들고 입력을 하게 된다.




◎ 입력상태

  i        -- 현재 커서 앞쪽에 입력

  a       -- 현재 커서 뒤쪽에 입력

  I        -- 현재 라인 처음에 입력(라인이 공백으로 시작하면 실제 단어 앞에 입력 됨)

  A       -- 현재 라인 마지막에 입력

  o       -- 현재 라인 아래에 새로운 줄을 만들고 입력

  O       -- 현재 라인 위쪽에 새로운 줄을 만들고 입력

  s       --  현재 커서의 글자 삭제후 입력

  S       --  현재 라인 삭제후 입력




◎ 삭제( 명령상태에서 입력)

  x 또는 delete 키        -- 현재 커서 문자 한자 삭제

  X                        -- 현재 커서 앞의 글자 삭제

  dd                       --  한 줄 삭제

  숫자 + dd               -- 현재 커서부터 숫자만큼 행 삭제

  d$                       -- 현재 커서 부터 현재 라인의 마지막까지 삭제

  ($는 마지막을 의미)

  d0                       -- 현재 커서 앞 문자부터 라인의 처음부분까지 삭제

  (숫자 0 은 처음을 의미)

  d^                       --현재 커서 앞 문자부터 라인의 처음부분까지 삭제

  (^ 는 처음을 의미)

  dw                       -- 단어 삭제(단어의 첫번째 글자에 커서를 위치 시켜야 함)

  u                         -- undo, 작업 취소




◎ 교체(Replace)

  r           -- 한 자 교체

  R          -- 여러 글자 교체

  cw         -- 한 단어 교체(단어의 첫번째 철자에 커서를 위치시켜야 함)

  cc         -- 한 줄 교체(Change entire line)




◎ 저장 및 종료 또는 저장하지 않고 종료

  명령상태로 바꾼 다음(esc) 아래 명령을 입력

  :q (저장하지 않고 종료, q ---> quit)

  :w (파일 저장)

  :wq (저장후 종료, w ---> write, q ---> quit)

   vi 실행시 파일명을 지정하지 않았으면 리눅스 명령어 상태로 나올 때 저장할 파일명을 입력해야 한다. (:wq 파일명)

  :q!  (저장하지 않고 강제 종료)

  :wq! (저장후 강제종료)

 



◎ 문자키를 이용한 커서 이동하기(명령상태에서 하기)

          k(위)

h(왼쪽)            l(오른쪽)

          j(아래)



0(숫자 영) : 행의 처음으로 이동

$ : 행의 마지막으로 이동

G : 문서의 마지막으로 이동

gg : 문서의 처음으로 이동

33번 라인으로 이동하기    -- 33G 또는 :33 엔터

PgUP, PgDN : 페이지 이동




◎ 검색

① 위에서 아래로 검색

  /검색단어(명령상태에서 / 누르고 검색단어 입력후 엔터)

  n 을 누르면 다음 단어로 이동된다.

  N 을 누르면 이전 단어로 이동



② 아래에서 위로 검색

  ?검색단어

  n 을 누르면 위 방향으로 계속 찾기

  N 을 누르면 아래 방향으로 계속 찾기

 



◎ 복사 및 붙여넣기

  한줄 복사       -- yy (yank)

  숫자 + yy       -- 현재 커서부터 숫자 만큼의 행을 복사

  한줄 붙여넣기  -- p (paste)  -- 현재 라인 아래 줄에 붙여넣기

                       P(대문자)  -- 현재 라인 윗 줄에 붙여 넣기






◎ ex 모드

① vi 상태에서 리눅스 명령어 실행

  :!명령어

  :!cal

  :.!cal          -- 현재 커서 위치에 리눅스 명령어 결과를 가져오기



② 색상 적용하기

  :color  evening

  :color  morning

  :color  default



  :!ls  /usr/share/vim/vim72/colors/         --  적용할 수 있는 색상 단어 확인(VI 상태)

  #ls  /usr/share/vim/vim72/colors/         -- 적용할 수 있는 색상 단어 확인(터미널 상태)




③ split(화면 분할)


  vim 은 vi 를 개선한 프로그램(Vi Improved)

  #vim  test.txt

  :split(수평 분할, 원래 파일 화면)

  :vs(수직 분할, 원래 파일 화면)



  ctrl + ww           -- 창간의 이동

  ctrl + wn            -- 수평분할(빈 화면)

  ctrl + wv            -- 수직분할(빈 화면)

  :e  파일명          -- 지정한 파일 열기

  :enew               -- 현재 문서를 닫고 새로운 빈문서 열기




◎ vi 치환

① 사용방법

  s : search

  :1,10s/원래단어/바꿀단어  ---> 1번 라인에서 10번 라인까지 변경

  :%s/원래단어/바꿀단어     ---> 파일 전체에서 첫번째 단어만 변경

  :%s/원래단어/바꿀단어/g  ---> 파일 전체에서 한 줄의 모든 단어 변경(g 는 global 을 의미)



② 사용예제


  #vim  linux.txt

  apple

  apple  apple  apple

  orange

  orange  orange  orange

  mango

  mango  mango  mango



  위와 같이 입력후

  :%s/apple/tico (명령상태에서 입력후 엔터-결과 확인)

  :%s/orange/matiz/g



  :set  nohls         -- 검색 단어 강조해제

  :set  hls            -- 검색 단어 강조




◎ VI 설정 파일 사용하기

① 사용방법

  vi  설정파일 --->  .vimrc

  로그인한 계정의 홈디렉토리에 존재해야 한다.

  루트의 경우에는 /root 에 존재해야 한다.



② 사용예제

  #cd

  #pwd

   /root

  #vi  .vimrc

  set  nu

  color  evening

  #vi   test2.txt                -- 라인번호와 색상이 적용되는지 확인

[출처] [LINUX] vi|작성자 Serendipity

'리눅스 (Linux)' 카테고리의 다른 글

리눅스 명령어 모음 #2  (0) 2015.12.25
vi 중요 명령어  (0) 2015.12.25
[리눅스] 버전 정보 확인  (0) 2015.12.25
Hostname명 변경  (0) 2015.12.25
리눅스 런레벨  (0) 2015.12.25
Posted by 랩퍼우