컬쥐네 다락방

vi 에디터 명령어 본문

클라우드/리눅스

vi 에디터 명령어

코딩하는 갱얼쥐 2022. 2. 21. 17:53

VI 편집기

 

구조 :

Linux, Unix 환경에서 사용하는 vi 편집기는 명령 모드, 입력 모드, 마지막 행 모드 크게 3가지로 나눌 수 있다. 

 

1. 명령 모드 :

처음 vi 편집기를 이용해 파일을 실행하면 들어가는 모드. 여기서는 방향키를 이용해 커서를 이동할 수 있고 "dd"나 "yy"로 한 줄 삭제 혹은 붙여넣기가 가능하다. "x" 는 글자 하나 삭제 명령어 

 

2. 입력 모드 : 

명령 모드에서 "i"나 "a"를 입력하면 입력 모드로 전환된다. 입력 모드에서는 자유롭게 코드나 글 작성이 가능! 

다시 명령 모드로 돌아가려면 "ESC"를 누르면 된다. 

("i"는 커서가 현재 위치한 부분에서 시작, "a"는 커서 바로 다음 부분부터 시작)

 

3. 마지막 행 모드:

명령 모드에서 ":"를 입력하면 화면 맨 하단에 입력할 수 있는 공간이 나온다. 여기서 현재 작성된 내용을 저장하고 종료하려면 ":wq!" 그냥 종료하려면 "q!" 입력. 

*wq, q만 입력해도 실행은 된다. 하지만 vi가 뭐라고 간섭할 수 있으니 !를 붙여 강제로 실행하라 명령 해버릴 수 있다! 

 

저장과 종료

:q : 종료

:q! : 강제로 종료 (보통 파일 수정 후 내용을 저장하지 않고 종료할 때 사용한다)

:w 다른파일이름 : 다른 이름으로 저장

:wq 저장하고 종료 

:x 저장하고 종료

* 대기모드에서 shift + zz (z 두번) : 저장하고 종료

 

입력

i a s o I A S O

i : 커서가 있는 위치에서 바로 입력

a : 커서가 있는 문자 한 칸 뒤에서 입력

s : 커서가 위치한 문자를 하나 삭제하고 입력  

*응용 ns (여기서 n은 숫자) ex) 5s : 커서 위치 뒤로 다섯의 문자를 삭제 후 입력

o : 커서가 위치한 라인의 아래로 공백 라인을 확보하고 입력

 

I : 커서가 있는 라인의 가장 앞으로 이동 후 입력

A : 커서가 있는 라인의 가장 뒤로 이동 후 입력

S : 커서가 위치한 라인 하나를 삭제하고 입력

O : 커서가 위치한 라인의 위로 공백 라인을 확보하고 입력

 

o를 가장 많이 사용할 듯.

 

복사 붙여넣기

*복사 잘라내기 붙여넣기 삭제 모두 대기모드에서 진행한다.

yank y -------> 이동  -------> p paste   

nymw (n,m은 숫자 곱하기로 이루어진다) ex) 1y1w == 1x1 yw == 1yw , 2y3w == 6yw

 

yw : 단어를 복사

yy : 라인을 복사 ex) 5yy 현재 커서가 있는 라인을 포합하여 아래로 5라인을 복사

y^ : 커서가 있는 앞쪽으로 복사

y$ : 커서가 있는 뒤쪽으로 복사

yH : 커서가 있는 라인부터 화면에 보이는 윗 부분까지 복사

yL : 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 복사

ygg : 커서가 있는 라인부터 파일의 가장 윗부분 까지 복사

yG : 커서가 있는 라인부터 파일의 가장 아랫부분까지 복사

 

n,my : n번째 라인부터 m번째 라인까지 복사 

 

 

잘라내기, 붙여넣기

cut c ------> 입력 모드 -> ESC -> p paste

cw : 단어를 잘라내기

cc : 라인을 잘라내기

c^ : 커서가 있는 앞쪽으로 잘라내기

c$ : 커서가 있는 뒤쪽으로 잘라내기

cH : 커서가 있는 라인부터 화면에 보이는 윗 부분까지 잘라내기

cL : 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 잘라내기

cgg : 커서가 있는 라인부터 파일의 가장 윗부분 까지 잘라내기

cG : 커서가 있는 라인부터 파일의 가장 아랫부분까지 잘라내기

 

n,mc : n번째 라인부터 m번째 라인까지 잘라내기

 

삭제 

문자 삭제 

x,X ex) 5x, 5X

x : 커서가 위치한 뒤로 문자를 삭제

X : 커서가 위치한 앞으로 문자를 삭제

 

단어와 라인 삭제

dw : 단어를 삭제

dd : 라인을 삭제

d^ : 커서가 있는 앞쪽으로 삭제

d$ : 커서가 있는 뒤쪽으로 삭제

dH : 커서가 있는 라인부터 화면의 윗부분까지 삭제

dL : 커서가 있는 라인부터 화면의 아래부분까지 삭제

dgg : 커서가 있는 라인부터 파일의 가장 윗 부분까지 삭제

dG : 커서가 있는 라인부터 파일의 가장 아랫 부분까지 삭제

 

n,md : n번째 라인부터 m번째 라인까지 삭제

 

되돌리기

u undo 

