IT스러운 공간

[리눅스] vi 편집기 사용하기 본문

기타/리눅스

[리눅스] vi 편집기 사용하기

nanaing 2024. 1. 26. 00:02
728x90

vi : 유닉스의 표준 에디터, ex 편집기에 기초를 둔 디스플레이 지향 편집기, 키보드 조작으로 모든 작업이 가능함

vim : 많은 기능이 추가된 vi 편집기

리눅스에서 vi를 입력하면 alias vi = 'vim'으로 실행됨.

 

모드

명령어 모드 : vi 편집기로 처리함

- vi 편집기 실행 시 기본 모드 상태

- 문자를 모두 명령어로 인식

- 커서의 이동, 삭제, 수정, 복사, 붙여넣기 등 다양한 명령을 인식하여 수행

입력모드 : 명령어 모드에서 i, a, o를 입력, esc를 입력하면 명령어 모드로 돌아감

- 글을 입력할 수 있는 모드

- a : 커서 뒤에 입력

- i : 커서 앞에 입력

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

- A : 라인의 끝에 입력

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

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

ex 모드 : :, /(검색명령어), ? 를 입력하면 ex모드로 들어옴. esc 입력 시 명령어 모드로 돌아감

- 추가 명령을 실행하는 모드

- 명령어 모드에서 사용할 수 없는 강력한 검색 치환 기능과 vi 에디터 설정 기능 등이 있음.

 

vi [옵션] [파일명]

- vi 파일명 : 파일 열기

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

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

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

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

 

여러 파일 편집

- 파일을 편집하는 중간에 다른 파일 조회할 때 사용

- 파일 편집 도중 다른 파일을 불러오기

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

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

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

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

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

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

 

vi 편집기 종료

입력 모드 상태에서 Esc 키를 눌러 명령어 모드로 빠진 후 [:] 입력하여 ex모드로 진입해야함

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

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

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

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

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

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

 

커서 이동 명령

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

문자이동

- h 또는 왼쪽 방향키 : 커서를 한 문자 왼쪽으로 이동

- j 또는 아래 방향키  : 커서를 한 라인 아래로 이동

- k 또는 위쪽 방향키 : 커서를 한 라인 위로 이동

- l 또는 오른쪽 방향키 : 커서를 한 문자 오른쪽으로 이동

행이동(명령어 모드)

- H(Home) : 현재 화면의 첫 행, 첫 칼럼으로 커서 이동

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

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

- (-) : 윗 행의 첫 문자로 이동

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

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

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

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

행 단위 이동(ex 모드)

:n - n번째 행으로 커서 이동

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

화면 이동

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

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

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

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

 

삭제 명령

문자

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

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

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

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

단어

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

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

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

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

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

 

복사 이동 명령

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

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

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

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

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

 

vi 에디터 환경 설정 명령어

- :set

- :se

- :syn 

- :map

 

 

정리

- 실행 vi <옵션> <파일이름>

- 입력 a, i, o, A, I, O

- 명령

  삭제 : x(한개 문자), dw(단어), dd(라인), 10dd

  복사 : yy, 10y

  붙이기 : p

  치환 : r, cw, cc

  찾기 : /문자열

  다음문자 : n

  작업취소 : u(undo의 기능)

- 저장 :w, :wq, :wq!, :w filename

- 종료 :q, :q!

- 불러오기 :e filename(파일을 불러옴), :e#(이전에 열였던 파일 불러옴)

- ex에디터

  복사 :1,2 co 10(시작라인, 끝라인 복사 10라인)

  이동 :1,2  mo 10

  삭제 :1,2 d

  부분저장 :1,10 w newfile

  치환 :1,$ s/root/ROOT/g(1라인부터 문서 전체)

 

-vi 편집기 설정 파일

  .vimrc

 :set nu(라인번호 보여주기)  :set nonu

 :set ai  :set noai

 :set hlsearch, :set hls - 하이라이트 보여주기

 :set nohlsearch, :set nohls - 하이라이트 보여주지 않기

 

728x90