LINUX

Linux/vi editor(2) 실행모드

25G 2021. 10. 29. 14:35

vi editor는 윈도로 치면 한글 2002 같은 문서 편집 에디터이다

 

내용 삭제 하기

 

소문자 x : 커서 위치부터 삭제

대문자 X: 커서를 기준으로 앞부터 삭제

 

소문자 dd: 커서가 위치한 라인 한 줄 삭제

[숫자] + dd : 현재 커서가 위치한 라인부터 지정한 수만큼 라인 삭제 ==블록 삭제

 

dw : 단어 삭제

d0 : 현제 커서가 위치한 부분 이전의 내용 삭제

d$: 현제 커서가 위치한 부분 이후의 내용 삭제

 

 

내용 복사 하기

 

소문자 yy : 현재 커서가 위치한 라인 복사 == 라인 복사

[숫자]  + yy : 현제 커서가 위치한 라인부터 숫자수만큼 복사 == 블록 복사

 

붙여 넣기

소문자 p: 현제 커서가 위치한 라인 이후의 붙여 넣기 ==아래

대문자 P :현제 커서가 위치한 라인 이전에 붙여넣기 ==위

 

 

문서 내에 특정 문자 찾기

 

/ + {찾고자 하는 문자} 

? + {찾고자 하는 문자} 

탐색을 할 때는 n키와 N를 사용하여 이동한다.

 

문서에 라인 번호 먹이기

 

set nu

입력후 앤터

번호를 없애고 싶을 때는

: set nonu라고 입력한다.

: [라인 번호] == 지정한 라인으로 이동

 

실행 모드

 

"?", "/", ":"을 누르고 작업하는 상태가 실행 모드이다.

 

실행 모드로 문서 작업 중에 명령어 입력하기

 

 

:! [명령어] == vi editor를 잠시 내려놓은 상태에서 명령 실행

:.! [명령어] == 명령어 실행결과가 현제 커서 위치에 입력된다.

주의할 점은 내용을 덮어 씌우는 형태이기 때문에 설정을 다루는 라인에 삽입할 때는 조심해야 한다.

원본 라인이 사라진다.

 

치환 == 찾아 바꾸기

 

:[범위] s/[old]/[new]/[option]

 

1. 해당행 치환 -> 치환시킬 문자열이 있는 라인으로 이동 후 치환

    ex) s/name/linux ->해당행에 name이란 단어를 linux로 바꿀 것이다.

2. 지정행 치환 -> 치환시킬 문자열이 있는 라인을 지정해서 치환

    ex) :10s/linux/name ->10번째 행에 linux를 name으로 바꾸겠다

3. 영역 지정 치환 -> 범위 구분시 ", " 사용

ex) :20,28s/PASS/linux

4. 전체 영역 치환 -> 전체 역역을 지정해 줄 때 "%"기호를 사용한다.

    ex)% s/linux/PASS/g

g: 옵션은 조건에 맞는 문자열이 라인에 여러 개가 있을 때 행에 조건에 맞는 단어를 치환해 주는 옵션이다.

 

 

split mode

 

컨트롤 + wn 키를 누르면 아래 사진과 같이 여러 개의 문서를 작업할 수 있다

다음 문서로 이동할 땐 컨트롤+ww

다음 스플릭모드는 실수할 가능성이 높아지기 때문에 권장하지 않는다

문서 작업은 한 번에 하나만!

문서 창을 닫을 때는 :q로 나오면 된다.

 

vi editor 종료하기

 

에디터에서 만약에 무언가를 수정했다면 메모장처럼 저장을 할 것인지 물어보게 돼있다.

그렇기 때문에 수정을 한 문서를 나갈 때 사용할 단축기가 있다

 

:q -> 나가기(문서 수정이 이뤄지지 않았을 때)

:q! ->강제 종료 (저장이 되지 않는다.)

:w -> 저장 -> :w [경로]/[파일명] == 다른 이름으로 저장

:wq -> 저장 후 나가기

 

-! 가 뒤에 붙으면 강제 실행의 의미

 

 

빈문서 열기

 

:enuw == 현재 열려있는 문서 창을 닫고 새면서(빈문서) 열기

:e [불러 올 파일] ->현제 문서 파일을 닫고 다른 파일을 열 수 있다.

:f ->문서 정보 확인(문서 이름 문서 라인)

 

 

 

:r [파일명] :현제 커서가 위치한 곳부터 파일내용 밀어 넣기

:r! [명령어] : 현제 커서가 위치한 곳에 명령어 실행결과 입력

:[숫자] r [파일명 &명령어]로 사용도 할 수 있다.

r 은 끼워 넣는 형식이라 덮어 써지는 거랑 다르다.