U 바로 한칸 앞에꺼로 되돌리기

 

이동 

h j k l 이동 방향키 (왼 위 아래 오른)

^, $ 라인의 앞, 뒤로 이동

gg, G : 파일의 가장 처음, 마지막 라인으로 이동

 

:n command line 모드에서 숫자를 지정하면 해당 라인으로 이동

 

검색

/ : 커서의 아래로 검색

? : 커서의 위로 검색

/단어 : 커서 아래로 단어 검색 (정규화 표현식 가능) , n next 아래로 검색된 내용 확인 N 위로 검색된 내용 확인 

?단어 : 커서 위로 단어 검색 (정규화 표현식 가능) , n next 아래로 검색된 내용 확인 N 위로 검색된 내용 확인 

 

치환

:n,ms/찾고자하는 단어/바꾸고자하는 단어/g 

여기서 n,m은 라인 범위 설정, 단어는 정규화 표현식 사용 가능.

ex) 10,20s/nologin/hahaha/g  g는 한번에 모두 변경

     10,20s/nologin/hahaha/gc gc는 선택해서 변경 가능 (y,n,a,q,l,^E,^Y)?

 

a : 나머지 모두 바꾼다.
q : 커서 위치의 문자를 바꾸지 않고 종료한다.
l : 커서 위치의 문자까지만 바꾸고 종료한다.
^E  ^Y : 변경을 하다가   아래 위로  변경하고자 하는 부분을 찾아볼때 (ctrl + 대문자 E Y)

 

다중 편집

[root@localhost ~]# vim aaa ccc

 

다중 파일 오픈시 :n 과 :N 을 이용하여 다음 파일로 이동이 가능하다.
오픈을 하면 aaa 파일이 오픈되고 :n 하면 ccc 파일이 오픈된다.
ccc 파일에서 :N 하게 되면 aaa 파일로 이동하게 된다.

만약 3개 이상의 파일을 열어서 동시에 작업 하는 경우
2개 이상의 파일을 한번에 넘어서 이동할 시 :2n :2N  형태로 명령하면 된다.
* 주의: 파일의 수정이 발생한 경우 저장이 되지 않은 상태로는 이동이 불가 하다

다중파일 오픈시 :ls 명령을 통해 현재 열린 파일 목록 및 번호 확인가능. :b숫자로 파일 이동이 가능하다.

 

vi 환경설정

 .vimrc 파일을 편집해서 vi 환경을 설정할 수 있다.

.vimrc 파일은 빈 파일로 취향에 맞게 설정값을 입력하면 된다.

 

set number : 라인 넘버를 보여준다
set mouse=a : 마우스를 클릭하는 곳으로 커서를 옮긴다

set autoindent : indent를 다음줄에도 유지한다
set smartindent : 문법에 맞게 자동으로 indent를 넣어준다

autocmd FileType c,cpp,java :set cindent : 지정된 filetype에 대해 cindent를 적용한다

set cinoptions=g0,t0 : switch~case문 등 세부 indent를 정의한다

참고(http://vimdoc.sourceforge.net/htmldoc/indent.html)

 

 

set tabstop=4 : Tab의 크기를 결정한다
set shiftwidth=4 : indent의 크기를 결정한다
set expandtab : Tab을 공백(space)으로 자동 전환한다

set ignorecase : 검색할 때 대소문자 구분을 하지 않는다
set smartcase : 검색할 때 대문자를 섞어 사용하면 대소문자 구분하여 검색하고, 소문자로만 쓰면 대소문자 구분을 하지 않는다

set incsearch : 검색시 단어 전체를 입력하지 않아도, 입력된 글자까지 순차적으로 검색한다
set hlsearch : 검색된 단어를 highlight 한다

set title : 상단에 파일 이름을 표시해준다
set ruler :하단에 현재 커서의 위치를 표시해준다

colo default : color set을 결정한다

set textwidth=90
set colorcolumn=+1 : 91번째줄 색을 바꾼다(line length 맞추기 위한 guideline)
hi ColorColumn ctermbg=235 : 세로줄 색깔

 

간단 명령어 정리 : 

-명령 모드 상태

1. 파일의 끝으로 이동할때 - G

2. 한줄 잘라내기 - dd

3. 세줄 잘라내기 - 3dd

4. 붙여넣기 - p

5. 한글자 삭제 - x

6. 단어 삭제 - dw

7. 실행취소 - u

8. 줄의 맨 앞 - o

9. 줄의 맨 뒤 - $

 

-마지막 행 모드 상태

1. 저장 : w

2. 종료 : q

3. 저장 후 종료 : wq

4. 라인 번호 보기 : set nu

5. 커서 위치 뒤로 문자열 찾기 : ?문자열

6. 커서 위치 앞으로 문자열 찾기 : /문자열

7. 라인 번호 숨기기 :set nonu8. 하이라이트 없애기 :nohl9. 현재 디렉토리 출력 :cd

'클라우드 > 리눅스' 카테고리의 다른 글

리눅스 | 시스템 디스크 / 파티션, 스왑 메모리  (0) 2022.02.24
작업 예약 - cron  (0) 2022.02.24
파일 입출력 명령어  (0) 2022.02.18
리눅스 시스템 명령어  (0) 2022.02.16
리눅스 기본 명령어  (0) 2022.02.15
Comments