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 은 끼워 넣는 형식이라 덮어 써지는 거랑 다르다.
'LINUX' 카테고리의 다른 글
Linux/user account management(사용자 계정 관리)(/etc/shadow)(/etc/skel) (0) | 2021.10.30 |
---|---|
Linux/user account management(사용자 계정 관리)(/etc/passwd) (0) | 2021.10.30 |
Linux/vi editor (1)(입력모드,명령모드) (0) | 2021.10.28 |
Linux/베이직 커멘드(date,cal,find) (0) | 2021.10.28 |
Linux/베이직 커멘드 (nl,입출력기호"<>") (0) | 2021.10.26 |