vi 편집기(1976, 빌조이->초기 BSD릴리즈에 포함될 편집기로 개발

  • vi는 리눅스 환경에서 가장 많이 쓰이는 문서 편집기, 윈도우의 메모장과 같다.
  • 리눅스 배포판과 유닉스에 기본적으로 포함되어 있다.
  • 리눅스는 CLI(텍스트) 환경이기 때문에 단축키, 명령어 등을 알아야만 편집을 할 수 있다. 
  • vi 편집기는 여러가지 모드로 구성.
    -명령모드(Command Mode) : 명령어를 입력해 vi의 다양한 기능을 사용할 수 있는 모드.
    -명령라인모드(Command-line Mode), ex모드(Ex Mode) : ' : ' 뒤에 명령어를 입력하여 특수기능을 사용할 수 있는 모드.
    - 편집모드, 입력모드(Insert Mode) : 메모장과 같이 텍스트를 자유롭게 편집할 수 있는 모드.
    -비주얼모드(Visual Mode) : 윈도우즈의 드래그와 같이 문자를 다중 선택할 수 있는 모드.
  • 지속적인 vi 에디터 설정을 .exrc 파일에 설정.
  • ---Vim ---
    -브람 무레나르
    -vi 편집기와 호환되면서 독자적으로 다양한 기능을 추가하여 만든 편집기.
    -패턴 검색 시 하이라이트 기능을 제공하여 빠른 검색을 가능하게 해준다.
    -ex모드에서 히스토리 기능을 제공.
    -확장된 정규 표현식 문법과 강력한 문법 강조 기능을 가짐

명령모드

  • ESC

입력모드

  • i : 커서 앞(왼쪽)에 입력
  • a : 커서 다음(오른쪽)에 입력

커서이동

  • h, j, k, l: 좌,하,상,우 커서 이동 (방향 키가 없는 키보드에서 사용)
  • ^ : 줄의 첫 문자로 이동
  • 0 : 첫 번째 열로 이동
  • gg: 제일 첫 행으로 이동
  • w: 다음 단어의 첫 글자로 이동
  • b: 이전 단어의 첫 글자로 이동
  • H : (Head, shift + h)화면의 첫 줄로 이동
  • M : (Middle, shift + m)화면의 중간으로 이동
  • L : (Last, shift + l)화면의 끝 줄로 이동
  • [Ctrl] + b : 이전 화면으로 이동 (= Page Up)
  • [Ctrl] + d : 중간 화면으로 이동 
  • [Ctrl] + F : 다음 화면으로 이동 (= Page Down)
  • G: 마지막 행으로 가기
  • :숫자: 지정한 숫자 행으로 이동 ex) :3
  • n% : 입력한 n 퍼센트에 해당하는 줄로 이동
  • nG : n번째 행으로 이동
  • << : 커서가 위치한 줄 맨 앞의 탭 제거

저장, 종료, 삭제

  • :q : 종료
  • :q! : 저장하지 않고 강제로 종료
  • :w : 저장
  • :wq : 저장 후 종료
  • zz : 저장 후 종료(:wq와 동일)
  • :w hagsig.txt : 파일의 변경내용을 hagsig.txt 이라는 파일이름으로 저장
  • :w > > hagsig.txt : hagsig.txt 파일에 편집 중인 파일의 내용을 덧붙여서 저장
  • :wq 파일이름 : 저장 후 파일 이름 지정
  • x : (소문자) 커서에 있는 글자 삭제
  • X : (대문자) 커서 앞에 있는 글자 삭제
  • dw : 단어 삭제
  • dd : 현재 커서의 행 삭제
  • 숫자 dd : 현재 커서부터 숫자만큼의 행 삭제

복사, 붙여넣기

  • yw : 커서를 기준으로 뒤에 있는 단어 글자 복사 (커서 포함)
  • yb : 커서를 기준으로 앞에 있는 단어 글자 복사
  • yy : 커서가 있는 라인(줄) 복사
  • 숫자 yy : 현재 커서부터 숫자 만큼의 행을 복사
  • p : (소문자) 커서 다음에 붙여넣기
  • P : (대문자) 커서 이전에 붙여넣기

변경, 되돌리기

  • :%s/old/new: 각 행의 처음 나오는 old를 찾아 new로 바꾼다.
  • :%s/old/new/g: 모든 old를 찾아 new로 바꾼다.
  • :%s/old/new/gc: 모든 old를 찾아 new로 바꾸기 전에 물어본다.
  • u : 이전으로 되돌리기 (Undo)
  • Ctrl + r : 되돌리기한 것을 다시 실행 (Redo)

출력, 검색

  • :set number: 행번호를 출력 (= :set nu)
  • :set nonumber: 행번호를 숨긴다. (= :set nonu)
  • :cd: 현재 디렉토리를 출력
  • /exp + enter : 'exp' 와 같은 문자열을 현재 커서가 위치한 곳부터 아래 방향으로 검색
  • ?exp + enter : 'exp' 와 같은 문자열을 뒤에서부터 윗 방향으로 검색
  • n : (소문자) 뒤로 검색
  • N : (대문자) 앞으로 검색
  • :args : 편집중인 파일 목록 표시

편집

  • :n : 다음 파일 편집
  • :prev : 이전 파일 편집
  • :sh : 편집기 최소화(exit : 편집상태로 돌아올 수 있음)

>>>>문제

다음 중 vi 편집기에서 커서 키가 없는 자판 이용 시에 아래 방향으로 이동하기 위한 명령으로 알맞은 것은?     
     1. h
     2. j
     3. k
     4. l

- h : 커서를 한칸 왼쪽으로 이동하는 명령
- j : 커서를 한줄 아래로 이동하는 명령
- k : 커서를 한줄 위로 이동하는 명령
- l : 커서를 한칸 오른쪽으로 이동하는 명령

다음 중 vi 편집기에서 행 번호가 표시되도록 하는 ex 모드 환경설정으로 알맞은 것은?
     1. set no
     2. set ai
     3. set sm
     4. set number

- set nonu : set nu 기능 off
- set ai : 자동 들여쓰기
- set sm : 괄호 입력시 자동으로 대응되는 괄호 표시
- set number : 행 번호 표시

다음 중 vi 편집기의 명령 모드에서 바로 직전에 삭제한 줄을 다시 복원하기 위해 실행하는 명령으로 알맞은 것은?
     1. c
     2. r
     3. u
     4. dd

+ Recent posts