updated_at: 2024-12-15 04:07

vi editor 다루기

환경설정

vi editor의 환경을 설정
환경설정 파일 : .vimrc (일반적으로는 존재하지 않음)

1. 계정의 홈디렉토리로 이동

cd ~/

2. .vimrc 생성 혹은 편집

vi .vimrc

아래를 수정하여 본인의 환경에 맞게 수정

set number              " 라인 번호를 붙임
set tabstop=4           " 탭문자는 4컬럼 크기로 보여주기
set shiftwidth=4        "문단이나 라인을 쉬프트할 때 4컬럼씩 하기
set autoindent          " 자동 들여쓰기
syntax on               " 적절히 syntax에 다라 하이라이팅 해주기
set cindent             " c언어 자동 들여쓰기
set title               " 타이틀바에 현재 편집중인 파일을 표시
set showmatch           " 매치되는 괄호의 반대쪽을 보여줌
set textwidth=79        " 만약 79번째 글자를 넘어가면 다음행으로
set smartindent         " 좀 더 똑똑한 들여쓰기를 위한 옵션
set ts=4                " 탭 간격 조절
:colorscheme ron      " vi 편집기 색상을 ron 으로 변경

위에서 :colorscheme 를 주석

편집기 색상변경

cd /usr/share/vim/vim81/colors // vim81은 사용환경에 따라 다를 수 있음

위로 접근하면 다양한 colors를 확인가능
그리고 .vimrc 에서 :colorscheme [색상] 으로 변경하면 됩니다.

더 많은 색상변경을 원하시면 https://www.vim.org/scripts/index.php 에서 선택하시면 됩니다.

편집기 모드

명령모드

vi 편집기의 기본모드.( 입력 상태이면 편집 명령어 사용 불가능)

입력모드

i,I,a,A,o.O (입력모드 상태가 아니면 편집기 입력이 불가능)

확장모드

확장 모드 명령어는 명령어를 입력할 때 대부분 먼저 ‘:’을 붙이고 명령어를 입력함으로써 다른 모드 명령어와 구분이 된다.

유용한 단축키

기본

Esc

명령모드로 전환

Shift + :

Command Line 활성

a

명령보드에서 Insert 모드로 전환

확장모드 명령어 (:)

:set nu

좌측에 현재 라인번호 출력

:라인번호

라인번호로 이동

:w

바뀐내용을 저장

:wq

저장후 종료

:q

종료 (수정된 내용이 저장되지 않았다면 경고문 출력)

:q!

강제 종료 (수정된 내용을 저장없이 강제 종료)

:w [파일명]

[파일명]으로 현재 편집하고 있는 파일 저장

:w! [파일명]

[파일명]으로 현재 편집하고 있는 파일을 강제 저장 ([파일명]이 다른 편집기로 열려있어도 강제 저장)

:e [파일명]

현재 창에서 바로 [파일명] 열기

:new [파일명]

새로운 윈도우를 생성후 [파일명] 열기

:%s/찾을말/바꿀말/g

문자를 교체

:/찾을말

:?찾을말

문서내에서 '찾을말'을 검색
'/'은 아래로 검색, '?'는 위로 검색
'n'을 누르면은 아래, 'N'은 위로 계속 찾게 됩니다.

:set ic

:set ignorecase

대소문자를 구분 안함

그리고 그 보던 파일을 복사 해버리고 싶으면

편집모드 명령어

이동

w

단어의 앞부분씩 이동

b

w와 같으나 뒷쪽방향으로 이동

e

단어의 끝부분씩 이동

gg

맨 처음으로 이동

G

맨 마지막으로 이동

$

그 줄 마지막으로 이동

0

그 줄 처음으로 이동

^

줄의 처음으로 이동

L

현재 페이지에서 맨 아랫줄 커서 이동

B

앞쪽으로 빈칸 단위로 이동

W

뒷쪽으로 빈칸의 앞쪽 단위로 이동

E

뒷쪽으로 빈칸의 뒷쪽 단위로 이동

[[

문서의 맨처음

]]

문서의 맨 마지막으로 커서 이동

Ctrl+d

반페이지씩 아래로 스크롤

Ctrl+u

반페이지씩 위로 스크롤

Ctrl+f

한페이지씩 아래로 스크롤

Ctrl+b

한페이지씩 위로 스크롤

`

레지스트 기록한곳으로 이동 할때에 `저장문자

( 한 단락위로

) 한 단락 아래로

편집

x

지우기

i

현재위치에서 삽입

a

현재글자의 뒷쪽에 이어서 삽입

u

되살리기

P

빈줄 한줄씩 삽입

K

man 페이지 찾기 모드

V

한줄 블럭씌우기

R

replace 로 수정모드

A

그 줄의 마지막에서 삽입

O

한줄 건너뛰어 삽입

S

그 줄 새로 작성, 현재 줄 지워지고 삽입모드

C

현재의 줄만 현재 커서의 뒷부분이 지워지고 삽입모드

Y

한줄 복사

D

그 줄의 처음에 있을때 누르면 한줄 삭제 (삭제되면서 버퍼에 저장 잘라내기라고 봐두 됨)

p

아래로 붙여넣기인반면 P는 위로 붙여넣기

ZZ

저장하고 종료

x

지우기로 del키와 같지만 X는 백슬래쉬 처럼 뒤로 지워집니다.

J

그 현재 위치 다음의 빈 줄을 다 붙여줍니다. 한 문장으로 만들때 사용하면 좋습니다.

기타

Ctrl + g

그 문서의 커서가 위치한 곳의 정보가 아랫줄에 나옵니다.

~

대소문자 변환 블럭을 씌워 ~눌르면 대소문자가 뒤바뀜

!!

쉘명령어 사용 결과값만

:!

쉘명령어 사용 실행과정부터 나옴

Ctrl + v

열로 블록 선택 (선택 후 정렬할 부분 << 해주면 됨 )

Ctrl + l

화면을 리플래쉬 합니다.

Ctrl + S

on/xoff flow control 사용시, Scroll Lock

Ctrl + Q

Ctrl + S 를 해제

Ctrl + w + n

화면 분할(새로운 윈도우 생성)

Ctrl + w, w

Ctrl + w, j

Ctrl + w, 아래 방향키

창 이동(아래로) (여러 창이 열려 있을 경우) Ctrl + w 키를 동시에 누른 후 손을 때고 w 만 누름

Ctrl + w, k

Ctrl + w, 위 방향키

창 이동(위로) (여러 창이 열려 있을 경우)

Ctrl + w, o

현재 창만 제외하고 다른 창 모두 닫기

Ctrl + w, +키

현재창을 크게

Ctrl + w, -키

현재 창을 작게

ctrl + w, c

재창을 닫기

ctrl + w + _

현재 창을 최대화

ctrl + w + =

열려있는 창들의 크기를 모두 같게

.

편집모드에서 입력한 내용을 그대로 복사하여 입력

:set list

tab은 '^I' 로 라인의 끝은 '$' 로 표시

:set nolist

위의 ':set list' 속성 삭제

평점을 남겨주세요
평점 : 2.5
총 투표수 : 1

질문 및 답글